本人剛剛接觸RN,將自己遇到的問題做個分享,僅供參考!
1、生成一個簽名密鑰
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize2048-validity10000
my-release-key.keystore:文件名
my-key-alias:別名
這兩塊可以修改為自己的名字。
2、在項目根目錄下找到路徑/android/app/src/main,并在該目錄下新建assets文件夾
3.在工程目錄下將index.android.bundle下載并保存到assets資源文件夾中
方法:curl -k "http://localhost:8081/index.android.bundle" > android/app/src/main/assets/index.android.bundle
curl可以百度下載,將curl.exe文件復制在項目的根目錄下即可。
提示1: gradle的版本要和項目的版本一樣
gradle版本查看:gradle -v
項目的gradle版本查看,是打開\android\gradle\wrapper\gradle-wrapper.properties
例如:distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip則版本就是2.14.1
4.添加gradle的android keystore配置
在項目根目錄\android\app\build.gradle文件中添加如下:
//簽名
signingConfigs{
release?{
storeFile?file("/my-release-key.keystore")
storePassword?"密碼"
keyAlias?"keyAlias的名字"
keyPassword?"密碼"
}
}
buildTypes?{
release?{
minifyEnabled?false
proguardFiles?getDefaultProguardFile('proguard-android.txt'),?'proguard-rules.pro'
signingConfig?signingConfigs.release?//添加這句話引用簽名配置
}
}
5.啟用Proguard代碼混淆來縮小APK文件的大小
Proguard是一個Java字節碼混淆壓縮工具,它可以移除掉React Native Java(和它的依賴庫中)中沒有被使用到的部分,最終有效的減少APK的大小。
重要:啟用Proguard之后,你必須再次全面地測試你的應用。Proguard有時候需要為你引入的每個原生庫做一些額外的配置。參見app/proguard-rules.pro文件。
def enableProguardInReleaseBuilds = true
6.在/android/目錄中執行gradle assembleRelease命令,打包后的文件在 android/app/build/outputs/apk目錄中,例如app-release.apk。如果打包碰到問題可以先執行 gradle clean 清理一下。
安裝gradle工具(版本與android\gradle\wrapper下的一致),并配置環境變量,配置GRADLE_HOME到你的gradle根目錄當中,然后把%GRADLE_HOME%/bin(linux或mac的是$GRADLE_HOME/bin)加到PATH的環境變量。
配置完成之后,運行gradle -v,檢查一下是否安裝無誤
7.將apk發布到各大應用市場(BUILD SUCCESSFUL)
下面說一下我遇到的問題:
由于項目中引入了百度地圖,實時導航...等,當執行第5步代碼混淆的時候會導致app運行錯誤。
解決方案:
def enableProguardInReleaseBuilds =?false