#####第一步:生成离线bundle包
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.bundlejs --assets-dest android/app/src/main/res
参数:
-h, --help
–entry-file
–platform [string] ios 或 andorid
–dev [boolean] 如果为false, 警告会不显示并且打出的包的大小会变小
–prepack 当通过时, 打包输出将使用Prepack格式化
–bridge-config [string] 使用Prepack的一个json格式的文件__fbBatchedBridgeConfig 例如: ./bridgeconfig.json
–bundle-output 打包后的文件输出目录
–sourcemap-output [string] 生成Source Map,但0.14之后不再自动生成source map,需要手动指定这个参数
–assets-dest [string] 打包时图片资源的存储路径
–verbose 显示打包过程
–reset-cache 移除缓存文件
–config [string] 命令行的配置文件路径
#####第二步:生成签名文件
1、生成密钥文件:这条命令会要求你输入密钥库(keystore)和对应密钥的密码,然后设置一些发行相关的信息。最后它会在android/app目录下生成一个叫做my-release-key.keystore的密钥库文件。密钥库里应该已经生成了一个单独的密钥,有效期为10000天。–alias参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录这个别名。
$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
2、生成签名文件
点击android stuido 菜单栏中的 build, 找到“Generate Signed APK”
3、设置gradle变量:编辑~/.gradle/gradle.properties
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=123
MYAPP_RELEASE_KEY_PASSWORD=123
#####第三步:添加签名到项目的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
// rn根项目 cd android 输入命令行生成apk文件
./gradlew assembleRelease ---生产包
./gradlew assembleDebug ---测试包
//生成的APK文件位于android/app/build/outputs/apk/app-release.apk