2.6.1 Android构建发布
当App开发完成后,我们需要构建release版本发布到应用商店。在开始构建release版本前需要做的准备工作包括:gradle配置设置、创建并引用签名、开启混淆等。下面分别介绍。
1.gradle配置设置
打开android→app→build.gradle,需要注意以下几个配置。
·applicationId:表示包名,在创建App的时候已经确定好了,一般不需要修改。
·minSdkVersion:指定最低级的API版本,16代表Android的版本为4.1,一般指定16即可,16以下的手机基本没有了。
·versionCode和versionName表示版本号和版本名称,版本号通常是从1开始累加的整数,版本名称一般格式如1.0.0。版本号和版本名称的设置在android→local.properties文件中。
2.创建并引用签名
如果App还没有keystore(签名文件),则需要创建一个;如果有则略过。使用Android Studio创建keystore的步骤如下:
1)打开File→Open,选择当前Flutter App的android目录,点击“Open”,此时打开的是纯Android项目。打开后点击Build→Generate Signed Bundle/APK,如图2-23所示。
此时出现创建keystore引导,如图2-24所示。
图2-23 创建签名
图2-24 创建keystore引导
2)选择APK选项,点击“Next”按钮,出现的界面如图2-25所示。
图2-25 APK确认
3)点击“Create new”按钮,出现的界面如图2-26所示。在其中填写如下keystore的信息。
图2-26 签名信息
·key store path:签名的存放路径,一般我们放在当前App下。
·Password:签名密码。
·Confirm:签名密码确认。
·Alias:签名的别名,这个随便起,就像人的小名一样。
·Alias下面的Password:别名密码。
·Alias下面的Confirm:别名密码确认。
·Country Code:区域简称,我们一般写“zh”,代表中国。
其他可以省略。
注意选择Key store path路径时指定到app目录下,点击“OK”,此时签名已经创建好了。直接关闭当前对话框,打开android/app/build.gradle文件,找到buildTypes,将如下代码:
//配置keystore签名 signingConfigs { release { storeFile file("创建时签名文件名称") storePassword "创建时密码" keyAlias "创建时别名" keyPassword "创建时别名密码" } }
添加到buildTypes同级别上,如下所示:
3.开启混淆(可以略过)
混淆不是必须的,但开启混淆将缩减apk文件的大小,还可以防止别人反编译我们的代码。打开android/app/build.gradle文件,找到buildTypes,将如下代码添加到buildTypes中:
minifyEnabled true useProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
结果如下所示:
设置为true,代表打开了混淆,proguard-rules.pro是混淆文件。Flutter默认情况下不开启混淆,所以没有创建此文件,需要手动在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引擎库,如果还有其他第三方库则需要添加与之对应的混淆规则。
4.开始构建
打开Android Studio,点击底部的“Terminal”窗口,执行命令:flutter build apk,效果如下:
表明构建成功,生成的apk的目录是:build/app/outputs/apk/release/app-release.apk。