要通過Google Play store或者其它渠道發布應用,你需要生成一個簽名的發行版APK包。Android開發者文檔中的為你的應用程序簽名已經說明了相應的內容。本向導會簡略的介紹這些過程,然后着重講解如何打包JavaScript代碼。
生成一個簽名密鑰
你可以用keytool命令生成一個私有密鑰。
在命令窗口敲入以下內容
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
注意:黃色標注的分別是秘鑰庫文件和秘鑰庫別名,有很多地方用到這個。
注意:每一次發行apk,keystore 后面的內容需要改alias 后面的內容也要改。
這條命令會要求你輸入密鑰庫(keystore)和對應密鑰的密碼,然后設置一些發行相關的信息。最后它會生成一個叫做my-release-key.keystore的密鑰庫文件。
如圖:
在運行上面這條語句之后,密鑰庫里應該已經生成了一個單獨的密鑰,有效期為10000天。--alias參數后面的別名是你將來為應用簽名時所需要用到的,所以記得記錄這個別名。
將生成的秘鑰庫文件放到如圖所示的項目位置
編輯~/.gradle/gradle.properties,添加如下的代碼(注意把其中的****替換為相應密碼)
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore MYAPP_RELEASE_KEY_ALIAS=my-key-alias MYAPP_RELEASE_STORE_PASSWORD=***** MYAPP_RELEASE_KEY_PASSWORD=*****
如圖
注:一旦你在Play Store發布了你的應用,如果想修改簽名,就必須用一個不同的包名來重新發布你的應用。所以請務必備份好你的簽名庫和密碼
添加簽名到應用的gradle配置文件#
編輯你工程目錄下的android/app/build.gradle,添加如下的內容:
...
android {
...
defaultConfig { ... }
signingConfigs {
release {
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
}
}
}
...
如圖
生成發行APK包
如果你在android/app下有一個react.gradle
只要在終端下運行以下命令:
$ cd android && ./gradlew assembleRelease
成功后
你應該能在android/app/build/outputs/apk/app-release.apk中找到生成的APK文件,並且它已經可以用來被發布。