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。