一.簡介
我們開發完項目,會將應用上傳到應用市場,在上傳應用市場前,需要簽名,打包。今天我們來看看RN如何簽名打包。
二.步驟
1.生成一個簽名密鑰
keytool -genkey -v -keystore my-project01-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
接著會讓你填寫密鑰密碼,姓名,單位,組織,城市,省,國家代碼(中國是86),會詢問你是否填寫正確,如果正確輸入y,會讓你按回車鍵,當你按鍵之后,就會生成簽名文件。
其中my-project01-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
如果assets目錄中不存在該文件,則打包的apk在執行時顯示空白。
如果命令行提示curl不是內部或外部命令,是因為你沒有安裝curl.
Windows下安裝使用curl命令:http://jingyan.baidu.com/article/a681b0dec4c67a3b1943467c.html
將curl.exe放到你的工程根目錄
4.添加gradle的android keystore配置
在build.gradle文件中
//簽名
signingConfigs{ release { storeFile file("D://RN_software/app_project/MyProject1/my-project01-key.keystore") storePassword "123456" keyAlias "my-key-alias" keyPassword "123456" } } 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,檢查一下是否安裝無誤