RN应用在代码编辑阶段的时候 每次执行react-native run-android的时候都会从本地服务端load代码,当程序发布版本之后,肯定不可能再加载代码,SO,这篇主要记录一下RN应用打包的过程
首先如果我们按照正常native项目 直接打包的话,程序会闪退是打不开的,因为资源文件以及RN的JS文件都无法加载,辣么 ,正确的姿势如下:
方法一:
1、在项目根目录\android\app\src\main下新建assets文件夹
2、在项目根目录执行以下打包命令
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.an
droid.bundle --assets-dest android/app/src/main/res
3、在android studio中执行正常原生应用的打包流程即可
方法二:
第一步:生成Android签名证书
第二步:设置gradle变量
将你的签名证书copy到 android/app目录下。
编辑~/.gradle/gradle.properties或…/android/gradle.properties(一个是全局gradle.properties,一个是项目中的gradle.properties,大家可以根据需要进行修改) ,加入如下代码:
MYAPP_RELEASE_STORE_FILE=your keystore filename
MYAPP_RELEASE_KEY_ALIAS=your keystore alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****
提示:用正确的证书密码、alias以及key密码替换掉 *****。
第三步:在gradle配置文件中添加签名配置
编辑 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
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...
第四步:签名打包APK(window环境需要将./gradlew assembleRelease前面的./去掉)
./gradlew assembleRelease
完成之后打包完成的apk将会输出在根目录\android\app\build\outputs\apk中
以上就是两种方式 仅以记录
参考文章:React Native发布APP之签名打包APK