react-native工程 打包
如果做過Android原生開發的,react-native打包跟Android打包就大同小異了,先說明一下,這針對window7系統。
1、看看自己有沒有配好了gradle環境變數,如果配好了,這一步可以跳過。
配置步驟:
先去官網下載自己對應版本的gradle,然後直接解壓即可,我這裡直接解壓在Android開發的相關目錄下
計算機->滑鼠右擊選擇屬性->高階系統設定->高階->環境變數->點選”新建“,配置”GRADLE_HOME“,如圖:
繼續在此處選擇“path”,進行修改,加入“;%GRADLE_HOME%\bin”,注意此處沒有引號,記得前面要加分號(要切換到英文模式),這樣就配置好gradle的環境變量了
配置完後認證一下,可以在cmd控制檯上 輸入echo %path%
看到這個,所以配置成功了。
2.正式開始打包的配置:
第一步:先生成一個簽名的金鑰
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
這條命令會要求你輸入金鑰庫(keystore)和對應的金鑰的密碼,然後設定一下發行相關的資訊。最後它會生成一個叫做my-release-key.keystore的金鑰庫檔案。
在執行上面這條語句之後,金鑰庫裡應該已經生成了一個單獨的金鑰,有效期為10000天。-alias引數後面的別名是你將來為應用簽名時所需要用到的,所以記得記錄下這個別名。
注:請記得妥善保管好你的金鑰庫檔案,不要上傳到版本庫或者其它地方。
第二步:設定gradle變數
把my-release-key.keystore檔案放到你工程中的android/app資料夾下
添加簽名到應用的gradle配置檔案
...
android {
...
defaultConfig { ... }
//配置簽名
signingConfigs {
release {
storeFile file("/my-release-key.keystore")
storePassword "******" //生成金鑰時自己設定的密碼
keyAlias "my-key-alias"
keyPassword "******"" //同上
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release //引用簽名的配置
}
}
}
啟用Proguard程式碼混淆來縮小APK檔案的大小(可選)
Proguard是一個Java位元組碼混淆壓縮工具,它可以移除掉React Native Java(和它的依賴庫中)中沒有被使用到的部分,最終有效的減少APK的大小。
重要:啟用Proguard之後,你必須再次全面地測試你的應用。Proguard有時候需要為你引入的每個原生庫做一些額外的配置。參見app/proguard-rules.pro檔案。
要啟用Proguard,編輯android/app/build.gradle檔案:
/**
* 執行Proguard來減小發布版本的Java位元組碼大小
*/
def enableProguardInReleaseBuilds = true
第三步:
找到路徑/android/app/src/main,並在該目錄下新建assets資料夾
然後在工程目錄下將index.android.bundle下載並儲存到assets資原始檔夾中,執行的命名:
curl -k "http://localhost:8081/index.android.bundle" > android/app/src/main/assets/index.android.bundle
curl官網下載,下載好直接解壓,然後直接將curl.exe複製貼上到專案的根目錄下即可,配置好這一步,就可以真正進入打包了。
第四步:真正打包
在cmd控制檯切換到專案的/android/目錄中執行gradle assembleRelease命令,打包後的檔案在android/app/build/outputs/apk目錄中,例如app-release.apk。如果打包碰到問題可以先執行 gradle clean 清理一下。
到此就ok了