在云端配置开发构建

编辑页面

了解如何使用 EAS Build 为项目配置开发构建。


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

在本章中,我们将为示例应用设置并配置一个使用 EAS 的开发构建。

观看:如何配置开发构建
观看:如何配置开发构建

了解如何安装 expo-dev-client、在 eas.json 中配置构建配置文件,以及如何使用 EAS Build 创建你的第一个开发构建。


了解开发构建

让我们先了解什么是开发构建,以及为什么我们需要它们。

开发构建 是我们项目的调试版本。它针对在创建应用时进行快速迭代进行了优化。它包含 expo-dev-client 库,提供了一个强大而完整的开发环境。这个设置使我们能够根据需要集成任何原生库,或修改 原生目录 中的代码。

关键亮点

注意: 如果你熟悉 Expo Go,可以将开发构建理解为一个可定制的 Expo Go 版本,它是专为项目需求而独特定制的。

功能开发构建Expo Go
开发阶段为移动应用开发提供类似 Web 的迭代速度。允许使用客户端应用对 Expo SDK 项目进行快速迭代和测试。
协作通过共享原生运行时便于团队测试。可通过设备上的二维码轻松共享项目。
第三方库支持完全支持任何第三方库,包括那些需要自定义原生代码的库。仅限于 Expo SDK 内的库,不适合自定义原生依赖。
自定义通过 配置插件 和直接访问原生代码进行广泛自定义。自定义能力有限,侧重于 Expo SDK 功能,不能直接修改原生代码。
预期用途适合面向上架商店的完整应用开发,提供完整的开发环境和工具。适合学习、原型设计和实验。不建议用于生产应用。

1

安装 expo-dev-client 库

要为开发构建初始化我们的项目,先在项目目录中 cd 进去,然后运行以下命令来安装该库:

Terminal
npx expo install expo-dev-client

启动开发服务器

运行 npx expo start 来启动 开发服务器

Terminal
npx expo start

该命令会启动 metro bundler。在终端窗口中,我们会看到二维码,随后是 Metro waiting on... 和一个 manifest URL:

让我们注意安装 expo-dev-client 库后的变化:

  • manifest URL 中包含 expo-development-client 以及应用 scheme
  • 开发服务器现在是为开发构建运行的(而不是 Expo Go)。

由于我们在任何设备或模拟器/仿真器上都还没有安装开发构建,所以目前还无法运行项目。

2

初始化开发构建

安装 EAS CLI

我们需要在本地机器上将 EAS Command Line Interface(CLI)工具作为全局依赖安装。运行以下命令:

Terminal
npm install -g eas-cli

登录或注册 Expo 账户

如果你已有 Expo 账户,并且已经使用 Expo CLI 登录,请跳过此步骤。如果你还没有 Expo 账户,请先在此注册,然后继续执行下面描述的登录命令。

要登录,请运行以下命令:

Terminal
eas login

该命令会要求我们输入 Expo 账户的邮箱或用户名以及密码来完成登录。

初始化并将项目链接到 EAS

对于任何新项目,第一步都是初始化并将其链接到 EAS 服务器。运行以下命令:

Terminal
eas init

运行时,此命令会:

  • 通过输入我们的 Expo 账户凭据来请求验证账户所有者身份,并询问我们是否要创建一个新的 EAS 项目:
Terminal
# 运行 eas init 后的输出✔ Which account should own this project? > your-username✔ Would you like to create a project for @your-username/sticker-smash? … yes✔ Created @your-username/sticker-smash✔ Project successfully linked (ID: XXXX-XX-XX-XXXX) (modified app.json)
  • 创建 EAS 项目,并提供该项目的链接,我们可以在 EAS 仪表板中打开它:
  • 生成一个唯一的 projectId,并将该 EAS 项目链接到我们开发机器上的示例应用。
  • 修改 app.json,加入 extra.eas.projectId,并将其值更新为创建的唯一 ID。
什么是 app.json 中的 projectId

eas init 运行时,它会在 app.jsonextra.eas.projectId 下为我们的项目关联一个唯一标识符。这个属性的值用于在 EAS 服务器上标识我们的项目。

{ "extra": { "eas": { "projectId": "0cd3da2d-xxx-xxx-xxx-xxxxxxxxxx" } } }

3

为 EAS Build 配置项目

要为 EAS Build 设置我们的项目,请运行以下命令:

Terminal
eas build:configure

运行时,此命令会:

  • 提示选择平台:AndroidiOSAll。由于我们要创建 Android 和 iOS 应用,选择 All
  • 在项目目录根目录创建 eas.json,其配置如下:
eas.json
{ "cli": { "version": ">= 16.18.0", "appVersionSource": "remote" }, "build": { "development": { "developmentClient": true, "distribution": "internal" }, "preview": { "distribution": "internal" }, "production": { "autoIncrement": true } }, "submit": { "production": {} } }

这是新项目中 eas.json 的默认配置。它做了两件事:

  • 定义当前 EAS CLI 版本。
  • 添加三个构建配置文件developmentpreviewproduction
进一步了解 development 配置文件

eas.json 是不同构建配置文件的集合。每个配置文件都针对特定配置进行定制,以生成特定类型的构建。这些配置文件也可以包含 Android 或 iOS 的平台特定设置。

目前,我们关注的是 development 配置文件,它包含以下配置:

  • developmentClient:启用(true)以创建调试构建。它使用 expo-dev-client 库加载应用,该库提供开发工具,并生成可供设备或模拟器/仿真器安装的构建产物,同时由于它支持动态更新 JavaScript,因此允许用于本地开发。
  • distribution:配置为 internal,表示我们希望在内部共享该构建(而不是上传到应用商店)。

注意:构建提供了广泛的自定义选项,包括平台特定设置,以及在不同构建配置文件之间扩展配置的能力。了解更多关于自定义构建配置文件的信息。

总结

Chapter 1: Configure development build in cloud

我们成功使用 EAS CLI 初始化并配置了项目,将其链接到 EAS 服务器,并准备了一个开发构建。

在下一章中,我们将为 Android 创建一个开发构建,将其安装到设备和模拟器上,并使用开发服务器运行它。

Next: 为 Android 创建并运行云构建