使用keytool
命令生成一個私有密鑰android
$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000複製代碼
這條命令會要求你輸入密鑰庫(keystore)和對應密鑰的密碼,而後設置一些發行相關的信息。最後它會生成一個叫作my-release-key.keystore的密鑰庫文件。bash
Tips:app
1.以上問題非必填gradle
2.最後一個問題填是
才能跳出循環,生成密鑰ui
3.請記得妥善地保管好你的密鑰庫文件,通常不要上傳到版本庫或者其它的地方。spa
4.把my-release-key.keystore
文件放到你工程中的android/app
文件夾下。3d
➢ 設置gradle 變量code
編輯~/.gradle/gradle.properties(全局配置,對全部項目有效)或是項目目錄/android/gradle.properties(項目配置,只對所在項目有效)。若是沒有gradle.properties文件你就本身建立一個,添加以下的代碼(注意把其中的替換爲相應密碼)cdn
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****複製代碼
上面的這些會做爲 gradle 的變量,在後面的步驟中能夠用來給應用簽名。blog
tips:
1.一旦你在 Play Store 發佈了你的應用,若是想修改簽名,就必須用一個不一樣的包名來從新發布你的應用(這樣也會丟失全部的下載數和評分)。因此請務必備份好你的密鑰庫和密碼。
➢ 把簽名配置加入到項目的 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
}
}
}
...複製代碼
示例:
➢ 生成發行 APK 包
$ cd android
$ ./gradlew assembleRelease複製代碼
tips:
1.在android
文件夾下執行./gradlew assembleRelease
命令來構建
2.若是提示./gradlew assembleRelease
無效,能夠使用gradlew assembleRelease
來構建
3.構建時請用穩定外貿上網環境,否則會有些依賴沒法下載致使報錯,打包失敗
➢ apk目錄
生成的 APK
文件位於android/app/build/outputs/apk/release/app-release.apk
,它已經能夠用來發布了。