一、概述
Android 要求所有应用都有一个数字签名才会被允许安装在用户手机上,所以在把应用发布到应用市场之前,你需要先生成一个签名的 AAB 或 APK 包(Google Play 现在要求 AAB 格式,而国内的应用市场目前仅支持 APK 格式。但无论哪种格式,签名步骤是一样的)
二、生成一个签名密钥
在项目的 /android
目录下执行这个命令,生成的my-release-key.keystore
要放在/android/app
目录下
// 生成密钥命令
keytool -genkeypair -v -storetype PKCS12 -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
// 浅浅解析一下
keytool:这是一个用于管理 Java 密钥和证书的命令行工具。
-genkeypair:这个选项指示 keytool 生成一个密钥对,即公钥和私钥。
-v:这个选项表示在生成密钥对时显示详细的输出信息。
-storetype PKCS12:这个选项指定了密钥库的类型为 PKCS12,这是一种常见的密钥库格式。
-keystore my-release-key.keystore:这个选项指定了要创建的密钥库文件的名称,即 my-release-key.keystore。
-alias my-key-alias:这个选项指定了密钥对的别名,即 my-key-alias。
-keyalg RSA:这个选项指定了要使用的密钥算法,这里是 RSA。
-keysize 2048:这个选项指定了生成的密钥的长度,这里是 2048 位。
-validity 10000:这个选项指定了生成的密钥对的有效期,即密钥对的证书有效期为 10000 天。
三、在 /app/build.gradle
中配置密钥
1、直接引入:
signingConfigs {
release {
storeFile file("my-release-key.keystore")
storePassword "123456"
keyAlias "my-key-alias"
keyPassword "123456"
}
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
// Caution! In production, you need to generate your own keystore file.
// see https://reactnative.dev/docs/signed-apk-android.
signingConfig signingConfigs.release
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
2、在/android/gradle.properties
中设置 gradle
变量
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=123456
MYAPP_RELEASE_KEY_PASSWORD=123456
// 换上对应的变量名
release {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
四、查看密钥信息
查看密钥信息,在 /android
目录下执行一下命令
./gradlew signingReport