Android Studio打包发布Flutter安卓应用
打包发布安卓应用主要有5步,
修改android/app/src/main/AndroidManifest.xml
首先通过安卓模式打开项目
然后等待项目加载完成,出现下面情况为加载完成:
如果出现异常可以参考这篇文章:启动 flutter项目时报Could not find com.android.tools.build3.2.1.
然后修改APP对应的名字,也就是在手机桌面显示的应用名
图标自定义我们可以修改mipmap
下面的图标文件(建议右键show in explorer
在文件夹中打开,然后再进行修改)
修改和配置build.gradle
文件
打开app
的build.gradle
修改兼容的安卓版本
compileSdkVersion
:表示编译时的安卓版本targetSdkVersion
:表示目标安卓版本minSdkVersion
:表示最低兼容的安卓版本
如果要查看安卓版本对应的数字的话,可以点击SDK Manager
进行查看:
其他字段含义:
签名APP
创建证书:
点击Build-->Generate Signed Bundle/APK
选择APK
点击下一步:
点击创建一个新的证书:
输入信息即可创建证书:
点击OK之后可能会出现报错,此处忽略即可:
然后点击取消,即可看到我们创建的证书:
新建一个/android/key.properties
文件,配置如下内容:
配置build.gradle
打开build.gradle
文件,在android
节点上面添加下面内容:
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
如下:
将下面内容
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
}
}
效果如下:
开启混淆
新建/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.** { *; }
在build.gradle
文件的release
节点下添加:
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
用来启动混淆配置,minifyEnabled
表示是否压缩
构建一个发布版(release)APK
切换到flutter项目的根目录,执行flutter build apk
即可打包成功。
常见问题及解决方法
解决问题 Cause: buildOutput.apkData must not be null
VScode+Flutter 开发继续踩坑
Flutter打包release版本安卓apk包真机安装无法请求网络的解决方法
Flutter中文网:https://flutterchina.club/android-release/
还没有评论,来说两句吧...