1. 程式人生 > >RN 打android離線包生成apk檔案

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 RN入口檔案的路徑, 絕對路徑或相對路徑
–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