iOS Simulator Skill

📱 iOS 模拟器自动化与 UI 探针

基于 simctl 与 idb 的 Node.js CLI 封装,支持 iOS 模拟器生命周期管理、应用安装启动、UI 无障碍自动化及截图录屏。专为 AI 代理设计,输出结构化 JSON,需 macOS + Xcode 环境。

收藏
11.5k
安装
3.8k
版本
0.1.2
CLS 安全性认证2026-05-12
点击查看完整报告 >

使用说明

核心用法

iOS Simulator Automation 是面向 AI 代理的 Node.js CLI 工具,封装 Apple 原生 simctl 与 Facebook 开源 idb,提供完整的 iOS 模拟器自动化能力。

基础流程health 环境检测 → list/select 设备管理 → app install/launch 应用部署 → ui * 无障碍交互 → screenshot 取证归档。支持通过 .ios-sim-state.json 维持会话状态,避免重复指定 UDID。

UI 自动化(需 idb):基于 Accessibility Tree 实现语义化操作,支持 ui tap --query "Login"ui type --text "input"ui button HOME 等指令,相比坐标点击更具鲁棒性。ui tree 输出完整可访问性树,但默认限流以控制 token 消耗。

关键特性

  • 三级安全分层:SAFE(查询/截图)、CAUTION(隐私/推送)、DANGEROUS(抹除/删除需 --yes
  • Token 优化设计:默认单行 JSON, --pretty/--text 按需展开,大输出命令显式 opt-in
  • 远程 macOS 节点支持:非 Darwin 网关可通过 ClawdBot 节点执行透传

显著优点

1. AI 原生设计:结构化输出、状态持久化、错误归一化,降低 LLM 解析成本
2. 语义化 UI 自动化:idb 驱动的无障碍树操作,比传统坐标点击更适配动态布局

3. 完整生命周期覆盖:从设备创建、系统镜像管理到应用调试、隐私授权、推送模拟一站式解决

4. 安全可控:命令分级 + 强制确认机制,降低误操作风险

潜在局限

  • 平台锁定:必须 macOS + Xcode,Windows/Linux 仅能通过远程节点间接使用
  • idb 依赖较重:Python/pip 安装链,版本兼容性偶发问题;无 idb 时 UI 自动化完全不可用
  • 企业级功能缺失:无性能压测(如 FPS/CPU 细粒度监控)、无多设备并行编排、无 CI 原生报告格式
  • 状态文件局限.ios-sim-state.json 按工作目录隔离,跨目录会话不共享

适合人群

  • iOS 开发/测试工程师构建自动化验收流程
  • QA 团队快速复现用户上报的特定系统版本问题
  • AI Agent 开发者需程序化操控 iOS 模拟器进行应用探针或数据采集

常规风险

| 风险点 | 说明 |
|--------|------|
| 数据丢失 | `erase`/`delete` 不可逆,虽有 `--yes` 强制确认,但脚本逻辑错误仍可能导致误删 |
| 隐私泄露 | `clipboard get` 可读取模拟器剪贴板,含敏感信息时输出日志可能外泄 |
| 环境漂移 | Xcode 版本升级后 simctl 行为变化,idb 与 iOS 版本不匹配导致 UI 树解析失败 |
| 远程执行 | 跨节点调用时路径映射、文件同步易出错,大体积 .app 传输带宽敏感 |

安全解读

核心用法

ios-simulator是一款专为AI Agent设计的Node.js CLI工具,封装macOS原生xcrun simctl和Facebook的idb工具,实现iOS模拟器的全生命周期自动化管理。

基础操作流

  • healthlistselect --name "iPhone" --bootapp install/launchui summary/tap/type
  • 状态持久化:通过.ios-sim-state.json保存默认UDID,支持环境变量覆盖
  • 远程执行:非macOS网关可通过ClawdBot节点代理执行

关键功能矩阵

| 类别 | 能力 |
|------|------|
| 设备生命周期 | create/boot/shutdown/erase/delete/list |
| 应用管理 | install/launch/terminate/uninstall/container |
| UI自动化 | 基于accessibility tree的查找、点击、输入(idb驱动) |
| 测试辅助 | 截图、录屏、推送通知模拟、隐私权限授予/撤销 |
| 诊断 | 日志过滤、剪贴板操作、URL scheme测试 |

显著优点

1. 零依赖安全架构:仅使用Node.js内置模块,供应链攻击面为零,静态评分92/动态95
2. AI原生设计:默认输出单行JSON,支持--pretty/--text多格式,token高效

3. 参数严格校验:UUID格式、Bundle ID格式、路径存在性三重验证,无命令注入风险

4. 分层安全模型:SAFE/CAUTION/DANGEROUS三级命令分类,erase/delete强制--yes确认

局限性与约束

  • 平台锁死:必须macOS + Xcode CLI Tools,非Darwin平台直接拒绝执行
  • idb可选但关键:无idb时UI自动化、语义点击不可用,仅能执行基础simctl操作
  • 临时文件残留:推送通知测试生成的/tmp/临时JSON未自动清理(低风险)
  • 无并发控制:多进程同时操作同一模拟器UDID可能产生竞态

适合人群

  • iOS开发团队CI/CD流水线构建者
  • 需要批量管理模拟器设备的自动化测试工程师
  • 基于LLM的iOS应用交互测试场景(借助ui tree/find/tap语义化能力)

常规风险

| 风险项 | 等级 | 说明 |
|--------|------|------|
| `erase`/`delete`数据丢失 | 高 | 需`--yes`确认,但执行后不可恢复 |
| `privacy grant`过度授权 | 中 | 可能为测试应用授予超出需求的系统权限 |
| 剪贴板/`openurl`状态污染 | 低 | 影响模拟器内应用状态,不影响宿主机 |
| 录屏文件存储 | 低 | 需手动终止(Ctrl+C),注意磁盘空间 |

iOS Simulator Skill 内容

references文件夹
scripts文件夹
手动下载zip · 13.9 kB
TROUBLESHOOTING.mdtext/markdown
请选择文件