打包发布 Android 项目

1. app 签名

1.1 创建 keystore

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

  1. keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

其中:

  • -keystore 参数后的值: my-release-key.keystore, 表示一会儿要生成的那个 签名文件 的名称;请先保存好这个名称,因为后面发布项目期间会用到它。

  • -alias 参数后面的值:my-key-alias,后续发布项目期间也会用到,因此也需要保存好这个参数值;注意:这个参数的值可以根据自己的需要进行自定制。

  • 当运行这个命令的时候,需要输入一系列的参数,和相关的口令的密码,一定要保存好相关的密码,后期会用到。

  • 当生成了签名之后,这个签名,默认保存到了自己的用户目录下 C:\Users\用户名目录\my-release-key.keystore

  • 将自己的签名证书 copy 到 android/app 目录下。

注意:保持 keystore 文件的私密性; 不要将它加入到公共源代码控制中(最好的方式,是将 keystore 文件添加到 .gitignore 忽略文件)。

注意: keytool 可能不在你的系统路径中。它是 Java JDK 的一部分,它是作为 Android Studio 的一部分安装的。有关具体路径,请百度。

1.2 引用应用程序中的 keystore

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

  1. storePassword=<password from previous step>
  2. keyPassword=<password from previous step>
  3. keyAlias=key
  4. storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>

1.3 在 gradle 中配置签名

通过编辑 <app dir>/android/app/build.gradle 文件为您的应用配置签名:

  • 替换:
  1. android {

为:

  1. def keystorePropertiesFile = rootProject.file("key.properties")
  2. def keystoreProperties = new Properties()
  3. keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
  4. android {
  • 替换:
  1. buildTypes {
  2. release {
  3. // TODO: Add your own signing config for the release build.
  4. // Signing with the debug keys for now, so `flutter run --release` works.
  5. signingConfig signingConfigs.debug
  6. }
  7. }

为:

  1. signingConfigs {
  2. release {
  3. keyAlias keystoreProperties['keyAlias']
  4. keyPassword keystoreProperties['keyPassword']
  5. storeFile file(keystoreProperties['storeFile'])
  6. storePassword keystoreProperties['storePassword']
  7. }
  8. }
  9. buildTypes {
  10. release {
  11. signingConfig signingConfigs.release
  12. }
  13. }

2. 构建一个发布版(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

3. 在设备上安装发行版 APK

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

使用命令行:

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

cd <app dir> .

运行 flutter install .