发布 Lightbuild 应用

如需在 Google Play 上发布应用,您需要将应用的发布版本构建为 Android App Bundle,使用上传密钥为其签名,然后将其上传到 Play 管理中心。本页面介绍了如何在 Lightbuild 项目中配置发布签名,以及如何使用 Lightbuild CLI 构建已签名的 app bundle。

创建上传密钥

Google Play 使用 Play 应用签名功能对提供给用户的 APK 进行签名,而您则使用上传密钥对上传的 app bundle 进行签名。如果您还没有上传密钥,请使用 JDK 附带的 keytool 创建一个:

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

该命令会提示您输入密钥库和密钥的密码,然后在当前目录中创建一个名为 upload-keystore.jks 的密钥库文件。将密钥库存储在项目外部的安全位置,不要将其签入版本控制系统。如需了解详情,请参阅为应用签名。

配置发布签名

在应用模块的 lightbuild.yaml 文件中,向 packaging 中的 release 配置文件添加 signing 代码块。请勿在文件中写入密码,而是使用 ${NAME} 语法引用环境变量:

android:
  packaging:
    release:
      signing:
        storeFile: "${RELEASE_STORE_FILE}"
        storePassword: "${RELEASE_STORE_PASSWORD}"
        keyAlias: "${RELEASE_KEY_ALIAS}"
        keyPassword: "${RELEASE_KEY_PASSWORD}"

在您构建项目时,Lightbuild 会从其环境变量中读取每个值,因此您的密码不会存储在项目文件中。如需详细了解这些设置,请参阅 Lightbuild 配置参考文档中的打包。

设置环境变量

在构建之前,请在运行 Lightbuild CLI 的终端中设置环境变量。例如,在 macOS 或 Linux 上:

export RELEASE_STORE_FILE="$HOME/keystores/upload-keystore.jks"
export RELEASE_STORE_PASSWORD="KEYSTORE_PASSWORD"
export RELEASE_KEY_ALIAS="upload"
export RELEASE_KEY_PASSWORD="KEY_PASSWORD"

在 Windows 上,在 PowerShell 中:

$env:RELEASE_STORE_FILE = "$HOME\keystores\upload-keystore.jks"
$env:RELEASE_STORE_PASSWORD = "KEYSTORE_PASSWORD"
$env:RELEASE_KEY_ALIAS = "upload"
$env:RELEASE_KEY_PASSWORD = "KEY_PASSWORD"

将 KEYSTORE_PASSWORD 和 KEY_PASSWORD 替换为您的密码。在 CI 系统中,将密码存储为 Secret,并将其作为环境变量公开给 build。

构建已签名的 app bundle

在每次发布之前,请提高应用模块的 lightbuild.yaml 文件中的 versionCode 设置,并根据需要更新 versionName。Google Play 要求每次上传的版本代码都必须高于上一次。如需了解详情,请参阅对您的应用进行版本控制。

如需构建已签名的发布版 app bundle,请运行以下命令:

lightbuild build app:app-release.aab

Lightbuild 会将 bundle 写入 app/build/app-release.aab。如需查看应用模块的每个目标将其输出写入何处,请运行 lightbuild query app/... --output=files。

将应用上传到 Google Play

将已签名的 app bundle 上传到 Play 管理中心。如需在向用户发布应用之前对其进行测试,请先将其上传到内部测试轨道。如需了解详情,请参阅将您的应用上传到 Play 管理中心。