1.創建 keystore
keytool -genkey -v -keystore d:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
粗字體可換成自己的路徑
生成成功之后,d盤下會出現 key.jks 這個文件,代表成功。
2.創建 key.properties
在 flutter 項目 android 下創建 key.properties
key.properties 文件內容為
storePassword=xxx --創建keystore時的密碼
keyPassword=xxx --創建keystore時的密碼
keyAlias=key
storeFile=d:/key.jks --key.jks的路徑
3.修改 android>app>build.gradle 文件
在 buildTypes 上面一行新增
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes>release 則修改為
signingConfig signingConfigs.release
開啟混淆
默認情況下 flutter 不會開啟 Android 的混淆。
如果使用了第三方 Java 或 Android 庫,也許你想減小 apk 文件的大小或者防止代碼被逆向破解。
配置混淆
創建 /android/app/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.** { *; }
上述配置只混淆了 Flutter 引擎庫,任何其他庫(比如 Firebase)需要添加與之對應的規則。
開啟混淆/壓縮
打開 /android/app/build.gradle 文件,定位到 buildTypes 塊。
在 release 配置中將 minifyEnabled 和 useProguard 設為 true,再將混淆文件指向上一步創建的文件。
android {
...
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
4.構建Android APK
運行flutter build apk 命令
如果成功,打包好的apk包,會在 flutter項目 build>app>outputs>apk>release> 目錄內 ,包名為 app-release.apk
至此。發布完成
