iOS 模拟器技能包
为 Claude Code 提供构建、测试和自动化 iOS 应用的 27 个脚本,通过渐进式披露和可访问性优先导航节省 token。
证据显示:脚本通过环境变量配置,默认限制输出,删除模拟器需确认,缓存路径明确,依赖为常见工具。扣分:依赖安全性仅声明版本,未提供锁文件或漏洞扫描;回滚仅依赖模拟器删除/擦除,无专门回滚机制。
证据显示:脚本提供--help和--json,错误处理有文档,环境变量解析失败有警告。扣分:未提供测试结果,依赖可用性未验证。
证据显示:面向开发者和AI代理,场景覆盖构建、测试、导航等,触发通过命令行参数精确控制,环境要求明确。扣分:未提供不同环境的详细适配说明。
证据显示:README结构清晰,安装说明详细,命名一致,示例丰富,已知限制有提及,MIT许可证明确。扣分:无CHANGELOG,版本号仅在pyproject中。
证据显示:输出优化,节省token,提供对比数据。扣分:成本效益数据未独立验证。
证据显示:README中的声明与代码结构一致,评估数据有提供。扣分:评估数据未提供原始日志,无法独立验证。
- 依赖安全性未充分验证,建议检查依赖版本和漏洞。
- 回滚机制有限,删除模拟器操作需谨慎。
- 评估数据未提供原始日志,需谨慎对待通过率声明。
这个 Agent 能做什么,适合哪些场景?
该仓库是 Claude Code 的官方技能包,包含 27 个 Python/shell 脚本,覆盖 Xcode 构建(通过 xcodebuild)和模拟器交互(通过 xcrun simctl 和 idb)。它针对 AI 代理进行优化,默认输出仅 3-5 行,比原始工具输出减少 96% 的 token。核心创新是渐进式披露:构建和测试结果仅返回摘要行和 xcresult ID,可按需提取错误、警告和日志。导航基于 iOS 可访问性 API 而非像素坐标,使 UI 交互在 UI 变化时更稳健。所有脚本支持 --help 和 --json,可通过 ~/.claude/skills/ 安装,由 Claude Code 自动加载。
该技能提供 27 个脚本,每个脚本封装一个 iOS 开发任务。build_and_test.py 运行 xcodebuild 编译测试,并返回摘要(如 'Build: SUCCESS (0 errors, 3 warnings) [xcresult-20251018-143052]'),随后可通过 --get-errors、--get-warnings、--get-log 按需提取详情。模拟器交互脚本使用可访问性树:navigator.py 通过 --find-text 和 --tap 语义查找并点击元素,screen_mapper.py 分析当前屏幕并列出可交互元素。其他脚本处理设备状态(appearance.py 切换深色模式/语言、location.py 模拟 GPS)、生命周期(simctl_boot.py、simctl_shutdown.py 等)、权限(privacy_manager.py 支持 13 项服务)、推送通知(push_notification.py)和测试(accessibility_audit.py 检查 WCAG、visual_diff.py 比较截图)。脚本通过 xcrun simctl 和 idb 与模拟器交互,输出优化为简洁摘要,大型输出通过 ProgressiveCache 存储并由短 ID 引用。环境变量(IOS_SIM_*)允许调整超时、输出上限和 token 预算。
- iOS 开发者希望让 Claude Code 自动构建和测试 Xcode 项目,而不让 AI 消耗大量构建日志 token。
- QA 工程师需要稳健的 UI 自动化,通过可访问性标签而非固定坐标点击按钮,例如 --find-text 'Login' --tap。
- 利用 hang_watcher.py 和 log_monitor.py 调查崩溃和挂起,其 os_log 输出逐步过滤。
- 需要自动执行可访问性审计(WCAG)和应用沙盒检查的团队,以生成部署前报告。
- 希望模拟 GPS、推送通知和权限状态以进行全面测试的 CI 管道。
这个 Agent 有哪些优点和局限?
- 渐进式披露将 token 消耗减少高达 99%(例如登录流程从 400+ 行输出降至 15 行)。
- 基于可访问性的导航比坐标点击更稳健,可适应 UI 变化。
- 27 个脚本覆盖全面:构建、测试、设备状态、导航、权限、推送、日志。
- 所有脚本支持 --json 和 --help,便于 CI 集成。
- 可高度配置:IO_SIM_* 环境变量调整超时、输出上限和 token 预算。
- 平台特定:仅适用于 macOS 12+,需要 Xcode 和 iOS 模拟器;不适用于 Android 或 Web。
- 与 Claude Code 深度集成(作为 Claude Skill 安装);非 SDK 或独立工具。
- 可选功能(IDB、Pillow)需要额外安装。
- 针对本地 Apple Silicon 开发调优;在较慢的 CI 运行器上可能需要提升超时和上限。
- 文档假定用户熟悉 Xcode 项目和模拟器概念。
如何安装或部署这个 Agent?
在 Claude Code 中运行:
/plugin marketplace add conorluddy/ios-simulator-skill
/plugin install ios-simulator-skill@conorluddy或通过 git clone 安装:
git clone https://github.com/conorluddy/ios-simulator-skill.git ~/.claude/skills/ios-simulator-skill然后重启 Claude Code。需要 macOS 12+、Xcode 命令行工具(xcode-select --install)、Python 3。可选:IDB(brew install idb-companion)用于交互功能,Pillow(pip3 install pillow)用于视觉差异。
如何使用这个 Agent?
安装后,技能自动加载。使用其脚本,例如:
构建项目:
python scripts/build_and_test.py --project MyApp.xcodeproj --scheme MyApp获取错误:
python scripts/build_and_test.py --get-errors xcresult-20251018-143052点击按钮:
python scripts/navigator.py --find-text 'Login' --tap列出可点击元素:
python scripts/navigator.py --list-tappable所有脚本支持 --help。环境变量可调整行为,例如:
export IOS_SIM_BOOT_TIMEOUT=600 # 延长启动超时
典型用法示例:
python scripts/simctl_boot.py --wait-ready
python scripts/simctl_create.py --device 'iPhone 15' --runtime '17.0'