请注意,我们已经在Android SDK的帮助下通过命令行创建了一个apk文件。现在,因为上传到谷歌播放商店需要apk签名。我们该怎么做呢。
答案 0 :(得分:8)
首先,您需要生成私人签名密钥
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
此命令将提示您输入密钥库和密钥的密码(也适用于其他一些字段)。请记住随时保留密钥库文件私有。
接下来你需要设置gradle
my-release-key.keystore
放在android/app
更新~/.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>
最后,您需要更新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)
首先,您需要一个密钥库来开始此过程。您将使用此密钥库对apk进行签名,并且您需要使用相同的密钥库进行签名以便将来进行更新。在此处了解有关密钥库的更多信息:https://developer.android.com/studio/publish/app-signing#generate-key
生成密钥库后,您应该jarsigner
实用程序(在JDK文件夹中可用)
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore your-release-key.keystore android-release-unsigned.apk alias -storepass password
zipalign
工具(在android SDK文件夹中提供)来验证apk。path-to-android-sdk/build-tools/version/zipalign -v 4 android-release-unsigned.apk android-prod-released-signed.apk
apksigner
工具(在android SDK文件夹中提供)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