Flutter开发和工具之如何发布Android版APP
在典型的开发周期中,您将使用flutter run
命令行或者IntelliJ中通过工具栏运行和调试按钮进行测试。默认情况下,Flutter构建应用程序的debug版本。
当您准备好为Android准备的release版时,例如要发布到应用商店,请按照此页面上的步骤操作。
检查 App Manifest
查看默认应用程序清单文件(位于<app dir>/android/app/src/main/
中的AndroidManifest.xml
文件),并验证这些值是否正确,特别是:
-
application
: 编辑application
标签, 这是应用的名称。 -
uses-permission
: 如果您的应用程序代码不需要Internet访问,请删除android.permission.INTERNET
权限。标准模板包含此标记是为了启用Flutter工具和正在运行的应用程序之间的通信。
查看构建配置
Review the default [Gradle build file][gradlebuild] file build.gradle
located in <app dir>/android/app/
and verify the values are correct, especially: 查看默认[Gradle 构建文件][gradlebuild]”build.gradle”,它位于<app dir>/android/app/
,验证这些值是否正确,尤其是:
-
defaultConfig
:
添加启动图标
当一个新的Flutter应用程序被创建时,它有一个默认的启动器图标。要自定义此图标:
-
查看Android启动图标 设计指南,然后创建图标。
-
在
<app dir>/android/app/src/main/res/
目录中,将图标文件放入使用配置限定符命名的文件夹中。默认mipmap-
文件夹演示正确的命名约定。 -
在
AndroidManifest.xml
中,将application
标记的android:icon
属性更新为引用上一步中的图标(例如<application android:icon="@mipmap/ic_launcher" ...
)。 -
要验证图标是否已被替换,请运行您的应用程序并检查应用图标
app签名
创建 keystore
如果您有现有keystore,请跳至下一步。如果没有,请通过在运行以下命令来创建一个: keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
注意:保持文件私密; 不要将它加入到公共源代码控制中。
注意: keytool
可能不在你的系统路径中。它是Java JDK的一部分,它是作为Android Studio的一部分安装的。有关具体路径,请百度。
引用应用程序中的keystore
创建一个名为<app dir>/android/key.properties
的文件,其中包含对**库的引用:
storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=key
storeFile=<location of the key store file, e.g. /Users/<user name>/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版本将自动进行签名。
构建一个发布版(release)APK
本节介绍如何构建发布版(release)APK。如果您完成了前一节中的签名步骤,则会对APK进行签名。
使用命令行:
-
cd <app dir>
(<app dir>
为您的工程目录). - 运行
flutter build apk
(flutter build
默认会包含--release
选项).
打包好的发布APK位于<app dir>/build/app/outputs/apk/app-release.apk
。
在设备上安装发行版APK
按照以下步骤在已连接的Android设备上安装上一步中构建的APK
使用命令行:
- 用USB您的Android设备连接到您的电脑
-
cd <app dir>
. - 运行
flutter install
.
将APK发布到Google Play商店
将应用的release版发布到Google Play商店的详细说明,请参阅 Google Play publishing documentation. (国内不存在的,但你可以发布到国内的各种应用商店)
想学习更多Android知识,或者获取相关资料请加入Android技术开发交流2群:862625886。 有面试资源系统整理分享,Java语言进阶和Kotlin语言与Android相关技术内核,APP开发框架知识, 360°Android App全方位性能优化。Android前沿技术,高级UI、Gradle、RxJava、小程序、Hybrid、 移动架构师专题项目实战环节、React Native、等技术教程!架构师课程、NDK模块开发、 Flutter等全方面的 Android高级实践技术讲解。还有在线答疑