应用开发完了,当然需要发布了,下面来看看用 Flutter 开发的应用如何发布,这里我们只关注 Android 版本的发布。
检查 Manifest.xml
前面已经说过了,当创建新项目的时候,会在 /android/src/main/AndroidManifest.xml 创建一个默认的 App Manifest 文件。在发布之前需要确保里面的内容是正确的,下面是一些需要重点关注的内容:
– application:编辑 application 来设置应用最终的名字
– manifest: 在 manifest 标签中设置正确的版本信息
– uses-sdk:设置应用兼容的API 版本
– uses-permission:如果你的应用不需要联网,则可以删除 android.permission.INTERNET permission。默认项目会包含这个权限,用来在调试的时候,Flutter 工具和 App 之间通信
替换启动图标
Flutter 应用有个默认的图标。在发布应用之前需要按照如下方式来替换启动图标:
– 在 /android/src/main/res/ 目录中替换对应的图标。启动图标位于 mipmap-XXX 目录中.
– 替换图标后,运行 flutter run 命令来启动应用,并在手机 Launcher 中验证
设置应用签名
创建签名属性文件
创建一个 /android/key.properties 文件用来保存应用签名信息:
Java
storePassword=
keyPassword=
keyAlias=key
storeFile=/key.jks'>
1
2
3
4
5
storePassword=
keyPassword=
keyAlias=key
storeFile=/key.jks'>
注意: 上面的签名信息比较敏感,请不要把上面的文件提交到代码库中
在 gradle 中配置签名
编辑 /android/app/build.gradle 文件:
在:
Java
android {
1
2
android{
之前添加从配置文件中读取签名信息的代码:
Java
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
1
2
3
4
5
6
defkeystorePropertiesFile=rootProject.file("key.properties")
defkeystoreProperties=newProperties()
keystoreProperties.load(newFileInputStream(keystorePropertiesFile))
android{
把下面的内容:
Java
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
}
}
1
2
3
4
5
6
7
8
buildTypes{
release{
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfigsigningConfigs.debug
}
}
替换为使用签名信息的内容:
Java
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
signingConfigs{
release{
keyAliaskeystoreProperties['keyAlias']
keyPasswordkeystoreProperties['keyPassword']
storeFilefile(keystoreProperties['storeFile'])
storePasswordkeystoreProperties['storePassword']
}
}
buildTypes{
release{
signingConfigsigningConfigs.release
}
}
这样,当建构 release 版本的应用时,就会自动签名 apk 了。
建构一个 release apk
安装上面的方式配置好发布版本签名信息后,通过如下步骤可以生成一个 release apk:
打开命令行窗口,cd ( 为你的应用根目录).
运行 flutter build apk.
生成的 release apk 文件位于 /android/app/build/outputs/app-release.apk.
在手机安装 release apk
安装 apk 也很简单:
手机链接到电脑
命令行 cd
运行 flutter install 命令
发布 apk
在手机上验证发布版 APK 没问题后,就可以发布到商店了。
可以看出, Flutter 工具对整个开发流程的支持还是非常友好的。