Generating Signed APK - Android
1.需要一把key(.jks or .keystore),用來簽名App
可使用Android Studio產生,也可使用command line生成。(此步驟請自行google)將此 .keystore 放置(複製)到 RN Project/android/app/ 目錄下
在此丟上一個 .jks,提供大家測試用(若要上架的正式版App,請使用自己產生的key) 點此去下載test.jks
此test.jks的相關資訊
Key store path: test.jks
Key store password: testtest
Key alias: testAlias
Key password: testAliastestAlias
2.設置gradle
2.1 修改下方兩個其中一個
~/.gradle/gradle.propertie(此為全局的gradle.propertie) 或者 ../android/gradle.properties (此為項目內的gradle.propertie,路徑為某RN Project下)
2.2 修改RN Project/android/gradle.properties
MYAPP_RELEASE_STORE_FILE= 你的key完整檔名(ex.test.jks) MYAPP_RELEASE_KEY_ALIAS= key的alias (ex.testAlias) MYAPP_RELEASE_STORE_PASSWORD= 你的store password (ex.testtest) MYAPP_RELEASE_KEY_PASSWORD= 你的key password (ex.testAliastestAlias)
2.3 修改RN Project/android/app(!?)/build.gradle,加入簽名設定
… android { … defaultConfig { ... } signingConfigs { release { if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { 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 } } } ...
3.簽名打包APK
開啟terminal,到達RN Project/android/ 目錄後 下command $ ./gradlew assembleRelease 成功後會如下圖所顯示,apk產生在android/app/build/outputs/apk/app-release.apk
Gradle’s assembleRelease會bundle你App需要的所有JavaScript到Apk中
ps.
請保存好keystore和密碼,在play商店內判斷是否為同一個App是由package name和keystore,若遺失鑰匙就無法再更新指定的App了(等於下載量和評價等都會遺失)!只能重新上架一個新App!
用AS原本直接打包apk的方式是可以打包成功,但run時會失敗。(此部份可參考本文最下方的第二個參考內容)
參考
Generating Signed APK - RN官網
React Native發布APP之簽名打包APK - carzycodeboy
Last updated