@ 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包括证书;将其捕获,而不是将其流到工作日志上.