美文网首页
flutter 打包签名配置

flutter 打包签名配置

作者: 优秀笔记 | 来源:发表于2019-08-21 21:25 被阅读0次

    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 = <key.jks文件路径>

    在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 <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. (国内不存在的,但你可以发布到国内的各种应用商店)

    相关文章

      网友评论

          本文标题:flutter 打包签名配置

          本文链接:https://www.haomeiwen.com/subject/ahrwsctx.html