DeepSeek Harness 的插件化架构允许开发者通过工具链接管本地环境。对于 iOS/macOS 开发者,直接在智能体流程中执行 xcodebuild 往往不够直观,容易丢失上下文。dsh-xcodebuild 插件通过一组模型友好的工具,将 Xcode 的构建、测试、调试和日志流接入 DeepSeek Harness 的对话流中。
插件定位¶
这是一个运行在 macOS 系统上的 DeepSeek Harness 客户端插件,专注于 iOS 和 macOS 项目的构建与开发循环。它由 harde1 维护,基于 MIT 许可证。插件核心功能包括构建、测试、清理、归档、运行,以及实时的可过滤构建日志流。
核心功能¶
插件提供以下七项工具,供智能体调用:
- xcode_doctor:检查机器环境状态,列出缺失的工具并给出安装命令,同时显示当前使用的 Xcode 版本。在设备无法安装或启动时,应优先运行此工具。
- xcode_project:自动检测项目(
.xcworkspace、.xcodeproj、Package.swift),列出所有 schemes、配置和 targets。 - xcode_destinations:合并多种数据源(
-showdestinations、xcdevice、devicectl等),列出所有可用的设备目的地,包括模拟器、My Mac、硬件设备以及 USB 设备。每个条目包含可用的目标字符串和推荐设备。 - xcode_run:执行构建、测试、清理、归档和运行操作。它会将完整日志流传输到后台运行中,并收集编译错误。对于模拟器使用
simctl,对于 CoreDevice 知道的设备使用devicectl,对于 iOS 16 及更早版本使用ideviceinstaller+ios-deploy。 - xcode_log:查看运行日志。支持缓冲的
tail、按行号增量切片,或正则表达式过滤。该工具在构建过程中调用是安全的。 - xcode_lldb:调试应用。支持查看视图层级(生成
.lookin文件供 Lookin.app 打开)、运行原始 LLDB 命令(如po、bt),以及管理 LLDB 会话(附加、中断、分离、状态)。对于 iOS 16 及更早版本,需要通过pymobiledevice3转发的 debugserver 端口进行连接。 - xcode_device_log:读取模拟器或物理硬件的日志。对于 iOS 16 及更早版本,可读取应用沙盒中崩溃日志目录下的日志文件。
典型用法¶
在智能体流程中,可以使用以下步骤完成一个标准的开发循环:
- 环境诊断:首先调用
xcode_doctor,确保机器已安装 Xcode 及相关依赖。 - 项目检测:调用
xcode_project获取当前工作目录下的项目结构、Schemes 和 Targets。 - 设备选择:调用
xcode_destinations列出可用设备,选择目标进行构建。 - 执行构建:调用
xcode_run执行构建、测试或运行。此操作会触发侧边栏面板的自动打开与日志流传输。 - 日志排查:调用
xcode_log实时查看构建输出,或调用xcode_device_log查看设备日志。 - 调试与修复:若遇到崩溃或特定问题,调用
xcode_lldb进行调试,或直接修改代码后重复步骤 3-5。
交互与面板¶
插件通过一个面板来展示构建状态和日志。默认情况下,面板会自动打开(通过 localStorage 中的 dsh-xcodebuild:autoOpen 键控制)。
- 侧边栏集成:如果安装了
dsh-better-sidebar,面板会作为标签页集成在右侧边栏;否则,它会作为 Shell 原生右侧边栏的标签页,或者在没有侧边栏时的悬浮窗口显示。 - AI 调用时自动打开:面板在构建、运行等操作时会自动聚焦。AI 调用(如查看日志、LLDB 操作)不会抢占屏幕,而是记录在面板的 AI 条带中。
注意事项¶
- 系统限制:插件仅支持 macOS 系统。
- 依赖项:若要使用
xcode_lldb调试 iOS 16+ 设备,需安装pymobiledevice3。 - 许可证:插件代码基于 MIT 许可证开源,使用前请检查源码以确保符合项目需求。
总结¶
dsh-xcodebuild 为 DeepSeek Harness 提供了完整的 Xcode 开发闭环能力。通过将构建、测试、日志和调试工具标准化,开发者可以让智能体直接处理 iOS/macOS 的日常开发任务,减少手动操作。