flutter 打包apk

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011272795/article/details/83827575

前言

完成项目时,我们需要将项目打包成一个apk,方便测试以及发布版本.
并且发布版本还需要签名,今天把这一系列操作记录下来.

App签名

创建 keystore

如果您有现有keystore,请跳至下一步。如果没有,请通过在运行以下命令来创建一个:

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

注意:

  • 保持文件私密; 不要将它加入到公共源代码控制中。
  • 此操作生成的签名是*.jks格式

引用应用程序中的keystore

创建一个名为/android/key.properties的文件,其中包含对密钥库的引用:

storePassword=<创建keystore时的storePassword>
keyPassword=<创建keystore时的keyPassword>
keyAlias=key
storeFile=<密钥库文件的位置 , 例如: /Users/<user name>/key.jks>

文件内容和层级如图所示:
在这里插入图片描述
注意:

  • 保持文件私密; 不要将它加入公共源代码控制中.
  • storeFile 这里要使用绝对路径

在gradle中配置签名

通过编辑/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
    }
}

为:

扫描二维码关注公众号,回复: 3977965 查看本文章
signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

如图所示:
在这里插入图片描述

在这里插入图片描述

现在,您的应用的release版本将自动进行签名。

构建一个发布版(release)APK

使用命令行:

  • cd <app dir> (<app dir> 为您的工程目录).
  • 运行flutter build apk (flutter build 默认会包含 --release选项).

可直接使用编辑器中的Terminal运行 flutter build apk 命令.

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

猜你喜欢

转载自blog.csdn.net/u011272795/article/details/83827575