项目介绍
dsh-ios 将手机画面和开发工具放到同一段 DeepSeek Harness 会话里。Agent 可以发现设备、构建 Xcode 工程、读取界面元素并执行点击,用户则在右侧实时画面中观察结果,也能手动拖动或按 Home。模拟器由 simctl 与 serve-sim 驱动,USB iPhone 由 WebDriverAgent 控制。这不是 Windows 上的 iOS 模拟器,也不是独立手机远控服务,实际工作依赖 Mac 上的 Xcode 工具链。

核心功能
实时画面与交互
持续侧栏显示设备画面,支持点击、拖动、旋转、截图和缩放;工具结果卡片可重新打开侧栏。
按界面身份操作
可访问性树与元素工具按标签、标识符定位;树信息不足时可用 Vision OCR 找文字,列表工具支持按行定位并验证计数变化。
构建与调试
支持 Xcode 项目或 Swift package 的构建、安装和启动,并读取统一日志、进程和应用信息;backtrace、leaks 仅适用于模拟器。
SwiftUI 预览
在包目录之外生成临时宿主应用,把预览构建成动态库并监听源码变化,以热替换方式更新模拟器预览。
安装与使用
先完成模拟器最小验证,再按需接入真机;npm 包会带入 serve-sim,但不会替你准备 Xcode 或 WebDriverAgent 签名。
让 AI Agent 帮你安装
把这段话发送给 Codex、Claude Code 或其他可以操作本地环境的 AI Agent。
请安装 dsh-ios,项目 https://github.com/ZSeven-W/dsh-ios 。先阅读 README、package.json 和 LICENSE,检查 macOS、完整 Xcode、模拟器 runtime、Node.js ≥24.11.0 和 DSH Web。执行 `dsh plugin --profile web add @zseven-w/dsh-ios@latest` 并运行或重启 `dsh web`。先用 ios_sim_devices 返回的真实设备标识启动模拟器,用实时画面和 UI 树验证;不要猜设备名。若我明确需要真机,再检查 USB、开发者模式、WDA 源码和签名。涉及凭据、额外权限、下载工具、覆盖文件或操作真实账号时先确认。不要默认开启管理员权限,不要自动点赞、发送或购买。报告命令、改动和实际验证结果。- macOS 与完整 Xcode,至少安装一个 iOS Simulator runtime
- Node.js ≥24.11.0,可正常运行 DSH Web
- README 基线为 DSH ≥0.1.0-rc.6,作者标注测试版本 0.1.1-rc.1
dsh plugin --profile web add @zseven-w/dsh-ios@latest
dsh web- 1检查运行条件
在 Mac 上确认 Xcode 已安装模拟器 runtime,Node.js 达到 ≥24.11.0,现有 `dsh web` 可运行。仅 Command Line Tools 不够。
- 2安装并启动 Web
执行以下仓库命令: ```sh dsh plugin --profile web add @zseven-w/dsh-ios@latest dsh web ``` 已有 Web 进程时,在适当时间重启它。
- 3启动已发现的模拟器
向 Agent 发送“列出可用模拟器”,让其调用 ios_sim_devices。选择结果中的名称或 UDID,要求调用 ios_sim_boot,并确认侧栏实时画面出现。
- 4验证界面读取,再接真机
先打开模拟器设置,读取 ios_sim_ui_tree;缺少 AXe 时按安装提示补齐。真机是可选流程:准备 WDA checkout、签名与开发者模式,解锁 USB iPhone 后,用 realDevices 返回的 UDID 调用 ios_real_start_wda。
让 Agent 调用 ios_sim_devices,选择返回的模拟器名称或 UDID 交给 ios_sim_boot。右侧出现持续更新的设备画面后,打开模拟器内的设置并读取 ios_sim_ui_tree;能返回实际界面元素才说明对应链路可用。
- UI 树依赖 AXe,可按需执行 `brew install cameroncooke/axe/axe`;也支持首次使用下载固定版本。
- 真机需在 `~/Library/Caches/dsh-ios/wda/src` 准备 WebDriverAgent checkout,再调用 ios_real_start_wda。
- 不要为最小验证执行真实账号点赞、消息发送或支付。
使用场景
检查自有 App 的交互
构建后在侧栏观察页面,并按元素身份检查按钮、列表和状态变化。
迭代 SwiftUI 组件
对受支持的 Swift package 启动预览,修改源码后观察热替换结果。
使用评价
判断基于 README、package.json、许可证与提交记录。它把构建、观察、点击和日志放在同一会话中,适合已有 Xcode 环境的开发者。真机签名和工具链仍是实质门槛,不能把一条 npm 命令理解成即插即用的 iPhone 自动化。本站未执行安装和设备测试。
值得一试的地方
- 实时画面与结构化工具同时提供反馈
- 模拟器和 USB iPhone 使用相近操作接口
使用前要知道
- 非 macOS 主机虽可注册工具,但无法执行 iOS 设备操作
- 真机需要自行准备 WebDriverAgent 源码,插件不会自动克隆
- 免费团队签名有 7 天有效期;真机不支持模拟器专属的 backtrace/leaks
README
dsh-ios
Overview
把 iOS 模拟器或 USB 连接的 iPhone 显示在 DeepSeek Harness 会话侧栏中,提供设备控制、Xcode 构建、界面识别、日志与 SwiftUI 预览工具。 把 iOS 模拟器或 USB 连接的 iPhone 显示在 DeepSeek Harness 会话侧栏中,提供设备控制、Xcode 构建、界面识别、日志与 SwiftUI 预览工具。
Getting started
- 先完成模拟器最小验证,再按需接入真机;npm 包会带入 serve-sim,但不会替你准备 Xcode 或 WebDriverAgent 签名。
- 设备画面经 DSH 同源签名路由传递,浏览器不直接连接 serve-sim 或 WDA 的内部端口。
- 22 项工具覆盖设备、构建、UI 树、OCR、日志、预览与调试;模拟器和真机并非每项能力都相同。
- 让 Agent 调用 ios_sim_devices,选择返回的模拟器名称或 UDID 交给 ios_sim_boot。右侧出现持续更新的设备画面后,打开模拟器内的设置并读取 ios_sim_ui_tree;能返回实际界面元素才说明对应链路可用。
Configuration
dsh plugin --profile web add @zseven-w/dsh-ios@latest
dsh web在 GitHub 阅读完整 README →