This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

开发构建简介

编辑页面

了解如何在 Expo 项目中创建开发构建,以及为何使用开发构建而不是 Expo Go。


当你使用 create-expo-app 创建新的 Expo 应用时,你会从一个项目开始:在本地计算机上更新 TypeScript/JavaScript 代码,并在 Expo Go 应用中查看更改。开发构建本质上是你自己的 Expo Go 版本,你可以自由使用任何原生库并更改任何原生配置。

当你想创建自己的应用并将其发布到应用商店时,建议使用开发构建。它包含 expo-dev-client 库,用于增强内置的 React Native 开发工具。该工具还支持检查网络请求,以及提供一个"启动器"界面,让你可以在不同的开发服务器之间切换(例如在运行于你自己的计算机上的服务器与运行于队友计算机上的服务器之间切换),还可以在应用的不同部署版本之间切换(例如使用 EAS Update 发布的更新)。

Expo Go 和开发构建:你应该使用哪一个?
Expo Go 和开发构建:你应该使用哪一个?

在本教程视频中,Beto 将解释它们各自是什么,以及何时应选择开发构建。

您希望如何构建开发构建版本?

这三种方法都会生成相同的开发构建版本。它们的区别在于应用在哪里进行编译,以及您的计算机上需要安装哪些内容。


在本地构建

使用 Expo CLI 和您的原生工具链自行编译应用。无需 Expo 帐户,这是在没有付费 Apple Developer 帐户的情况下将开发版本安装到 iPhone 上的唯一方式。

主机平台支持

AndroidiOS 模拟器iPhone 设备
macOS
Windows
Linux

Prerequisites

1 requirement

原生构建工具

为您要构建的平台设置开发环境:Android 请使用 Android Studio 和 模拟器,iOS 请使用 Xcode 和 iOS 模拟器

1

安装 expo-dev-client

在项目的根目录中运行以下命令:

Terminal
npx expo install expo-dev-client
您是否在现有的 React Native 项目中使用此库?

不使用持续原生生成或通过 npx react-native 创建的应用,在安装此库后需要进行进一步配置。请参阅在现有 React Native 项目中安装 expo-dev-client中的步骤 1 和 2。

开发版本是什么样的?
运行开发版本时,它看起来会是这样,只是其中会显示您的应用名称和图标,而不是“RHT”。左侧是 iOS 启动器界面,右侧是 Android 启动器界面。中间可以看到一个运行在开发版本中的应用,同时打开了可自定义的开发者菜单。

2

构建并运行应用

Terminal
npx expo run:android

默认情况下,应用会安装到正在运行的 Android 模拟器上。若要使用实体设备,请通过 USB 连接设备,在出现提示时允许USB 调试,并添加 --device 标志。

此命令会运行 prebuild,在原生 androidios 目录不存在时生成这些目录,然后编译并安装应用,并启动开发服务器。

3

原生代码发生更改时重新构建

expo run:android|ios 命令会在后续运行中复用原生 androidios 目录。当您只更改应用的 TypeScript/JavaScript 代码时,无需重新构建原生应用。相反,请使用以下命令启动开发服务器:

Terminal
npx expo start

只有在以下情况下,您才需要重新生成原生目录(androidios):

在这些情况下,请使用以下命令重新生成原生目录:

Terminal
npx expo prebuild --clean

然后使用更新后的原生代码重新构建应用:

Terminal
npx expo run:android

安装开发版本后

从设备的主屏幕启动开发版本,并在启动器屏幕中连接到开发服务器,以开始开发应用。要了解如何使用新的开发版本,包括启动器屏幕、重新构建和调试,请参阅使用开发版本。如需了解有关开发版本和 Expo Go 的常见问题,包括在 Expo Go 中无法执行的操作及其原因,请参阅常见问题

面向 AI 代理的 Expo Skills

如果你使用 AI 代理,请安装 Expo Skills,以教会它本页面中的工作流程:

expo-dev-client

Build and distribute Expo development clients locally or via TestFlight for internal testing.

eas-simulator

Run and control a user's app on a remote iOS/Android simulator hosted on EAS cloud.