Flutter 项目打包发布

Android流程

替换应用Icon和应用名称

在/android/app/src/main/res 目录下,替换ic_launcher.png为正式的项目图标。

在/android/app/src/main/AndroidManifest.xml文件中,修改Application标签下android:label的值的应用名称

生成签名文件并添加签名配置

创建签名文件keystore

keytool -genkey -v -keystore /key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

在命令行输入以上命令后,按照提示输出对应信息。然后会在当前目录生成key.jks签名文件。

注意不要把签名文件放在开源的源码管理系统中

在App中引用生成keystore文件

在/android目录下创建key.properties文件,包含了keystore使用配置参数。

storePassword = <前一步的keystore密码>

keyPassword = <前一步的别名密码>

keyAlias = key  //别名

storeFile =

在Gradle文件中配置签名信息

在/android/app/build.gradle文件配置签名信息。

读取key.properties配置文件

def keystoreProperties = new Properties()

def keystorePropertiesFile = rootProject.file('key.properties')

if (keystorePropertiesFile.exists()) {

    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

}

android {

    ...

添加签名配置

signingConfigs {

    release {

        keyAlias keystoreProperties['keyAlias']

        keyPassword keystoreProperties['keyPassword']

        storeFile file(keystoreProperties['storeFile'])

        storePassword keystoreProperties['storePassword']

    }

}

buildType {

    release {

        signConfig signingConfigs.release

    }

}

启用混淆配置

默认情况下,Flutter不会混淆和压缩Android原生代码,当项目使用的第三方依赖库需要添加混淆配置时,需要添加Flutter相关类的禁止混淆策略。

配置混淆文件

创建/android/app/proguard-rules.pro文件,并添加以下规则:

## Flutter相关类

-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引擎类库不会混淆。

启动混淆和压缩

编辑/android/app/build.gradle文件,在release编译类型下添加混淆和压缩配置。

android {

    ...


    buildTypes {

        release {

            signingConfig signingConfigs.release


            minifyEnabled true

            useProguard true


            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }

    }

}

检查build配置文件

检查/android/app目录下的build.gradle文件,

applicationId: 应用唯一标识

versionCode 和 versionName:指定应用内部版本号和外部展示版本号,也可以通过pubspec.yaml文件设置版本属性

minSdkVersion和targetVersion:指定应用最小支持的SDK版本和目标运行SDK版本

构建发布的应用

构建一个发布版(release)APK

本节介绍如何构建发布版(release)APK。如果您完成了前一节中的签名步骤,则会对APK进行签名。

使用命令行:

cd  ( 为您的工程目录).

运行flutter build apk (flutter build 默认会包含 --release选项).

打包好的发布APK位于/build/app/outputs/apk/app-release.apk。

在设备上安装发行版APK

按照以下步骤在已连接的Android设备上安装上一步中构建的APK

使用命令行:

用USB您的Android设备连接到您的电脑

cd  .

运行 flutter install .

将APK发布到Google Play商店

将应用的release版发布到Google Play商店的详细说明,请参阅 Google Play publishing documentation. (国内不存在的,但你可以发布到国内的各种应用商店)

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android开发之文件下载
  4. Android(安卓)获取手机流量
  5. [Android]使用ProGuard遇到“conversion to Dalvik format faile
  6. android 设置listview item选中背景色
  7. Android(安卓)混淆代码问题总结
  8. 2-8 Android(安卓)简单介绍 (一)
  9. SE for Android(安卓)系列之整体概要(三)

随机推荐

  1. Android跨进程通信IPC之2——Bionic
  2. Android(Lollipop/5.0) Material Design(
  3. android绘图看这篇就够了
  4. Android(安卓)各种布局 控件内部属性大全
  5. Android(安卓)资源文件中@、@android:typ
  6. android中星级评分控件RatingBar的使用
  7. Android(安卓)相对布局属性全集
  8. Android中的主题Theme
  9. Android(安卓)TextView跑马灯效果
  10. Android(安卓)资源文件中@、@android:typ