flutter 打包apk
阿新 • • 發佈:2018-11-08
前言
完成專案時,我們需要將專案打包成一個apk,方便測試以及釋出版本.
並且釋出版本還需要簽名,今天把這一系列操作記錄下來.
App簽名
建立 keystore
如果您有現有keystore,請跳至下一步。如果沒有,請通過在執行以下命令來建立一個:
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
注意:
- 保持檔案私密; 不要將它加入到公共原始碼控制中。
- 此操作生成的簽名是*.jks格式
引用應用程式中的keystore
建立一個名為/android/key.properties的檔案,其中包含對金鑰庫的引用:
storePassword=<建立keystore時的storePassword>
keyPassword=<建立keystore時的keyPassword>
keyAlias=key
storeFile=<金鑰庫檔案的位置 , 例如: /Users/<user name>/key.jks>
檔案內容和層級如圖所示:
注意:
- 保持檔案私密; 不要將它加入公共原始碼控制中.
- storeFile 這裡要使用絕對路徑
在gradle中配置簽名
通過編輯/android/app/build.gradle檔案為您的應用配置簽名
替換:
android {
為:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
替換:
buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig signingConfigs.debug } }
為:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
如圖所示:
現在,您的應用的release版本將自動進行簽名。
構建一個釋出版(release)APK
使用命令列:
cd <app dir>
(<app dir> 為您的工程目錄).- 執行
flutter build apk
(flutter build 預設會包含 --release選項).
可直接使用編輯器中的Terminal執行 flutter build apk
命令.
打包好的釋出APK位於/build/app/outputs/apk/app-release.apk。
在裝置上安裝發行版APK
按照以下步驟在已連線的Android裝置上安裝上一步中構建的APK
使用命令列:
- 用USB您的Android裝置連線到您的電腦
cd <app dir> .
- 執行
flutter install
.
將APK釋出到Google Play商店
將應用的release版釋出到Google Play商店的詳細說明,請參閱 Google Play publishing documentation. (國內不存在的,但你可以釋出到國內的各種應用商店)