如何通过命令行签署apk

问题描述 投票:6回答:3

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

android apk signed-apk
3个回答
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步

最后,您需要更新您的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。


5
投票
  1. 首先,您需要一个密钥库来开始该过程。您将使用此密钥库对apk进行签名,并且您需要使用相同的密钥库进行签名以便将来进行更新。在这里了解更多关于密钥库的信息:https://developer.android.com/studio/publish/app-signing#generate-key
  2. 生成密钥库后,应该使用jarsigner实用程序(在JDK文件夹中可用)
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore your-release-key.keystore android-release-unsigned.apk alias -storepass password
  1. 下一步是使用zipalign工具(在android SDK文件夹中提供)来验证apk。
path-to-android-sdk/build-tools/version/zipalign -v 4 android-release-unsigned.apk android-prod-released-signed.apk
  1. 最后一步是使用apksigner工具验证(在android SDK文件夹中可用)
path-to-android-sdk/build-tools/version/apksigner verify android-prod-released-signed.apk

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


2
投票

按照以下命令使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
© www.soinside.com 2019 - 2024. All rights reserved.