在本地创建发布构建

编辑页面

了解如何为你的 Expo 应用在本地创建发布(生产)构建。


For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

要在本地创建应用的发布构建(也称为生产构建),你需要在自己的电脑上分别执行一些步骤,并使用创建任何原生应用所需的工具。本指南提供了 Android 和 iOS 所需的步骤。

Android

要在本地为 Android 创建发布构建,需要使用 上传密钥 对其进行签名,并生成 Android Application Bundle(.aab)。请按以下步骤操作:

前提条件

  • 已安装 OpenJDK 发行版,以便使用 keytool 命令
  • 已生成 android 目录。如果你使用的是 CNG,则运行 npx expo prebuild 来生成它。

1

创建上传密钥

已经使用 EAS Build 创建过构建?下载你的凭据并跳到下一步。

如果你已经使用 EAS Build 创建过构建,请按照以下步骤下载包含上传密钥及其密码、密钥别名和密钥密码的凭据:

  1. 在终端中运行 eas credentials -p android 并选择构建配置文件。
  2. 选择 credentials.json > Download credentials from EAS to credentials.json
  3. 将下载的 keystore.jks 文件移动到 android/app 目录。
  4. credentials.json 中复制上传 keystore 密码、密钥别名和密钥密码的值,因为下一步需要用到它们。

在你的 Expo 项目目录中,运行以下 keytool 命令来创建上传密钥:

Terminal
sudo keytool -genkey -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

运行此命令后,系统会提示你为 keystore 输入密码。此密码将用于保护上传密钥。请记住你在这里输入的密码,因为下一步会用到它。

此命令还会在你的项目目录中生成名为 my-upload-key.keystore 的 keystore 文件。将它移动到 android/app 目录。

如果你将 android 目录提交到 Git 等版本控制系统,不要提交这个 keystore 文件。它包含你的上传密钥,应当妥善保密。

2

更新 gradle 变量

打开 android/gradle.properties 文件,并在文件末尾添加以下 gradle 变量。将 ***** 替换为你在上一步提供的正确 keystore 密码和密钥密码。

这些变量包含关于上传密钥的信息:

android/gradle.properties
# 如果你是通过 `eas credentials` 命令下载的凭据,请参阅下面每个值的注释。 # 指向 "keystore" 文件的路径 MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore # 请替换为 credentials.json 文件中 `keystore.keyAlias` 字段的值 MYAPP_UPLOAD_KEY_ALIAS=my-key-alias # 请替换为 credentials.json 文件中 `keystore.password` 字段的值 MYAPP_UPLOAD_STORE_PASSWORD=***** # 请替换为 credentials.json 文件中 `keystore.keyPassword` 字段的值 MYAPP_UPLOAD_KEY_PASSWORD=*****
如果你将 android 目录提交到 Git 等版本控制系统,不要提交上述信息。相反,请在你的电脑上创建一个 ~/.gradle/gradle.properties 文件,并将上述变量添加到这个文件中。

3

将签名配置添加到 build.gradle

打开 android/app/build.gradle 文件并添加以下配置:

4

生成发布版 Android Application Bundle(aab)

进入 android 目录,并通过运行 Gradle 的 bundleRelease 命令来创建 .aab 格式的发布构建:

Terminal
cd android

./gradlew app:bundleRelease

此命令会在 android/app/build/outputs/bundle/release 目录中生成 app-release.aab。

5

手动向 Google Play Console 提交应用

Google Play Store 要求在首次提交 .aab 文件时手动提交应用。

Android 应用的手动提交

按照 FYI 指南中的步骤,首次手动将应用提交到 Google Play Store。

iOS

要在本地为 Apple App Store 创建 iOS 发布构建,你需要使用 Xcode,它会通过 App Store Connect 处理签名和提交流程。

前提条件

  • 已付费的 Apple Developer 会员资格
  • 电脑上已安装 Xcode
  • 已生成 ios 目录。如果你使用的是 CNG,则运行 npx expo prebuild 来生成它。

1

在 Xcode 中打开 iOS workspace

在你的 Expo 项目目录中,运行以下命令以在 Xcode 中打开 your-project.xcworkspace

Terminal
xed ios

在 Xcode 中打开 iOS 项目后:

  1. 在左侧边栏中,选择你应用的 workspace。
  2. 转到 Signing & Capabilities 并选择 AllRelease
  3. Signing > Team 下,确保已选择你的 Apple Developer 团队。Xcode 将生成一个自动管理的 Provisioning Profile 和 Signing Certificate。

2

配置发布 scheme

要配置应用的发布 scheme:

  1. 从菜单栏打开 Product > Scheme > Edit Scheme
  2. 从侧边栏中选择 Run,然后使用下拉菜单将 Build configuration 设置为 Release

3

为发布构建应用

要为发布版本构建你的应用,从菜单栏打开 Product > Build。这一步将为发布版本构建你的应用二进制文件。

4

使用 App Store Connect 提交应用

构建完成后,你可以将应用分发到 TestFlight,或使用 App Store Connect 提交到 App Store:

  1. 从菜单栏打开 Product > Archive
  2. Archives 下,点击右侧边栏中的 Distribute App
  3. 点击 App Store Connect 并按照窗口中显示的提示操作。这一步将创建一个 app store 记录,并将你的应用上传到 App Store。
  4. 现在你可以前往你的 App Store Connect 账户,在 Apps 下选择你的应用,并通过 TestFlight 提交测试,或按照 App Store Connect 仪表板中的步骤为最终发布做准备。