一、打包前需要做一些基本設(shè)置的確認(rèn)
1.應(yīng)用名
2.權(quán)限設(shè)置
3.applicationId:應(yīng)用唯一標(biāo)識(shí)符
4.versionCode:版本號(hào)
5.versionName:版本名稱
6.APP應(yīng)用圖標(biāo)
7.APP啟動(dòng)頁
以上對(duì)應(yīng)的設(shè)置可以參考Flutter官網(wǎng)
二、APP簽名(以下操作均針對(duì)macOS)
創(chuàng)建keystore
如果你之前已經(jīng)創(chuàng)建過keystore的話,可以跳過此步驟。如果沒有,請(qǐng)打開終端運(yùn)行以下命令來創(chuàng)建一個(gè):
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

敲回車之后就會(huì)讓你輸入打開keystore文件的密碼,其他根據(jù)具體情況去配置就可以了,最后敲
是,然后回車即可,下面會(huì)告訴你生產(chǎn)該文件的路徑
在應(yīng)用程序中引用keystore
首先創(chuàng)建一個(gè)文件key.properties
路徑為<app dir>/android/key.properties,其中<app dir>就是你app的文件路徑,key.properties為文件名

在該文件中輸入對(duì)應(yīng)的配置
storePassword=<生成keystore時(shí)設(shè)置的密碼>
keyPassword=<生成keystore時(shí)設(shè)置的密碼>
keyAlias=key
storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>即生成文件的key.jks的文件路徑

在gradle中配置簽名
配置的文件路徑為<app dir>/android/app/build.gradle為應(yīng)用配置

將
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
}
}
現(xiàn)在,您的應(yīng)用的release版本將自動(dòng)進(jìn)行簽名。
最后
使用命令行:
cd <app dir> (<app dir> 為您的工程目錄).
運(yùn)行flutter build apk (flutter build 默認(rèn)會(huì)包含 --release選項(xiàng)).
打包好的發(fā)布APK位于<app dir>/build/app/outputs/apk/app-release.apk
最后注意:使用該命令打包時(shí)有可能提示打包很慢,是因?yàn)橐褂胓radle,大家懂的,所以需要耐心等待,成功則顯示如下
