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. Android开发之文件下载
  2. 3.6.3新版本AndroidStudio报Could not resolve all artifacts fo
  3. AndroidManifest.xml文件剖析 (二)
  4. 帮同事找到了一个问题的解决办法:在android 3.0版本以上的系统 we
  5. android中使用sqlite、复制assets下的数据库到SD卡、支持大于1M
  6. Android各个版本的名称和更新
  7. Android第十八课 VS源码文件导入Android工程 中文乱码

随机推荐

  1. SQL查询语句精华使用简要第1/2页
  2. 简单的SQL Server备份脚本代码
  3. SQL Server 数据库管理常用的SQL和T-SQL
  4. SQL SERVER的优化建议与方法
  5. SQL语言查询基础:连接查询 联合查询 代码
  6. 非常不错的SQL语句学习手册实例版第1/3页
  7. 使用SQL Server数据库嵌套子查询的方法
  8. 五种提高 SQL 性能的方法
  9. SQL Server SQL Agent服务使用教程小结
  10. 将Session值储存于SQL Server中