在你的 CI 上构建独立应用


本文档于 2022 年 8 月存档,不会收到任何进一步更新。 SDK 46 是 Classic Builds 支持的最后一个 SDK,Classic Build 服务将在 2023 年 1 月 4 日之后停止运行所有 SDK 版本。 查看 在你自己的基础架构上运行构建从 CI 触发构建

构建独立的 iOS 应用需要 注意: macOS。

本指南介绍了 Expo 的一项高级功能。 在大多数情况下,你可以使用 Expo 的构建服务构建独立的 Expo 应用,如 构建独立应用 指南中所述。

如果你不想依赖我们构建器的稳定性,并且不喜欢在队列中等待获得独立的应用构建,那么你可以自己构建你的 Expo 项目。 你唯一需要的是 Turtle CLI。 Turtle CLI 是用于构建 Expo 独立应用的命令行接口。 你可以在 CI 和私有计算机上使用它。

安装 Turtle CLI

先决条件

你需要安装这些东西:

  • bash
  • Node.js(版本 10 或更高版本)- 下载最新版本的 Node.js

对于 Android 版本

对于 iOS 构建

  • macOS
  • Xcode(版本 11.4 或更高版本)- 确保你至少运行过一次并且同意许可协议。 或者,你可以运行 sudo xcodebuild -license
  • 快车道-看看如何安装

Turtle 命令行接口

通过运行以下命令安装 Turtle CLI:

$ npm install -g turtle-cli

然后运行 turtle setup:ios 和/或 turtle setup:android 以验证所有内容均已正确安装。 此步骤是可选的,并且也在 turtle build:[ios|android] 第一次运行期间执行。 请注意,Android 安装命令会下载、安装和配置适当版本的 Android SDK 和 NDK。

如果你想让第一次构建更快,你可以向安装命令提供 Expo SDK 版本,如下所示: turtle setup:ios --sdk-version 38.0.0。 这告诉 Turtle CLI 为给定的 SDK 版本下载其他与 Expo 相关的依赖。

所有与 Expo 相关的依赖都将安装在你的主目录中名为 .turtle 的目录中。 如果你需要释放一些磁盘空间,可以安全地删除此目录。

发布你的项目

当你使用 Turtle CLI 构建独立应用时,构建过程将在你的本地计算机上进行。 Turtle CLI 使用与我们的服务器上运行的完全相同的代码库(expo build:[ios|android] 命令)。 这意味着你需要将应用发布到 Expo 的服务器或将其托管在你自己的服务器 在使用 Turtle CLI 构建之前 上。 无论你希望 Expo 托管你的应用,还是你想自己托管你的应用,你所需要做的就是遵循相应的指南:

开始构建

如果你选择将应用发布到 Expo 服务器,你必须拥有 Expo 开发者账户并向 turtle-cli 提供你的凭据。 建议的方法是使用你的凭据定义两个名为 EXPO_USERNAMEEXPO_PASSWORD 的环境变量,尽管你也可以从命令行将这些值传递给构建命令。 我们建议使用环境变量来帮助你的凭据远离终端历史记录或 CI 日志。

Turtle CLI 使用已发布的应用清单(而不是本地 app.json/app.config.js 文件)作为应用配置(ios.buildNumberandroid.versionCode 等)的真实来源。

为 Android 构建

在开始构建之前,请准备以下事项:

  • 密钥库
  • 密钥库别名
  • 密钥库密码和密钥密码

要了解如何生成这些内容,请首先参阅 构建独立应用 上的指南。

分别使用密钥库密码和密钥密码的值设置 EXPO_ANDROID_KEYSTORE_PASSWORDEXPO_ANDROID_KEY_PASSWORD 环境变量。

然后,启动独立应用构建:

$ turtle build:android \\
  --keystore-path /path/to/your/keystore.jks \\
  --keystore-alias PUT_KEYSTORE_ALIAS_HERE

如果构建成功完成,你将在日志的最后一行找到构建工件的路径。

如果你想打印所有可用命令参数的列表,请运行 turtle build:android --help

为 iOS 构建

除非你仅针对 iOS 模拟器进行构建,否则请准备以下内容:

  • Apple 团队 ID -(10 个字符的字符串,如 "Q2DBWS92CA")
  • 分发证书.p12 文件(+密码)
  • 配置文件

要了解如何生成这些内容,请首先参阅 构建独立应用 上的指南。

使用分发证书密码的值设置 EXPO_IOS_DIST_P12_PASSWORD 环境变量。

然后,启动独立应用构建:

$ turtle build:ios \\
  --team-id YOUR_TEAM_ID \\
  --dist-p12-path /path/to/your/dist/cert.p12 \\
  --provisioning-profile-path /path/to/your/provisioning/profile.mobileprovision

如果构建成功完成,你将在日志的最后一行找到构建工件的路径。

如果你想打印所有可用命令参数的列表,请运行 turtle build:ios --help

CI 配置文件示例

请参阅 expo/turtle-cli-example 存储库,了解如何将 Turtle CLI 与流行的 CI 服务(CircleCITravis·西尔)结合使用的示例。

Expo 中文网 - 粤ICP备13048890号