由于對(duì)iOS并不熟悉,也沒(méi)有Xcode環(huán)境,所以只學(xué)習(xí)了Android打包生成apk文件芥挣。如果要學(xué)習(xí)iOS打包生成IPA文件可以參考官方文檔:發(fā)布的IOS版APP
對(duì)于Android開(kāi)發(fā)者來(lái)說(shuō),在清單文件AndroidManifest.xml
里更改app名稱(chēng)和桌面圖標(biāo)核偿、配置權(quán)限都已經(jīng)很熟悉了。這里也是在項(xiàng)目下的android
文件夾下進(jìn)行操作顽染。官方文檔:發(fā)布Android版APP
創(chuàng)建 keystore
下面介紹一下如何生成簽名文件:
官方文檔中這樣寫(xiě)的:keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
如果直接這樣運(yùn)行是會(huì)報(bào)錯(cuò)的:keytool 錯(cuò)誤: java.io.FileNotFoundException: ~\key.jks (系統(tǒng)找不到指定的路徑漾岳。)
所以我們得指定簽名文件的保存路徑:keytool -genkey -v -keystore E:\keys\key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
敲回車(chē)后根據(jù)提示填寫(xiě)信息生成簽名文件。
引用應(yīng)用程序中的keystore
創(chuàng)建一個(gè)名為<app dir>/android/key.properties的文件粉寞,其中包含對(duì)密鑰庫(kù)的引用:
storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=key
storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>
在gradle中配置簽名
通過(guò)編輯<app dir>/android/app/build.gradle文件為您的應(yīng)用配置簽名
- 1.在如圖說(shuō)是的位置添加:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
- 2.替換:
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
}
}
這樣尼荆,我們應(yīng)用的release版本將自動(dòng)進(jìn)行簽名。
構(gòu)建一個(gè)發(fā)布版(release)APK
使用命令行:
運(yùn)行flutter build apk
(flutter build 默認(rèn)會(huì)包含 --release選項(xiàng)).
打包好的發(fā)布APK位于<app dir>/build/app/outputs/apk/app-release.apk唧垦。