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命令列下則需要去掉./。