1. 程式人生 > >react-native android打包釋出

react-native android打包釋出

Android平臺有兩種釋出方式,一種是藉助於命令列操作,另外一種是藉助於Android Studio進行釋出,具體步驟我們來看一下:

藉助Android Studio釋出版本

首先,藉助於Android Studio生成簽名keystore:
這裡寫圖片描述

點選下一步,建立一個新的keystore,這裡無需關心字尾名字,預設即可
這裡寫圖片描述

上面主要是密碼,建議全部設定一個密碼,方便記憶,Alias這個不要忘記,最好把上面資訊複製一份,選定一個自己熟悉的路徑,點選OK儲存。此時keystore已經生成完畢。

此時,你會發現,你可以繼續生成一個apk,並且可以安裝,但是卻無法執行,發生閃退。

這是因為React-Native的android平臺下預設沒有生成資原始檔也就是我們所有的js圖片檔案等等。

下面我們就來生成JS Bundle檔案:

第一步,我們要建立一個assets檔案在工程目錄下,可以通過命令列操作,也可手動。(在專案根目錄執行此命令即可)

mkdir -p Android/app/src/main/assets 

第二步,生成Bundle檔案。此命令同樣在根目錄執行,如下圖:

React-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets
-dest android/app/src/main/res/

這裡寫圖片描述

此時,我們已經完全生成了bundle檔案了,你可以檢視自己工程assets下的資料夾。

然後再一次進行打包,這次選擇已經建立的keystore,輸入alia和密碼,生成apk,進行安裝,測試已經正常運行了。

命令列釋出版本

生成祕鑰簽名

$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

按提示輸入資訊使用者密碼等等。

設定gradle變數

把my-release-key.keystore檔案放到你工程中的android/app資料夾下。
編輯~/.gradle/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=*****
``

添加簽名到專案的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包

cd android && ./gradlew assembleRelease

cd android表示進入android目錄(如果你已經在android目錄中了那就不用輸入了)。./gradlew assembleRelease在macOS和Linux系統中表示執行當前目錄下的名為gradlew的指令碼檔案,執行引數為assembleRelease,注意這個./不可省略;而在windows命令列下則需要去掉./。