使用 Expo GitHub App 触发构建

编辑页面

了解如何使用 Expo GitHub App 为你的应用在 EAS 上触发构建。


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

本指南说明如何使用 Expo GitHub App 直接从你的 GitHub 仓库触发构建。

前提条件

在你的 eas.json 中设置 image 字段

对于你希望与 GitHub 一起使用的构建配置文件,请在 eas.json 中为原生平台指定要使用的 image

如果你的项目配置不依赖于特定的构建镜像,请使用 latest 镜像。例如:

eas.json
{ %%placeholder-start%%... %%placeholder-end%% "build": { "production": { "android": { "image": "latest" }, "ios": { "image": "latest" } } } }

在本地机器上成功运行一次构建

要从 GitHub 仓库触发 EAS 构建,你需要先为项目配置好 EAS Build,并且在你的电脑上成功为你希望在 GitHub 上支持的每个平台运行一次构建。

如果你还没有成功运行过 eas build -p [all|ios|android],请查看创建你的首次构建了解更多信息。一旦完成,请继续阅读本指南中的步骤。

以下条件也必须满足:

  • 组织中的 Expo 用户必须拥有一个已关联、且对目标仓库有访问权限的 GitHub 用户。请检查 Account settings > Overview > User settings > Connections,并确认你的 GitHub 用户账号已关联。
  • 你必须接受 Expo GitHub app 请求的权限。

为 GitHub 配置你的应用

将你的 GitHub 仓库关联到 Expo 项目

访问你项目的GitHub 设置

在你的 GitHub 账号上安装 Expo GitHub App。

注意: 你必须拥有 Expo 账号的 Owner 或 Admin 访问权限 才能安装该应用。

然后,将 GitHub 仓库关联到你的 Expo 项目。

注意: 你只能将 GitHub 组织仓库关联到 Expo 组织。

如需从另一个 GitHub 账号添加仓库,请在账号选择下拉菜单中点击 Add new account 选项。

配置你的仓库设置

在运行构建之前,Expo GitHub App 需要知道在哪里找到你项目的源代码。如果你的 Expo 项目源代码位于仓库根目录,那么你无需做任何操作。如果你的 Expo 项目源代码位于子目录中,那么你需要在项目的GitHub 设置 页面为你的仓库配置“Base directory” 设置。

从 GitHub 触发构建

当你为 GitHub 配置好应用后,你可以使用项目构建列表页面上的 UI 或通过 GitHub PR 上的标签来从 GitHub 触发构建。

使用 Expo 网站构建

访问你项目的构建列表 页面,然后点击“Build from GitHub”按钮。系统会提示你选择一个 Git ref(branch/commit/tag)、要构建的 平台,以及要应用的构建配置文件。

你也可以为这次特定构建指定一个 base directory。这不会更改该项目的全局 设置。

使用 GitHub PR 标签构建

你可以通过给 GitHub PR 添加标签来触发构建。标签必须采用 eas-build-[platform]:[profile] 的形式,其中 [platform] 可以是 androidiosall,而 [profile] 是你在 eas.json 文件中指定的构建配置文件名称。如果你不指定 构建平台,默认值为 all。如果你不指定 构建配置文件,默认值为 production

例如,如果 你想触发一个 Android 的生产构建,请给 PR 添加标签 eas-build-android

构建将针对 PR 基础分支上的最新提交触发。你可以在 PR 的 checks 中查看 构建状态。构建链接会显示在该 check 的详情中。

当代码推送到你的 GitHub 仓库时自动构建

你可以进一步实现构建自动化,当你向 GitHub 推送代码时自动构建你的 Expo 项目。

使用 EAS Workflows

EAS Workflows 是 Expo 提供的一项服务,允许你在 EAS 上运行构建以及许多其他类型的作业。你可以使用 EAS Workflows 来自动化开发和发布流程,例如创建开发构建或自动构建并提交到应用商店。

要使用 EAS Workflows 创建构建,请先在 .eas/workflows/build.yml 中添加以下代码:

.eas/workflows/build.yml
name: Build on: push: branches: - main jobs: build_android: name: Build Android App type: build params: platform: android build_ios: name: Build iOS App type: build params: platform: ios

当提交推送到 main 分支时,此工作流会创建 Android 和 iOS 构建。你可以在EAS Workflows 文档中了解如何修改此工作流以及串联其他类型的作业。

设置构建触发器

已弃用 此功能已弃用,并对新项目禁用。我们建议改用 EAS Workflows
了解如何设置构建触发器

你可以设置构建触发器,来配置 EAS 何时从 GitHub 构建你的应用。我们支持在推送到分支、pull request 和 Git tag 时构建。

在控制台中打开你的 Expo 项目。要创建构建触发器,请滚动到项目 GitHub 设置页面的 Build triggers 部分,然后点击 New Build Trigger

当你点击 New Build Trigger 时,会显示一个表单,用于配置此构建应如何运行。

这些模式可以包含由星号(*)表示的通配符,它们可以匹配模式中的任意字符和任意数量的字符。例如,releases/* 可以匹配 releases/release/1234release/genesis 等。如果你将模式仅指定为一个星号(*),则会匹配所有分支/标签。

你也可以为特定的平台和构建配置文件配置触发器。如果你选择多个 平台,则会为每个平台分别创建一个触发器。

当你推送到某个分支或标签时,你可以通过查看某个提交的 Checks 部分找到构建。

对于 pull request,你可以配置一个 target branch pattern。这指的是你希望构建的 pull request 的目标分支。这里同样适用相同的通配符规则。

当你推送到一个源分支和目标分支都匹配此触发器的 pull request 时,你会在该 pull request 的 checks 部分找到这些构建:

注意: 要从 pull request 触发构建,pull request 的作者必须是该 GitHub 仓库的协作者。若你想构建来自外部贡献者的 pull request, 应用 PR 标签

管理构建触发器

在 EAS 仪表板中你的项目 GitHub 设置页面上,你可以点击某个构建触发器行右侧的选项按钮来禁用、编辑或删除该触发器。

你也可以使用触发器中的参数手动运行一次 GitHub 构建。这不会计入你的自动构建触发器记录。

使用 EAS Submit 自动提交到应用商店

当你的构建完成后,你可以使用 EAS Submit 自动将应用提交到应用商店。此功能简化了流程,减少了发布应用所需的手动步骤。

要启用自动提交,你需要将提交功能配置到构建触发器中,使其成为构建流程的一部分。设置方法如下:

  • 在 EAS 仪表板中进入你项目的 GitHub 设置页面。
  • 找到你想修改的构建触发器,然后点击选项按钮。
  • 选择 Edit trigger,在弹出的对话框中勾选 Submit to store after build 选项。
  • 保存更改。

启用后,每次根据此配置触发构建时,系统都会自动将其提交到你在 eas.jsonsubmit 字段下配置的应用商店。

注意: 请确保你的 eas.json 已正确配置用于提交,包括 指定正确的应用商店凭据和提交配置文件。更多信息请参阅 EAS Submit

故障排查

  • 当出现问题时,我们会在尝试构建的提交上留下评论,并附上一些错误信息。
  • 在尝试构建时,请再次确认前提条件部分中的所有内容都已满足。
  • 如果你使用的是 monorepo 配置,请确认你的 base directory 是否正确。
  • 你的构建配置文件是否正确?如果在 eas.json 中找不到匹配的配置文件,构建将不会分发。