一、生成一个签名密钥
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
复制代码
命令运行过程中需要输入一些信息,内容如下:
除了密匙库口令,也就是签名密码之外,其它信息都无关紧要,乱填的。
注:
1、keytool 是JDK里边的一个命令,位于C:\Program Files\Java\jdk1.8.0_161\bin目录下;
2、命令中的"netease-release-key"和"netease-key-alias"是自己起的名字(我做的项目是网易新闻APP所以起名netease),这两个名字需要记住,在后面安卓配置文件里会用到。
3、命令最后的"10000"指生成的密匙有效期为10000天。
4、命令执行完后会在命令执行的当前目录下生成"netease-release-key.keystore"文件。
二、把netease-release-key.keystore文件放到你工程中的android/app文件夹下。
三、修改android目录下的gradle.properties文件
在文件中添加以下代码:
MYAPP_RELEASE_STORE_FILE=netease-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=netease-key-alias
MYAPP_RELEASE_STORE_PASSWORD=123456
MYAPP_RELEASE_KEY_PASSWORD=123456
复制代码
注: netease-release-key和netease-key-alias就是第一步命令中自己起的名字,至于123456是我的密匙口令。
三、添加签名到项目的gradle配置文件
编辑项目目录下的android/app/build.gradle,添加如下的签名配置:
signingConfigs {
release {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
复制代码
红框框中的都是需要添加的,其它地方都不用改动。
四、生成APK文件
进入项目中的android目录下,运行命令:
gradlew assembleRelease
复制代码
当看到 "BUILD SUCCESSFUL"字样时,说明构建完成。生成的.APK文件位于项目目录下的android\app\build\outputs\apk文件夹中。
五、其它
gradlew assembleRelease 打包生成APK文件
gradlew installRelease 安装APK到手机
gradlew clean 清理上次的打包文件
这三个命令都需要进入到项目中的android目录下才能运行。
我的ReactNative版本是0.54.2。。如果需要修改的文件你的项目目录下没有的话,需要自行创建文件再添加相关代码。