打包的具體操作,可以參照官網,只是官網沒有那么細
1、修改AndroidManifest.xml
2、構建配置 可以跳過
3、構建簽名
4、創建 key.properties
5、配置混淆
6、修改builg配置build.gradle
7、打包
--------------------------------------------------分割線--------------------------------------------------------------------
1、修改AndroidManifest.xml
路徑:<app dir> /android/app/src/main/AndroidManifest.xml
3、構建簽名
使用keytool, 可以直接在Android Studio 的terminal里面操作
口令:keytool -genkey -v -keystore G:/keys/test.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias key
區分開來的字段需要注意,存儲路徑 和 別名, 路徑里面的文件自己創建。
輸入口令之后,開始填寫一些信息,名字,公司....到了 【否】 這里寫y,繼續,沒有報錯的話簽名就構建ok了,notepad++打開一坨亂碼,我還在懷疑能用不呢。
4、創建 key.properties
路徑:<app dir>/android/key.properties 文件手動創建
主要用來引入剛剛的簽名文件
key.properties
storePassword = exanple 這是你創建簽名寫的密碼 keyPassword = exanple 這是你創建簽名寫的密碼 keyAlias = key 口令里面的alias key 對應 storeFile = G:/andro/example/android/app/keys/test1.keystore 絕對路徑
5、配置混淆
路徑:<app dir> /android/app/proguard-rules.pro 手動創建
proguard-rules.pro
#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.** { *; }
6、修改builg配置build.gradle
路徑:<app dir>/android/app/build.gradle
build.gradle
def keystorePropertiesFile = rootProject.file("key.properties") // 引入
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
compileSdkVersion 28
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "myapp.flutter_kiminitodoke"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release // debug
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
7、打包
進入項目目錄
flutter build apk
打包好的發布APK位於<app dir>/build/app/outputs/apk/app-release.apk。

至此就ok了,過程中我也遇到了些問題。
特別注意,打包后不能上網,要在android/app/src/main/AndroidManifest.xml </manifest>里加上以下代碼
<uses-permission android:name="android.permission.INTERNET"/>

