用途:在 iOS 模拟器上对 App 做端到端测试,把构建启动与 UI 交互分开交给两个 MCP 服务。XcodeBuildMCP 负责构建、启动、安装等前置工作,涉及 session_show_defaults、build_run_sim、build_sim、list_sims、list_schemes、boot_sim、install_app_sim、start_sim_log_cap / stop_sim_log_cap、test_sim;blitz-iphone 负责 App 运行后的交互,涉及 get_screenshot、describe_screen、scan_ui、device_action、launch_app、list_apps、list_devices。两者分工不可混用,也不要在 XcodeBuildMCP 中用 UI 自动化工具并行操作,会冲突。
使用方式:每次会话首次构建前先调用 session_show_defaults 确认项目、scheme、模拟器配置,不要假设默认值已设置。标准流程为 session_show_defaults、build_run_sim、get_screenshot、处理首次启动弹窗、再次截图确认主界面,然后进入 describe_screen 与 device_action 加截图的循环。核心规则是每执行一个动作后都要截图验证,不要连续批量执行多个动作,否则出错时无法定位。
手势与限制:手势类 UI 建议滑动 250pt 以上,短滑动(约 100pt)常静默失效。点击图片通常会打开全屏查看器,可用向下滑动关闭,或用 describe_screen 找到关闭按钮。点击未命中时应依据无障碍树的 AXFrame 计算中心坐标,而非凭截图猜测。不要用 macOS 快捷键(如 Cmd+A、Esc),在 iOS 模拟器 UI 层无效。回到主屏可用 button 动作传 HOME;打开其他 App 可按 HOME 后用 Spotlight 搜索,或用 launch_app 配合 bundle ID。
适用场景与取舍:XCUITest(test_sim)适合定义明确、可重复、需要 CI 回归覆盖的流程,速度约为代理驱动交互的 5-10 倍;blitz-iphone 代理驱动适合探索性测试、需要视觉判断或涉及系统级交互(如照片 App、权限弹窗)的流程。理想做法是对关键路径编写 XCUITest,新功能或探索性验证用代理驱动,验证后再沉淀为 XCUITest。首次启动或重置的模拟器会出现通知、相册权限弹窗与引导页,需在会话开始时检查并处理。资料未提供具体收费、平台或效果数据。