生成一个签名密钥
你可以用keytool
命令生成一个私有密钥。在Windows上keytool
命令放在JDK的bin目录中(比如C:\Program Files\Java\jdkx.x.x_x\bin
),你可能需要在命令行中先进入那个目录才能执行此命令。
进入bin目录下面后执行下列代码:
$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
这条命令会要求你输入密钥库(keystore)和对应密钥的密码,然后设置一些发行相关的信息。最后它会生成一个叫做my-release-key.keystore
的密钥库文件。
在运行上面这条语句之后,密钥库里应该已经生成了一个单独的密钥,有效期为10000天。--alias参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录这个别名。
注意:请记得妥善地保管好你的密钥库文件,不要上传到版本库或者其它的地方。
在bin目录执行后的结果:
之后在bin目录下会生成一个文件:
把my-release-key.keystore
文件放到你工程中的android/app
文件夹下。
3.在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=******
******换为你刚才输入的口令.
4.在android/app/build.gradle添加如下配置.
android {
...
defaultConfig {
....
}
signingConfigs {
release {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}}
splits {
....
}
buildTypes {
release {
signingConfig signingConfigs.release
...
}
}
.....
}
}
}
}
5.终端cd 到android目录下.执行命令
./gradlew assembleRelease
等一下终端执行后显示BUILD SUCCESSFUL.
成功打好了.在项目的android/app/outputs/apk下可见刚才打好的apk包
这样React Native项目的apk文件就生成好了。
react-native清除打包缓存:
gradlew clean