https://reactnative.cn/docs/signed-apk-android/
//java帶的工具
keytool -genkeypair -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
密鑰庫(kù)里應(yīng)該已經(jīng)生成了一個(gè)單獨(dú)的密鑰,有效期為 10000 天。--alias 參數(shù)后面的別名是你將來(lái)為應(yīng)用簽名時(shí)所需要用到的,所以記得記錄這個(gè)別名。
把my-release-key.keystore文件放到你工程中的android/app文件夾下。
設(shè)置 gradle 變量
項(xiàng)目目錄/android/gradle.properties
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****
//****替換為相應(yīng)密碼,密碼在keytool 命令執(zhí)行時(shí)要求填寫(xiě)的
把簽名配置加入到項(xiàng)目的 gradle 配置中
編輯項(xiàng)目目錄/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
}
}
}
...
編譯打包
./gradlew assembleRelease
生成的 APK 文件位于android/app/build/outputs/apk/release/app-release.apk