@expo/simulator-launcher

中文文档
27.10.0发布于 2026/11/14BUSL-1.1零依赖构建来源已验证近 30 天下载 2598

关于EAS工人的模拟会议

中文使用文档
文档目录5 节
  1. 图标
  2. 环境
  3. 编写文件
  4. 编制工具清单
  5. 边界

@ expo/ 模拟发射器

准备 iOS 模拟器和本地工具,缓存 Expo Go 和 Appium 文件, 并准备声明会话 。 需要 macOS 。 (笑声).

用您想要准备的设备启动发射装置:

export EXPO_SIMULATOR_STARTUP=1
export EXPO_SIMULATOR_DEVICE="iPhone Duo,iPhone 18"
exec bunx @expo/simulator-launcher@latest start

图标

  • start: 为配置的设备运行一个孤儿服务图像 。 它的默认设备准备就绪 首先;背景中的其他设备会温暖。 默认时启动 .
  • claim ENGINE [DEVICE]: 保留一个任务并返回其选中的设备加上现有的服务器 身份、端口和证书。 引擎数 : serve-sim, (中文(简体) ), agent-device, (中文(简体) ), argent, (中文(简体) ), appium。 。 。 . 无 DEVICE 表示第一个配置的设备. 索赔不启动选定设备或等待 它的工具。 建造工具在现有的服务站端口上私下采用该设备.
  • prepare-tools: 收养后继续消费索赔。 保留全局Argent, 重复默认 代理设备跑道或为选定的设备准备跑道。 Appium等旧XCTest清理.
  • stop: 永久结束热身, 等待所有拥有的资源被清理.
  • warmup: 填充模拟器和本地工具缓存. 与 EXPO_SIMULATOR_STARTUP=1, (中文(简体) ), 电话 prefetch,将选中的模拟器拖出,安装 Expo Go 除非已禁用, 并等待 用于默认设备上的Argent和代理设备。 然后它会消耗自有的流程 并关闭 下移所选模拟器。 已准备好的文件和本地构建缓存仍然可用 . 不完全准备或清理失败 。 准备期限为10分钟;清理 需要更长的时间。 需要新的 macOS 靴子前 start 已经运行。 重复,或 start 之后 warmup,需要另一个靴子。 它不启动 Appium 会话或准备 二级装置上的探照器.
  • prefetch: 缓存所选的 Expo Go 存档用于再利用 。 与 APPIUM_VERSION 财务报告和审定财务报表 XCUITEST_VERSION,编写 Appium, XCUI Test 和 WebDriver Agent 文件。 它不获取服务图像、代理设备或Argent。 进取到stderr;命令在第一次失败时停止.

消费者使用 start 用于会话命令( e)LAUNCHER_VERSION 页:1 在另一个进程中运行这些 :

bun x "@expo/simulator-launcher@$LAUNCHER_VERSION" claim serve-sim
# After adoption confirms the selected device and native ACK:
bun x "@expo/simulator-launcher@$LAUNCHER_VERSION" prepare-tools
bun x "@expo/simulator-launcher@$LAUNCHER_VERSION" stop

在不启动设备的情况下缓存文件 :

simulator-launcher prefetch

还准备模拟器和本地工具(warmup 已通话 prefetch:

EXPO_SIMULATOR_STARTUP=1 simulator-launcher warmup

会话的通过要求支持端口设备的 service-sim 发布通过.

一个持久的状态文件, /tmp/expo-simulator-startup.json,持有生命周期,发射装置版本, 选中的设备、 服务器证书、 要求和本地身份 。 它独立于家庭/TMPDIR。 一个短的靴子瞄准锁 序列化更新; 已丢弃的锁失败关闭 。 状态范围为当前启动. start 使用提供的运行时包版本,并记录准确的版本输入为 serveSimVersion, (中文(简体) ), agentDeviceVersion 财务报告和审定财务报表 argentVersion 在这个状态和要求。 消费者 在重新使用之前,将明确的软件包请求与这些版本进行比较。 标记、范围和未设置输入 不报告确切的版本。 构建工具也使用 serveSimVersion 为了温暖的收养和录音.

环境

  • EXPO_SIMULATOR_STARTUP=1 允许热身.
  • EXPO_SIMULATOR_PREINSTALL_EXPO_GO=0 关闭博览会 去预先安装.
  • EXPO_SIMULATOR_DEVICE 是一个逗号分隔的精确设备名称或UDID的列表。 条目是 进行修剪,必须确定一个可用的设备。 第一种是默认. 未设置保存 最短可用的 iPhone 名称, 空或空白值也是如此 。 空列表条目缺失, 模糊或重复的设备显然失效.
  • SERVE_SIM_VERSION, (中文(简体) ), AGENT_DEVICE_VERSION, (中文(简体) ), ARGENT_VERSION (单位:千美元)start编号 :warmup 只: 运行时间 包选择,每个默认为 latest发射机不另设 版本搜索 。 选择准确版本的呼叫者可以在状态和主张中识别出它们. prefetch 忽略这些设置, 并且从不将其记录在 prepared.json。 。 。 .
  • EXPO_GO_SDK_VERSION: 选择 SDK 用于 prefetch 财务报告和审定财务报表 start 带有 https iOS 模拟器存档 在博览会的API版本中。 取消设置 选择最近的 SDK 稳定; 针头必须是 x.y.z 选择 a β。 (中文(简体) ). start 当SDK/存档元数据与所供应的SDK匹配时,或当 没有提供 SDK 。 不匹配元数据, 启动使用此变量从 API 中选择 或最新稳定SDK。 忽略当 EXPO_SIMULATOR_PREINSTALL_EXPO_GO=0。 。 。 .
  • APPIUM_VERSION, (中文(简体) ), XCUITEST_VERSION (单位:千美元)prefetch 仅限:准确版本(x.y.z),两者或 也没有。 任何其他价值 prefetch 失败.
  • AGENT_DEVICE_STATE_DIR, (中文(简体) ), ARGENT_EVENT_LOG: 工具状态/输出位置.
  • 代理设备闲置计时器默认关闭 。 覆盖 AGENT_DEVICE_DAEMON_IDLE_TIMEOUT_MS 财务报告和审定财务报表 AGENT_DEVICE_IOS_RUNNER_IDLE_STOP_MS (毫秒数).

编写文件

prefetch 写入 expo-go/ 财务报告和审定财务报表 appium/ 下级 ~/Library/Caches/expo-simulator-startup/,以及 每个步骤跳过时都删除。 每个读者在使用之前检查文件 否则会运行正常的下载或安装。 重用已准备好的文件时保留这些目录 .

  • expo-go/<sha256 of the archive URL>.tar.gz数字 : start 在其 SDK 匹配时使用已记录的 URL 或当未提供 SDK 时。 它检查文件与 gzip -t 在此之前 提取。 从该 URL 再次下载了丢失或被损坏的归档 .
  • appium/: Appium家有被钉住的xcitest司机和WebDriverAgent跑车. 在记录前先检查跑者捆绑的元数据并可执行. 构建工具, 当文件匹配表和 Appium 匹配当前时重用它 解决明确版本的请求,包括范围和 latest。没有覆盖, 的版本必须满足默认的 Appium 3 范围。 构建工具不写入或 把这里搬走 这些检查不加载驱动程序或发射 WDA; 验证再使用 真实的 Appium 会话.

编制工具清单

prefetch 写入 ~/Library/Caches/expo-simulator-startup/prepared.json 在接到所有请求后 步骤和临时文件清理成功。 在刷新缓存之前, 它会删除以前的 显出. 跳过的工具没有出现在新清单中;失败的准备不会发布新的工具 .

JSON有一个 tools 地图 :

  • appium.version, (中文(简体) ), appium.xcuitest, (中文(简体) ), appium.home: 准备的Appium和XCUI Test版本 绝对的Appium家道。 本条目仅在WDA准备成功后才被写入.

当博览会启动时, expo-go.sdk 财务报告和审定财务报表 expo-go.url 内 tools 记录其选定的 SDK 并存档 URL. SDK识别出所选的"博览会"发行版本,而不是应用程序的二进制版本. 步入尽头 已禁用或未设置,列表为 {"tools":{}}。 。 。 .

start 只读可选的博览会 从此列表中选择。 缺少或无效的博览会 元数据,或不同提供的SDK的元数据,使用普通的SDK/存档选择. 遗产 service-sim,代理设备与Argent条目被忽略,包括错误的条目. 精确的 CLI 版本输入只记录在当前的启动状态和声明中.

共享构建工具 readPreparedSimulatorToolAsync(tool, schema) 阅读器从 tools 使用消费者的计谋。 每个消费者在重复使用前检查相容性. 失踪, 无效或更长的元数据是缓存错失,并使用正常的设置.

保存博览会的档案 和整个Appium的家, 不仅仅是名单。 亚平的家 必须在同一个用户的下方记录路径。 重运行 prefetch 以重生标本 当更改版本时。 元数据不能证明驱动程序加载或 WDA 启动; 验证 Appium再利用与真实会话.

边界

原生热能仍然运行服务-sim,代理-device和Argent. Bun 可能缓存他们的包作为侧面 效果;这些附带缓存被保留。 呼叫者提供请求的软件包选择 ,而Bun重复使用匹配文件或获取请求的版本。 原生建筑缓存 复用取决于所选的版本和设备.

  • 准备就绪意味着默认设备启动并服务-sim答案. Apsd步骤和博览会 在所有列出的设备上,在背景中运行。 索赔不等待他们;停止 加入他们. 第二个设备可能尚未启动 。 它的启动失败让默认值可用 . 索赔保留一个装置;它没有报告该装置准备就绪。 私人收养必须确认 相同的服务器 PID/ port, 选中的设备准备状态和工具设置前的本地视频/ 抓取 并应用动作。 工作时间版本和认证检查仍然具有权威性.
  • 代理设备仅在默认设备上启动 。 次要索赔准备在 收养和老人清理结束。 一个设备独立的Argent服务器被重新用于声称的设备. Appium等待未使用的工具停止后再开始自己的WDA.
  • Warmup 使用已准备好的 Expo Go 选择,或者在没有时使用独立的 SDK 选择,一次从 前置归档( 参见 编写文件)或通过下载,再用于第二个设备. 每个初始设备都得到一个预安装尝试;普通故障警告. B. 防止索赔的新情况 预安装. prepare-tools 等待仍在所主张设备上运行的安装 报告它的版本, 因为任务安装它的应用程序下一个 。 继续安装在其他设备上; 收养可能会关闭这样的设备,然后安装失败并发出警告。 终端站 排出它们和下载清理。 任务应用程序安装保留 权威。 替换不再预先安装. ffmpeg 必须在路径上可用.
  • 开始尝试一次,每个靴子接受一次索赔。 清理失败后, 绝不允许再有会话 . Stop的调用暂停不是全球清理的最后期限,也不是完成拆分的证明. 一个建材工具声称在确认终端清理后才会使用正常的启动.

索赔和工具JSON包括证书;将其捕获,而不是将其流到工作日志上.

版本与发布记录

@expo/simulator-launcher 共发布 14 个版本,首次发布于 2026/10/30;过去 12 个月发布了 14 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
27.10.0latest2026/11/14今天
27.9.02026/11/121 天前
27.8.02026/11/121 天前
27.7.22026/11/113 天前
27.7.12026/11/103 天前
27.7.02026/11/103 天前

关于 @expo/simulator-launcher 的常见问题

@expo/simulator-launcher 是什么?

关于EAS工人的模拟会议

如何安装 @expo/simulator-launcher?

在项目目录运行 npm install @expo/simulator-launcher,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 simulator-launcher,可以用 npx simulator-launcher 直接运行。

@expo/simulator-launcher 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/expo__simulator-launcher 是否存在。

@expo/simulator-launcher 可以商用吗?

@expo/simulator-launcher 使用 BUSL-1.1 许可。声明的许可为 BUSL-1.1,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@expo/simulator-launcher 的下载量有多少?

根据 npm 官方下载统计,@expo/simulator-launcher 在 2026/10/14 – 2026/11/12 这 30 天内被下载 2,598 次,日均约 87 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@expo/simulator-launcher 还在维护吗?

最新版本 27.10.0 发布于 2026/11/14(今天);至今共发布 14 个版本,其中过去 12 个月发布了 14 个;首次发布于 2026/10/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。