檢查 App Manifest
查看(kàn)默認應用(yòng)程序清單文(wén)件(位于
application: 編輯 application 标簽, 這(zhè)是應用(yòng)的名稱。
uses-permission: 如果您的應用(yòng)程序代碼不需要Internet訪問,請(qǐng)删除android.permission.INTERNET權限。标準模闆包含此标記是爲了(le)啓用(yòng)Flutter工(gōng)具和(hé)正在運行的應用(yòng)程序之間的通信。
查看(kàn)構建配置
查看(kàn)默認[Gradle 構建文(wén)件][gradlebuild]”build.gradle”,它位于
defaultConfig:applicationId: 指定始終唯一的 (Application Id) appid versionCode & versionName: 指定應用(yòng)程序版本号和(hé)版本号字符串。有關詳細信息,請(qǐng)參考版本文(wén)檔minSdkVersion & targetSdkVersion: 指定最低(dī)的API級别以及應用(yòng)程序設計(jì)運行的API級别。有關詳細信息,請(qǐng)參閱版本文(wén)檔中的API級别部分。
添加啓動圖标
當一個新的Flutter應用(yòng)程序被創建時(shí),它有一個默認的啓動器圖标。要自(zì)定義此圖标:
查看(kàn)Android啓動圖标 設計(jì)指南,然後創建圖标。
在
在AndroidManifest.xml中,将application标記的android:icon屬性更新爲引用(yòng)上(shàng)一步中的圖标(例如
要驗證圖标是否已被替換,請(qǐng)運行您的應用(yòng)程序并檢查應用(yòng)圖标
app簽名
創建 keystore
如果您有現(xiàn)有keystore,請(qǐng)跳至下(xià)一步。如果沒有,請(qǐng)通過在運行以下(xià)命令來(lái)創建一個: keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
注意:保持文(wén)件私密; 不要将它加入到(dào)公共源代碼控制中。
注意: keytool可能(néng)不在你(nǐ)的系統路徑中。它是Java JDK的一部分,它是作(zuò)爲Android Studio的一部分安裝的。有關具體路徑,請(qǐng)百度。
引用(yòng)應用(yòng)程序中的keystore
創建一個名爲
storePassword=
keyPassword=
keyAlias=key
storeFile=
注意: 保持文(wén)件私密; 不要将它加入公共源代碼控制中
在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
}
}
現(xiàn)在,您的應用(yòng)的release版本将自(zì)動進行簽名。
開(kāi)啓混淆
默認情況下(xià) flutter 不會(huì)開(kāi)啓 Android 的混淆。
如果使用(yòng)了(le)第三方 Java 或 Android 庫,也(yě)許你(nǐ)想減小(xiǎo) apk 文(wén)件的大(dà)小(xiǎo)或者防止代碼被逆向破解。
配置混淆
創建 /android/app/proguard-rules.pro 文(wén)件,并添加以下(xià)規則:
#Flutter Wrapper
-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.** { *; }
上(shàng)述配置隻混淆了(le) Flutter 引擎庫,任何其他(tā)庫(比如 Firebase)需要添加與之對(duì)應的規則。
開(kāi)啓混淆/壓縮
打開(kāi) /android/app/build.gradle 文(wén)件,定位到(dào) buildTypes 塊。
在 release 配置中将 minifyEnabled 和(hé) useProguard 設爲 true,再将混淆文(wén)件指向上(shàng)一步創建的文(wén)件。
android {
...
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
構建一個發布版(release)APK
本節介紹如何構建發布版(release)APK。如果您完成了(le)前一節中的簽名步驟,則會(huì)對(duì)APK進行簽名。
使用(yòng)命令行:
cd
運行flutter build apk (flutter build 默認會(huì)包含 --release選項).
打包好(hǎo)的發布APK位于
在設備上(shàng)安裝發行版APK
按照以下(xià)步驟在已連接的Android設備上(shàng)安裝上(shàng)一步中構建的APK
使用(yòng)命令行:
用(yòng)USB您的Android設備連接到(dào)您的電腦(nǎo)
cd
運行 flutter install .
将APK發布到(dào)Google Play商店(diàn)
将應用(yòng)的release版發布到(dào)Google Play商店(diàn)的詳細說明(míng),請(qǐng)參閱 Google Play publishing documentation. (國内不存在的,但(dàn)你(nǐ)可以發布到(dào)國内的各種應用(yòng)商店(diàn))
網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發