Flutter 项目打包发布
在/android/app/src/main/res 目录下,替换ic_launcher.png为正式的项目图标。
在/android/app/src/main/AndroidManifest.xml文件中,修改Application标签下android:label的值的应用名称
keytool -genkey -v -keystore /key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
在命令行输入以上命令后,按照提示输出对应信息。然后会在当前目录生成key.jks签名文件。
注意不要把签名文件放在开源的源码管理系统中
在/android目录下创建key.properties文件,包含了keystore使用配置参数。
storePassword = <前一步的keystore密码>
keyPassword = <前一步的别名密码>
keyAlias = key //别名
storeFile = <key.jks文件路径>
在Gradle文件中配置签名信息
在/android/app/build.gradle文件配置签名信息。
读取key.properties配置文件
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
...
添加签名配置
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildType {
release {
signConfig signingConfigs.release
}
}
启用混淆配置
默认情况下,Flutter不会混淆和压缩Android原生代码,当项目使用的第三方依赖库需要添加混淆配置时,需要添加Flutter相关类的禁止混淆策略。
创建/android/app/proguard-rules.pro文件,并添加以下规则:
## Flutter相关类
-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引擎类库不会混淆。
编辑/android/app/build.gradle文件,在release编译类型下添加混淆和压缩配置。
android {
...
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
检查build配置文件
检查/android/app目录下的build.gradle文件,
applicationId: 应用唯一标识
versionCode 和 versionName:指定应用内部版本号和外部展示版本号,也可以通过pubspec.yaml文件设置版本属性
minSdkVersion和targetVersion:指定应用最小支持的SDK版本和目标运行SDK版本
构建一个发布版(release)APK
本节介绍如何构建发布版(release)APK。如果您完成了前一节中的签名步骤,则会对APK进行签名。
使用命令行:
cd <app dir> (<app dir> 为您的工程目录).
运行flutter build apk (flutter build 默认会包含 --release选项).
打包好的发布APK位于<app dir>/build/app/outputs/apk/app-release.apk。
在设备上安装发行版APK
按照以下步骤在已连接的Android设备上安装上一步中构建的APK
使用命令行:
用USB您的Android设备连接到您的电脑
cd <app dir> .
运行 flutter install .
将APK发布到Google Play商店
将应用的release版发布到Google Play商店的详细说明,请参阅 Google Play publishing documentation. (国内不存在的,但你可以发布到国内的各种应用商店)