前言¶
在 macOS 上做 iOS / macOS 开发时,常见做法是让编码智能体通过 xcodebuild 冷启动编译,或在对话里粘贴 Issue Navigator 的报错。自 Xcode 26.3 起,Apple 提供官方 Model Context Protocol 桥接(xcrun mcpbridge)以及可通过 xcrun agent skills export 导出的内置 Apple Skills。直接把原始 mcpbridge 挂进通用编码智能体,往往会遇到 structuredContent 与 JSON 文本不一致、Xcode 未开启外部智能体访问时进程退出、以及 RenderPreview 等大体积 base64 输出撑爆上下文等问题。下面介绍社区维护的 DSH 插件 @zseven-w/dsh-xcode(仓库 zseven-w/dsh-xcode),它把官方桥接封装为零依赖的 DeepSeek Harness 插件,并与同作者的 dsh-ios 做可选配对。
这是什么¶
DSH Xcode(npm 包名 @zseven-w/dsh-xcode,当前发布版本 0.1.0-rc.4)由维护者 ZSeven-W 发布,分类为 客户端 类 DSH 插件。插件在 DSH 对话中注册 8 个智能体工具,对接 xcrun mcpbridge 与 Apple 官方 SKILL.md,并提供右侧边栏 Xcode Workbench 面板。README 标明在 DSH 0.2.1-rc.5 上做过测试;许可证为 MIT。
核心能力¶
诊断、预览与构建测试¶
- 单文件诊断(< 1 s):
xcode_diagnostics在传入filePath时调用XcodeRefreshCodeIssuesInFile,依托 Xcode 活跃编译图做 Swift/ObjC 类型检查,无需每次冷启动xcodebuild。 - SwiftUI
#Preview快照:xcode_render_preview驱动 Xcode 的RenderPreview,支持.xcodeproj、.xcworkspace与 Swift Package;PNG 写入.dsh-xcode/previews/,多模态模型会话中可附带图片。 - 温构建与测试:
xcode_build_test复用 DerivedData 构建图,覆盖build、build_log、list_tests、run_all_tests、run_some_tests(XCTest 与 Swift Testing)。
文档、Skills 与桥接兼容层¶
- 本地 Apple 文档检索:
xcode_search_docs使用DocumentationSearch,可搜索内置 Apple Developer Documentation 与 WWDC 文稿;可选frameworks参数限定框架。 - 官方 Skills 同步:
xcode_sync_skills执行xcrun agent skills export,解析当前 Xcode 版本自带的SKILL.md,缓存于~/.cache/dsh-xcode/skills/,并注册到 DSH 会话的ctx.skills。 - Xcode 26 适配:自动从 JSON 文本补全缺失的
structuredContent、在多窗口间解析tabIdentifier,并在摘要中剥离过大的 base64 预览串。 - 逃生舱:
xcode_call_tool可list或call任意原始mcpbridge工具,便于跟进 Xcode 新版本工具而无需等待插件发版。
Workbench 与 dsh-ios 配对¶
右侧 Xcode Workbench 展示连接状态、工作区窗口、tabIdentifier、诊断列表、构建/测试摘要、预览图库,以及 dsh-ios 对等设备状态。与 @zseven-w/dsh-ios 通过 Symbol.for('zseven.dsh.apple.peer.v1') 做零安装耦合的发现:dsh-xcode 侧重 IDE 侧编译智能,dsh-ios 负责模拟器与 USB 真机的实时画面与交互。
八个工具一览¶
各工具在主机上默认注册;省略 tabIdentifier 时会从当前活跃工作区自动解析。非 macOS 或 Xcode 未运行时,会返回可操作的设置说明。
| 工具 | 作用概要 |
|---|---|
xcode_status |
检查 xcode-select、Xcode 版本、mcpbridge/agent 能力、运行中 Xcode PID、窗口与 Skills、dsh-ios 对端状态 |
xcode_open_project |
用 open -a Xcode 打开工程或 Package.swift,轮询直至 mcpbridge 连通并拿到 tabIdentifier |
xcode_diagnostics |
单文件或全工作区 Issue Navigator 诊断,支持 severity、pattern 过滤 |
xcode_build_test |
构建、日志、列出/运行测试 |
xcode_render_preview |
渲染文件中指定索引的 #Preview / PreviewProvider |
xcode_search_docs |
语义搜索 Apple 文档与 WWDC 内容 |
xcode_sync_skills |
导出并注册 Apple 官方 Skills |
xcode_call_tool |
列出或调用原始 MCP 工具 |
安装与启用¶
DSH 侧安装命令以仓库 INSTALL.md 为准:
dsh plugin add @zseven-w/dsh-xcode
若需要模拟器或真机画面与 UI 联动,可另行安装配对插件(可选):
dsh plugin add @zseven-w/dsh-ios
环境前提(来自官方安装文档与 package.json):
- macOS,Xcode 26.3+(需先打开工程,并在 Xcode → Settings → Intelligence → Model Context Protocol 中开启 Allow External Agents)。
- Node.js:
package.json要求>=24.11.0。
使用前请确认本机 DSH 版本接近 README 所述测试版本,并自行阅读仓库源码与 MIT 许可证;插件以当前 dsh 进程权限运行,安装前宜检查依赖与网络行为。
典型用法¶
下面步骤可在 DSH 对话中由智能体调用对应工具完成。
- 确认桥接状态:调用
xcode_status(默认connect: true),确认mcpbridge已连接、窗口tabIdentifier可用。 - 打开工程(若 Xcode 尚未打开目标):
xcode_open_project,可传projectPath,默认等待waitSeconds: 20。 - 改代码后快速验错:对刚编辑的文件调用
xcode_diagnostics,传入filePath做单文件诊断。 - 看 SwiftUI 预览:
xcode_render_preview,必填sourceFilePath,默认previewDefinitionIndexInFile: 0。 - 构建或跑测试:
xcode_build_test,action取build、run_all_tests等;部分测试用run_some_tests并传testsJSON 数组。 - 查 API:
xcode_search_docs,query必填,例如配合frameworks: "SwiftUI,Observation"。 - 同步 Apple Skills:在升级 Xcode 后执行
xcode_sync_skills,再让智能体使用新注册的 Skills。 - Workbench:在工具结果行使用 Open Workbench,或从右侧边栏
+启动 Xcode Workbench 查看诊断、构建摘要与预览图库。
适用场景与注意¶
适合:已在 macOS 使用 Xcode 26.3+ 的 Swift/SwiftUI 开发者,希望在 DeepSeek Harness 对话里直接读编译器状态、渲染 #Preview、在温构建图上跑测试,并可选地与 dsh-ios 衔接真机/模拟器操作。
注意:
- 插件依赖 Xcode 保持打开且已允许外部智能体;同时运行
Xcode.app与Xcode-beta.app时需注意 PID 与窗口路由。 - 社区目录 skillhub.cn 插件页 与 GitHub 仓库独立维护,与 DeepSeek / 幻方无官方从属关系;安装与授权决策应以你本地审查的源码为准。
- 当前 GitHub 星标为 0,属早期候选发布(
0.1.0-rc.4),升级 DSH 或 Xcode 后建议先跑xcode_status再投入日常流程。
结尾¶
经过上面的步骤,@zseven-w/dsh-xcode 把 Apple 官方 xcrun mcpbridge 与 Skills 收敛为 DSH 内可用的 8 个工具与 Workbench 面板,减少冷 xcodebuild 与上下文膨胀带来的摩擦。更多细节见 GitHub 仓库 与 SkillHub 目录页。