一、打包前需要做一些基本设置的确认
1.应用名
2.权限设置
3.applicationId:应用唯一标识符
4.versionCode:版本号
5.versionName:版本名称
6.APP应用图标
7.APP启动页
以上对应的设置可以参考Flutter官网
二、APP签名(以下操作均针对macOS)
创建keystore
如果你之前已经创建过keystore的话,可以跳过此步骤。如果没有,请打开终端运行以下命令来创建一个:
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
密碼是屏蔽的,輸入回車即123
是
,然后回车即可,下面会告诉你生产该文件的路径在应用程序中引用keystore
首先创建一个文件key.properties
路径为<app dir>/android/key.properties
,其中<app dir>
就是你app的文件路径,key.properties
为文件名
在该文件中输入对应的配置
storePassword=<生成keystore时设置的密码> keyPassword=<生成keystore时设置的密码> keyAlias=key storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>即生成文件的key.jks的文件路径
在gradle中配置签名
配置的文件路径为<app dir>/android/app/build.gradle
为应用配置
将
替换为
android {
替换为
def keystorePropertiesFile = rootProject.file("key.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android {
将
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 } }
现在,您的应用的release版本将自动进行签名。
最后
使用命令行:
cd <app dir>
(<app dir>
为您的工程目录).
运行flutter build apk
(flutter build
默认会包含 --release
选项).
打包好的发布APK位于<app dir>/build/app/outputs/apk/app-release.apk
最后注意:使用该命令打包时有可能提示打包很慢,是因为要使用gradle,大家懂的,所以需要耐心等待