RN 打android離線包生成apk檔案
#####第一步:生成離線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