DSH 插件 · 社区项目

dsh-ios

把 iOS 模拟器或 USB 连接的 iPhone 显示在 DeepSeek Harness 会话侧栏中,提供设备控制、Xcode 构建、界面识别、日志与 SwiftUI 预览工具。

277 StarsMITTypeScript3 天前更新
01

项目介绍

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

dsh-ios 在 DSH 会话旁显示 USB iPhone 实时画面和 WebDriverAgent 工具结果
作者 README 中的真机演示截图,展示会话与设备侧栏;不代表本站实测。查看仓库原图
02

核心功能

01

实时画面与交互

持续侧栏显示设备画面,支持点击、拖动、旋转、截图和缩放;工具结果卡片可重新打开侧栏。

02

按界面身份操作

可访问性树与元素工具按标签、标识符定位;树信息不足时可用 Vision OCR 找文字,列表工具支持按行定位并验证计数变化。

03

构建与调试

支持 Xcode 项目或 Swift package 的构建、安装和启动,并读取统一日志、进程和应用信息;backtrace、leaks 仅适用于模拟器。

04

SwiftUI 预览

在包目录之外生成临时宿主应用,把预览构建成动态库并监听源码变化,以热替换方式更新模拟器预览。

03

安装与使用

先完成模拟器最小验证,再按需接入真机;npm 包会带入 serve-sim,但不会替你准备 Xcode 或 WebDriverAgent 签名。

AI AGENT INSTALL

让 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 源码和签名。涉及凭据、额外权限、下载工具、覆盖文件或操作真实账号时先确认。不要默认开启管理员权限,不要自动点赞、发送或购买。报告命令、改动和实际验证结果。
01开始前准备
  • macOS 与完整 Xcode,至少安装一个 iOS Simulator runtime
  • Node.js ≥24.11.0,可正常运行 DSH Web
  • README 基线为 DSH ≥0.1.0-rc.6,作者标注测试版本 0.1.1-rc.1
02复制安装命令或配置
dsh plugin --profile web add @zseven-w/dsh-ios@latest
dsh web
03按步骤完成安装
  1. 1
    检查运行条件

    在 Mac 上确认 Xcode 已安装模拟器 runtime,Node.js 达到 ≥24.11.0,现有 `dsh web` 可运行。仅 Command Line Tools 不够。

  2. 2
    安装并启动 Web

    执行以下仓库命令: ```sh dsh plugin --profile web add @zseven-w/dsh-ios@latest dsh web ``` 已有 Web 进程时,在适当时间重启它。

  3. 3
    启动已发现的模拟器

    向 Agent 发送“列出可用模拟器”,让其调用 ios_sim_devices。选择结果中的名称或 UDID,要求调用 ios_sim_boot,并确认侧栏实时画面出现。

  4. 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。
  • 不要为最小验证执行真实账号点赞、消息发送或支付。
04

使用场景

SCENARIO 01

检查自有 App 的交互

构建后在侧栏观察页面,并按元素身份检查按钮、列表和状态变化。

SCENARIO 02

迭代 SwiftUI 组件

对受支持的 Swift package 启动预览,修改源码后观察热替换结果。

05

使用评价

判断基于 README、package.json、许可证与提交记录。它把构建、观察、点击和日志放在同一会话中,适合已有 Xcode 环境的开发者。真机签名和工具链仍是实质门槛,不能把一条 npm 命令理解成即插即用的 iPhone 自动化。本站未执行安装和设备测试。

值得一试的地方

  • 实时画面与结构化工具同时提供反馈
  • 模拟器和 USB iPhone 使用相近操作接口

使用前要知道

  • 非 macOS 主机虽可注册工具,但无法执行 iOS 设备操作
  • 真机需要自行准备 WebDriverAgent 源码,插件不会自动克隆
  • 免费团队签名有 7 天有效期;真机不支持模拟器专属的 backtrace/leaks
06

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