本文使用的react-native版本为0.55
1.进入工程目录 ,生成打包的签名秘钥
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
Key store path : 签名文件路径
Password : 签名密码
Confirm : 确认密码
Alias : 别名
Validity ( years ) : 有限期 (年)
First and Last Name : 全名
Organizational Unit : 组织单位
Organization : 组织
City or Locality : 城市或地方
State or Province : 州或省
Country Code(XX) : 国家代码
2.把生成的 秘钥放到./android/app 目录下
3.打开项目目录下的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
}
}
}
signingConfig signingConfigs.release
添加后的代码像下面这样子(省略号表示还有其他的默认代码)
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
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
4.进入到 目录/andriod/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=***(自己设置的密码)
5.找到路径/android/app/src/main 并在该目录下新建assets文件夹(如果有就不用新建,一般正常情况是没有需要自己手动新建)
项目根目录运行
react-native bundle --entry-file index.js --platform android --dev false --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android/app/src/main/res/
6.进入到 根目录/android 目录,打包
运行 gradlew assembleRelease
如果出现打包 unable to process incoming event 'ProcessComplete' <ProgressCompleteEvent>
在./android/app/proguard-rules.pro 添加
-keep class android.text {* ;}
-dontwarn android.text.*
同时使用下面的命令打包
gradlew.bat assembleRelease --console plain
注意:打包的js不要用到 过时的方法,contentStyle: View.propTypes.style 不然APP会闪退
7.生成的apk文件在目录
.\android\app\build\outputs\apk