Flutter 項目打包發(fā)布
在/android/app/src/main/res 目錄下,替換ic_launcher.png為正式的項目圖標。
在/android/app/src/main/AndroidManifest.xml文件中赵颅,修改Application標簽下android:label的值的應用名稱
keytool -genkey -v -keystore /key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
在命令行輸入以上命令后,按照提示輸出對應信息宝与。然后會在當前目錄生成key.jks簽名文件镇辉。
注意不要把簽名文件放在開源的源碼管理系統(tǒng)中
在/android目錄下創(chuàng)建key.properties文件雕沿,包含了keystore使用配置參數(shù)佛掖。
storePassword = <前一步的keystore密碼>
keyPassword = <前一步的別名密碼>
keyAlias = key? //別名
storeFile = <key.jks文件路徑>
在Gradle文件中配置簽名信息
在/android/app/build.gradle文件配置簽名信息妖碉。
讀取key.properties配置文件
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
? ? keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
? ? ...
添加簽名配置
signingConfigs {
? ? release {
? ? ? ? keyAlias keystoreProperties['keyAlias']
? ? ? ? keyPassword keystoreProperties['keyPassword']
? ? ? ? storeFile file(keystoreProperties['storeFile'])
? ? ? ? storePassword keystoreProperties['storePassword']
? ? }
}
buildType {
? ? release {
? ? ? ? signConfig signingConfigs.release
? ? }
}
啟用混淆配置
默認情況下,F(xiàn)lutter不會混淆和壓縮Android原生代碼苦囱,當項目使用的第三方依賴庫需要添加混淆配置時嗅绸,需要添加Flutter相關類的禁止混淆策略。
創(chuàng)建/android/app/proguard-rules.pro文件撕彤,并添加以下規(guī)則:
## Flutter相關類
-keep class io.flutter.app.** {*;}
-keep class io.flutter.plugin.** {*;}
-keep class io.flutter.util.** {*;}
-keep class io.flutter.view.** {*;}
-keep class io.flutter.** {*;}
-keep class io.flutter.plugins.** {*;}
上面這些配置會保護Flutter引擎類庫不會混淆。
編輯/android/app/build.gradle文件猛拴,在release編譯類型下添加混淆和壓縮配置羹铅。
android {
? ? ...
? ? buildTypes {
? ? ? ? release {
? ? ? ? ? ? signingConfig signingConfigs.release
? ? ? ? ? ? minifyEnabled true
? ? ? ? ? ? useProguard true
? ? ? ? ? ? proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
? ? ? ? }
? ? }
}
檢查build配置文件
檢查/android/app目錄下的build.gradle文件,
applicationId: 應用唯一標識
versionCode 和 versionName:指定應用內(nèi)部版本號和外部展示版本號愉昆,也可以通過pubspec.yaml文件設置版本屬性
minSdkVersion和targetVersion:指定應用最小支持的SDK版本和目標運行SDK版本
構建一個發(fā)布版(release)APK
本節(jié)介紹如何構建發(fā)布版(release)APK职员。如果您完成了前一節(jié)中的簽名步驟,則會對APK進行簽名跛溉。
使用命令行:
cd <app dir>?(<app dir>?為您的工程目錄).
運行flutter build apk?(flutter build?默認會包含?--release選項).
打包好的發(fā)布APK位于<app dir>/build/app/outputs/apk/app-release.apk焊切。
在設備上安裝發(fā)行版APK
按照以下步驟在已連接的Android設備上安裝上一步中構建的APK
使用命令行:
用USB您的Android設備連接到您的電腦
cd <app dir>?.
運行?flutter install?.
將APK發(fā)布到Google Play商店
將應用的release版發(fā)布到Google Play商店的詳細說明,請參閱?Google Play publishing documentation. (國內(nèi)不存在的芳室,但你可以發(fā)布到國內(nèi)的各種應用商店)