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時會失敗。(此部份可參考本文最下方的第二個參考內容)

參考

Last updated