![Flutter实战入门](https://wfqqreader-1252317822.image.myqcloud.com/cover/55/32436055/b_32436055.jpg)
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所示。
![](https://epubservercos.yuewen.com/E5359F/17517093106688906/epubprivate/OEBPS/Images/t2-23-i.jpg?sign=1738872567-GtpQwpenoUFS18ZyeyNZaDlDbRK2eNNf-0-8c93d2ada165f499ed815f3ff05b17b5)
图2-23 创建签名
![](https://epubservercos.yuewen.com/E5359F/17517093106688906/epubprivate/OEBPS/Images/t2-24-i.jpg?sign=1738872567-mhnnuVtDBrnniSfXfDLaJ78achVYtX6B-0-f3b1df0877f9acad6f77634705b387d7)
图2-24 创建keystore引导
2)选择APK选项,点击“Next”按钮,出现的界面如图2-25所示。
![](https://epubservercos.yuewen.com/E5359F/17517093106688906/epubprivate/OEBPS/Images/t2-25-i.jpg?sign=1738872567-88AQaXh3XJarm841LgvSyv3vNQ2W53tu-0-89de5eb16e78dc48a3048c7ecb19166a)
图2-25 APK确认
3)点击“Create new”按钮,出现的界面如图2-26所示。在其中填写如下keystore的信息。
![](https://epubservercos.yuewen.com/E5359F/17517093106688906/epubprivate/OEBPS/Images/t2-26-i.jpg?sign=1738872567-HVLfUofu9SRzNTmPkYvtpy5mHyQsFQ3K-0-bda2c9b88ce0db7d365b9f02c9fb1a25)
图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同级别上,如下所示:
![](https://epubservercos.yuewen.com/E5359F/17517093106688906/epubprivate/OEBPS/Images/29-i.jpg?sign=1738872567-iXNv7NjZm1S0XuTs00fK5MMjZX2gW336-0-6fef7c5aea2d2e63def2eac607bca398)
3.开启混淆(可以略过)
混淆不是必须的,但开启混淆将缩减apk文件的大小,还可以防止别人反编译我们的代码。打开android/app/build.gradle文件,找到buildTypes,将如下代码添加到buildTypes中:
minifyEnabled true useProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
结果如下所示:
![](https://epubservercos.yuewen.com/E5359F/17517093106688906/epubprivate/OEBPS/Images/30-i.jpg?sign=1738872567-rJ6Fb6aBj73mQhEOsZ3MOw72OZyDDm6T-0-02aa4f88d11aa7f7a86410b8aec521d1)
设置为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,效果如下:
![](https://epubservercos.yuewen.com/E5359F/17517093106688906/epubprivate/OEBPS/Images/31-i.jpg?sign=1738872567-H6TJf3N4kAPK48KGzrydR9O7ICWNIsaZ-0-051205bc1ae8be2e687335b7cfe7e4bd)
表明构建成功,生成的apk的目录是:build/app/outputs/apk/release/app-release.apk。