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

开始使用 EAS Simulator

编辑页面

检查 EAS Simulator 是否可用,启动远程设备会话并连接到该设备。


Prerequisites

3 requirements

1.

拥有 EAS Simulator 访问权限的 Expo 账户

EAS Simulator 访问权限直接授予部分合作伙伴。开始会话前,请检查当前项目的账户。

2.

已关联的 Expo 项目

请从项目目录运行这些命令。如果项目没有 EAS 项目 ID,请先运行 eas init。

3.

近期版本的 EAS CLI

simulator:* 命令属于实验性功能,默认隐藏。使用这些命令前,请安装或更新 EAS CLI。 由于预览版变化迅速,请使用 eas simulator:start --help 检查已安装版本支持的标志。

面向 AI 代理的 Expo Skills

如果你使用 AI 代理,请安装 Expo Skills,并要求它使用 EAS Simulator skill。该 skill 可以执行下面的会话工作流、驱动应用并为你收集证据。当你想了解或手动运行这些命令时,请使用此页面。

eas-simulator

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

手动启动会话

以下步骤使用 EAS CLI。若要直接通过自己的 HTTP 客户端管理会话,请参阅 REST API 参考。若要在有人打开经过身份验证的 expo.dev URL 时启动仅限浏览器预览的会话,请参阅创建会话链接。

1

进行身份验证并验证项目

在交互式计算机上登录并确认当前用户:

Terminal
- eas login
- eas whoami

在 CI 或无头代理环境中,请在 EXPO_TOKEN 中提供一个 Expo 访问令牌,而不是启动交互式登录。

如果项目尚未关联到 EAS,请进行初始化:

Terminal
- eas init

2

检查账户可用性

可用性检查为只读操作。它不会启动设备,也不会消耗模拟器使用额度。--json 标志是可选的,但它便于代理或脚本检查结果:

Terminal
- eas simulator:availability --json

已启用的账户会返回:

{ "available": true, "accountName": "my-account" }

如果 available 为 false,请勿调用 simulator:start。请使用本地模拟器或仿真器,或者加入候补名单以获取访问权限。

3

保护会话配置

EAS CLI 会将当前会话 ID 和控制器凭据写入 .env.eas-simulator。请在启动前将该文件添加到 .gitignore:

.gitignore
.env.eas-simulator

请勿提交或分享此文件。它包含允许控制器连接远程设备的令牌。

4

选择会话类型并启动远程设备

选择你计划用于安装和设备操作的控制器。在 iOS 上,每个由控制器支持的会话也包含网页预览。如果你只需要网页预览,请使用 web-preview-only,而不指定控制器。启动会话时请明确传入会话类型。

请参阅 agent-device 和 Expo 了解控制器设置和命令。

Terminal
- eas simulator:start --platform ios --type agent-device --name "Checkout flow screenshots" --non-interactive

为每个会话指定一个简短且能说明用途的名称。该名称会显示在 simulator:list、simulator:get 和 expo.dev 上,便于识别并行会话和历史会话。

使用 --platform android 可启动 Android Emulator。Android 会话目前不包含实时浏览器预览。使用 --device 可选择特定的 iOS Simulator 名称或唯一设备标识符(UDID),也可选择 Android 虚拟设备硬件配置文件。如果省略此标志,远程运行器会选择设备。

对于无人值守或可共享的会话,请使用 --max-duration-minutes 设置自动停止时间。你也可以使用 --max-idle-time-minutes,在一段时间没有会话活动后停止会话。付费套餐支持自定义最长时长。

在交互式终端中省略 --platform 时,EAS CLI 会询问要使用哪个平台。非交互式运行需要传入此标志。

启动命令会等待会话就绪,然后写入 .env.eas-simulator。它还会打印:

  • expo.dev 上的直接模拟器会话页面
  • 受支持的 iOS 会话的临时 webPreviewUrl
  • 控制设备的命令格式

若要在会话就绪前安装并启动应用,请传入 --build-id、--application-archive-url 或 --expo-go 中的一个,且只能传入其中一个。你还可以传入启动参数以及 Expo 或开发客户端 URL。完整示例请参阅运行和控制应用。

5

确认会话处于活动状态

使用 .env.eas-simulator 中的会话 ID:

Terminal
- eas simulator:get --json --non-interactive

当 status 为 IN_PROGRESS 且存在 remoteConfig 时即可继续。已停止的会话仍可能包含旧的连接配置,因此仅凭 dotenv 文件无法证明设备处于活动状态。

6

打开 Web 页面

启动命令会链接到一个具有以下格式的会话页面:

https://expo.dev/accounts/<account>/projects/<project>/simulator-sessions/<session-id>

项目级会话列表为:

https://expo.dev/accounts/<account>/projects/<project>/simulator-sessions

对于受支持的 iOS 会话,请在桌面浏览器中打开 webPreviewUrl,以查看并操作实时模拟器。预览 URL 不是应用深层链接。请勿将其传递给用于打开应用或 URL 的控制器命令。

7

停止会话

完成后,请停止当前会话:

Terminal
- eas simulator:stop

如果启动 EAS CLI 时未使用 --non-interactive,它会保持连接状态。按一次 Ctrl+C 可停止会话,并让 EAS CLI 重置 .env.eas-simulator。