前言¶
做 iOS 開發的讀者大概都熟悉這套流程:在 Xcode 裏編譯、切到 Simulator、手動點幾下界面,再把截圖或日誌貼回聊天窗口,讓 AI 幫忙分析。DeepSeek Harness(簡稱 DSH)把「模型、工具、界面」都做成可插拔架構,社區裏也出現了不少面向具體場景的插件。今天要介紹的是維護者 ZSeven-W 開源的 dsh-ios——它把 iOS 模擬器,以及通過 USB 連接的真機 iPhone,直接搬進 DSH 對話裏:Agent 可以啓動設備、編譯運行 Xcode 工程、按無障礙標識或 OCR 文本驅動界面,你還能在側邊欄的即時畫面上直接點按、拖拽。
該插件在 SkillHub 插件庫 歸類爲「客戶端」,GitHub 倉庫約 217 星、22 個 fork(數據來自 SkillHub 目錄同步)。需要說明的是,SkillHub 是社區維護的 DSH 插件目錄,與 DeepSeek / 幻方並無官方從屬關係;安裝前仍建議自行閱讀源碼與 MIT 許可證。
這是什麼¶
dsh-ios 是 DeepSeek Harness 的客戶端類插件,npm 包名爲 @zseven-w/dsh-ios。一句話概括:在 DSH 對話中提供可交互的 iOS 模擬器即時畫面,並支持通過 USB 控制真實 iPhone。
它解決的核心痛點是「移動端開發與 Agent 協作之間的斷層」。以往 Agent 只能根據你口述或粘貼的截圖猜測界面狀態;裝上 dsh-ios 後,設備畫面以 MJPEG 流形式出現在 DSH Web 側邊欄,22 個 Agent 工具覆蓋啓動模擬器、構建運行、語義化點擊、日誌讀取、進程與泄漏分析等完整鏈路,人機可以在同一塊「屏幕」上協同。
核心功能與亮點¶
即時模擬器與 USB 真機¶
插件通過 serve-sim 在本地啓動模擬器畫面流,經 DSH Web 服務端的簽名路由 /_dsh/dsh-ios/* 代理到側邊欄面板「iOS 模擬器」。瀏覽器不直接訪問 serve-sim 端口,視覺數據只通過帶 HMAC 簽名、10 分鐘內過期的 capability URL 傳輸。
同一套工具也適用於 USB 連接的真機:調用 ios_real_start_wda 會在手機上構建並啓動 WebDriverAgent,將控制端口與 MJPEG 畫面隧道到本機迴環地址,再流入同一個側邊欄面板。真機操作有額外安全門控——例如未識別控件前不會盲目點擊。
22 個 Agent 工具¶
README 將工具分爲以下幾類(均在 macOS + Xcode 環境下可用):
| 類別 | 代表工具 | 作用 |
|---|---|---|
| 核心模擬器 | ios_sim_devices、ios_sim_boot、ios_sim_shutdown |
列舉設備、啓動/關閉模擬器 |
| 畫面與交互 | ios_sim_screenshot、ios_sim_interact |
截圖、點擊、輸入、手勢、硬件鍵 |
| 構建運行 | ios_sim_build_run、ios_sim_launch_app |
編譯 .xcodeproj / .xcworkspace / Swift Package 並安裝啓動 |
| 真機 WDA | ios_real_start_wda |
在 USB iPhone 上啓動 WebDriverAgent |
| 無障礙樹 | ios_sim_ui_tree、ios_sim_tap_element |
基於 AXe(模擬器)或 WDA(真機)按標識/標籤點擊 |
| 列表/信息流 | ios_sim_ui_rows、ios_sim_tap_row |
解析列表行標籤與計數器,在行內相對座標點擊 |
| OCR | ios_sim_find_text、ios_sim_tap_text、ios_sim_wait_for |
Vision 框架識別中英文文本並點擊 |
| 日誌 | ios_sim_logs |
讀取模擬器統一日誌(快照或限時跟隨) |
| SwiftUI 預覽 | ios_sim_preview |
熱重載 SwiftUI Preview,編輯後約 2–5 秒刷新 |
| 調試 | ios_sim_processes、ios_sim_backtrace、ios_sim_leaks、ios_sim_app_info |
進程列表、回溯、泄漏分析、應用信息 |
非 macOS 主機上插件仍會加載並註冊全部工具,但調用會返回說明性錯誤;無 Web 界面的 headless profile 下工具照常工作,只是沒有即時畫面面板。
可交互側邊欄面板¶
面板固定在對話右側(窄屏下可居中浮層),支持:
- 在即時視頻上直接點擊、拖拽手勢;
- Home、截圖、旋轉、刷新等工具欄按鈕;
- 適應 / 50%–125% / S·M·L 尺寸與無框、邊框、真機框樣式;
- 拖拽調整寬度(最大 960 px,雙擊復位);
- 橫屏時自動加寬。
工具結果在對話中以緊湊卡片呈現,點擊可打開側邊欄;流在線時輸入框上方還會出現綠色狀態膠囊「· 即時」。
安裝與啓用¶
當前插件版本爲 0.1.0-rc.3,README 註明已在 DSH ≥ 0.1.1-rc.1(Web bundle)上測試。官方安裝命令如下:
dsh plugin --profile web add @zseven-w/dsh-ios@latest
dsh web
若需固定版本,可將 @latest 換成具體 tag,例如 @zseven-w/dsh-ios@0.1.0-rc.3。
也可在 SkillHub 目錄頁 查看該插件條目;社區目錄與 GitHub 倉庫的安裝說明應保持一致,以 README 原文爲準。
典型用法示例¶
官方 Quick Start 描述了一條常見對話路徑,可直接交給 Agent 執行:
- 發現設備 — 「列出可用的模擬器。」→ 調用
ios_sim_devices。 - 啓動模擬器 — 「啓動 iPhone 17 Pro。」→
ios_sim_boot,側邊欄自動打開即時畫面。 - 驅動界面 — 你可在面板上手動點按,或讓 Agent 使用
ios_sim_interact;需要語義化操作時,可組合ios_sim_ui_tree+ios_sim_tap_element,或ios_sim_find_text+ios_sim_tap_text;信息流類 App 可用ios_sim_ui_rows+ios_sim_tap_row。 - 編譯運行 — 「構建並運行 /path/to/MyApp.xcodeproj。」→
ios_sim_build_run(完整構建通常需要數分鐘)。 - SwiftUI 預覽熱重載 — 「展示 /path/to/MyPackage 的 SwiftUI 預覽。」→
ios_sim_preview的start動作。 - 真機調試 — USB 連接 iPhone 並解鎖後,「在手機上啓動 WebDriverAgent。」→
ios_real_start_wda;之後各工具傳入realDevices中的 udid 即可操作真機。
示例:列出設備並啓動模擬器後,Agent 可能依次調用 ios_sim_devices、ios_sim_boot,你在側邊欄即可看到啓動過程,無需再手動切換 Xcode 窗口。
環境要求與注意事項¶
硬性環境¶
- macOS + 完整 Xcode(不能只有 Command Line Tools),需安裝至少一個 iOS Simulator Runtime。
- DSH Web 端 用於側邊欄即時畫面;headless 模式僅有工具能力。
- 可選依賴:
- AXe(
brew install cameroncooke/axe/axe):無障礙樹相關工具;也可由插件自動下載校驗後的二進制。 - Vision OCR:首次使用
ios_sim_find_text等工具時,插件會用swiftc編譯內置ocr.swift到~/Library/Caches/dsh-ios/bin/ocr。 - 真機額外要求:USB 數據線、設備已解鎖、開啓 Developer Mode、在
~/Library/Caches/dsh-ios/wda/src放置 WebDriverAgent 源碼(插件不會自動克隆),首次構建需在手機上信任簽名證書;免費開發者賬號簽名約 7 天有效,過期後需重新執行ios_real_start_wda。
安全與權限¶
DSH 插件以當前 dsh 進程的權限運行。dsh-ios 會調用 xcodebuild、simctl、LLDB、leaks 等系統工具,真機場景還能執行真實點擊與安裝操作——安裝前請閱讀源碼,確認你信任維護者與許可證條款。
網絡傳輸方面,插件將 serve-sim 與 WDA 端口限制在迴環地址,瀏覽器只與 DSH Web 源通信;截圖路由僅服務插件緩存目錄內的文件。即便如此,也不應把該插件等同於「官方安全背書」。
適用人羣¶
- 在 DSH 中用 Agent 輔助 iOS / SwiftUI 開發的 macOS 用戶;
- 需要讓 AI「看見並操作」模擬器或測試機界面的團隊;
- 希望把構建、UI 自動化、日誌與調試串進同一條對話鏈路的 Harness 用戶。
不適合:純 Linux/Windows 環境、未安裝 Xcode 的機器,或不願讓 Agent 接觸真機生產賬號的場景。
當前版本仍爲預發佈(0.1.0-rc.x),README 也列出了 iOS 26.2 模擬器上 leaks 工具可能降級等已知限制,生產環境使用前建議先在測試設備上驗證。
結尾¶
如果你已經在用 DeepSeek Harness 做 iOS 相關開發,dsh-ios 把「看屏幕、點界面、編工程、讀日誌」收斂進對話與側邊欄,能明顯減少在 Xcode、終端和聊天窗口之間來回切換的成本。維護者 ZSeven-W 同期還有 dsh-android 等配套插件,跨端 Agent 工作流可以一併關注。
- SkillHub 目錄頁:https://www.skillhub.cn/plugins/ZSeven-W/dsh-ios
- GitHub 倉庫:https://github.com/ZSeven-W/dsh-ios
- 安裝命令:
dsh plugin --profile web add @zseven-w/dsh-ios@latest