打包的具體操作,可以參照官網,只是官網沒有那么細
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了,過程中我也遇到了些問題。
1、簽名路徑問題,沒有寫絕對路徑。
2、打包完成后閃退:就是程序的問題,然后我調試的時候也是閃退,后來是我手殘改了這里,然后顏色都不對了,也是扯淡。
然后節本沒有其他問題了。