【发布时间】:2018-06-05 17:19:32
【问题描述】:
请注意,我们已经在 Android SDK 的帮助下通过命令行创建了一个 apk 文件。现在由于将其上传到 google play store 需要对 apk 进行签名。我们该怎么做呢。
【问题讨论】:
标签: android apk signed-apk
请注意,我们已经在 Android SDK 的帮助下通过命令行创建了一个 apk 文件。现在由于将其上传到 google play store 需要对 apk 进行签名。我们该怎么做呢。
【问题讨论】:
标签: android apk signed-apk
首先你需要生成一个私人签名密钥
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
此命令将提示您输入密钥库和密钥的密码(也适用于一些附加字段)。请记住随时保持您的keystore文件private。
接下来你需要设置 gradle
my-release-key.keystore 放在android/app 下在android/app 下更新您的~/.gradle/gradle.properties 并添加以下内容
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。
【讨论】:
C:\Program Files\Java\jdkx.x.x_x\bin 运行密钥工具
首先您需要一个密钥库来开始该过程。您将使用此密钥库对您的 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:用实际值替换路径、文件和密码
【讨论】:
按照以下命令使 apk 播放商店准备就绪:
第 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 步:压缩对齐 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
【讨论】: