如何通过命令行

时间:2018-06-05 17:19:33

标签: android apk signed-apk

请注意,我们已经在Android SDK的帮助下通过命令行创建了一个apk文件。现在,因为上传到谷歌播放商店需要apk签名。我们该怎么做呢。

3 个答案:

答案 0 :(得分:8)

第1步

首先,您需要生成私人签名密钥

keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

此命令将提示您输入密钥库和密钥的密码(也适用于其他一些字段)。请记住随时保留密钥库文件私有

第2步

接下来你需要设置gradle

  1. 将您在步骤1中生成的my-release-key.keystore放在android/app
  2. 更新~/.gradle/gradle.properties下的android/app并添加以下内容

    MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
    MYAPP_RELEASE_KEY_ALIAS=my-key-alias
    MYAPP_RELEASE_STORE_PASSWORD=<The password you choose earlier with the keytool>
    MYAPP_RELEASE_KEY_PASSWORD=<The password you choose earlier with the keytool>
    
  3. 第3步

    最后,您需要更新android/app/build.gradle

    android {
        ...
        defaultConfig { ... }
        signingConfigs {
            release {
                if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                    storeFile file(MYAPP_RELEASE_STORE_FILE)
                    storePassword MYAPP_RELEASE_STORE_PASSWORD
                    keyAlias MYAPP_RELEASE_KEY_ALIAS
                    keyPassword MYAPP_RELEASE_KEY_PASSWORD
                }
            }
        }
        buildTypes {
            release {
                ...
                signingConfig signingConfigs.release
            }
        }
    }
    

    现在,只需在android目录中运行以下命令,即可通过命令行生成签名版本

    ./gradlew assembleRelease
    

    然后可以在build/outputs/apk/release目录下找到生成的apk。

答案 1 :(得分:3)

  1. 首先,您需要一个密钥库来开始此过程。您将使用此密钥库对apk进行签名,并且您需要使用相同的密钥库进行签名以便将来进行更新。在此处了解有关密钥库的更多信息:https://developer.android.com/studio/publish/app-signing#generate-key

  2. 生成密钥库后,您应该jarsigner实用程序(在JDK文件夹中可用)

  3. jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore your-release-key.keystore android-release-unsigned.apk alias -storepass password
    
    1. 下一步是使用zipalign工具(在android SDK文件夹中提供)来验证apk。
    2. path-to-android-sdk/build-tools/version/zipalign -v 4 android-release-unsigned.apk android-prod-released-signed.apk
      
      1. 最后一步是使用apksigner工具(在android SDK文件夹中提供)
      2. 进行验证
        path-to-android-sdk/build-tools/version/apksigner verify android-prod-released-signed.apk
        

        PS:用实际值替换路径,文件和密码

答案 2 :(得分:1)

按照以下命令准备好apk Play商店:

第1步:创建一个未签名的apk:

./gradlew assembleRelease

第2步:创建已签名的apk:

jarsigner -keystore YOUR_KEYSTORE_PATH -storepass YOUR_KEYSTORE_PASSWORD app/build/outputs/apk/release/app-release-unsigned.apk YOUR_KEY_ALIAS

第3步:Zipaligning apk:

your_android-sdk_path/android-sdk/build-tools/your_build_tools_version/zipalign -v 4 app/build/outputs/apk/release/app-release-unsigned.apk release.apk