关于 xc-dev
xc-dev 是面向 Xcode 项目的 Rust 任务运行器,通过 TOML 配置定义命名任务和项目变量。此技能指导 Agent 在 iOS 开发中发现、检查并运行这些任务。
主要功能
- 01通过 TOML 定义项目任务
- 02命令中的变量替换
- 03发现任务和变量
- 04配置有效性检查
- 05内置项目与模拟器工具
适用场景
- 01构建或测试 Xcode 项目
- 02运行已配置的项目任务
- 03检查任务配置和变量
- 04清理项目 DerivedData
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ yjmeqt/ xc-dev --skill xc-dev安装后在 Claude Code 中输入/xc-dev确认已加载。
详细介绍
xc-dev
xc-dev 是一个用于 Xcode 项目的 Rust 任务运行器。它会读取 .xc-dev/project.toml、
.xc-dev/simulator.toml 和 .xc-dev/tasks.toml,并运行命名任务(build、run、
test、test-package 等),同时替换 {{scheme}} / {{bundle_id}} / {{sim_id}} /
{{derived_data}} / {{git_branch}}。
何时使用此技能
满足以下所有条件时启用:
- 用户正在进行 iOS / Xcode 工作(构建、运行、测试、安装、启动、归档、日志流、 清理 DerivedData 等)。
- 从 cwd 向上任意位置的项目目录中都存在
.xc-dev/目录(运行ls -d .xc-dev 2>/dev/null或逐级向上查找;如果存在tasks.toml,则可确定应使用此技能)。
以下情况不要使用此技能,而应改用通用 Xcode 工具:
- 项目没有
.xc-dev/,且用户没有要求进行配置。
先发现任务
在假定任务名称之前,先列出任务:
xc-dev # bare form is shorthand for `xc-dev :list`
xc-dev :list
对于变量(scheme、bundle id、sim id、derived data 路径、git 分支等):
xc-dev :get scheme
xc-dev :get bundle_id
xc-dev :get sim_id
xc-dev :get derived_data
xc-dev :get sim.ipad.id # qualified, non-default sim
xc-dev :get git_branch
检查配置以及每个任务的变量引用是否正确:
xc-dev :doctor
运行任务
xc-dev build
xc-dev build Release # positional override of `args = ["config=Debug"]`
xc-dev test-package Networking
xc-dev -v build # echo expanded command to stderr (handy for debugging)
退出代码:
0— 成功1— 任务错误(配置无效、命令失败、变量未解析等)2— CLI 解析错误(未知内置命令、缺少标志值等)
所需任务不存在时
优先向 .xc-dev/tasks.toml 添加任务,而不是自行构造 xcodebuild
调用。原因有二:
- 后续进行相同操作的人也能从中受益。
- 变量已经完成配置 —
{{scheme}}、{{derived_data}}等都能正确解析,无需重新推导。
向用户展示拟添加的任务,并在编辑前征求同意。
内置动词(速查表)
| 动词 | 说明 |
|---|---|
xc-dev :proj init | 创建 .xc-dev/(通过 xcodebuild 自动检测 scheme / bundle_id) |
xc-dev :list | 列出所有任务及其 desc |
xc-dev :get <key> | 输出一个变量 |
xc-dev :doctor | 检查配置、每个任务的变量和依赖项 |
xc-dev :clean | 试运行:列出此项目的本地和系统 DerivedData |
xc-dev :clean --yes | 删除它们(包括根目录下的 Packages;跳过 *.noindex) |
xc-dev :sim bake | 将模拟器 UDID 解析到 simulator.toml 中 |
常见模式
启动并运行默认模拟器:
xc-dev run # if the user has set up the example `run` task
# else manually:
xcrun simctl boot $(xc-dev :get sim_id) 2>/dev/null || true
xcrun simctl install $(xc-dev :get sim_id) $(xc-dev :get app_path)
xcrun simctl launch $(xc-dev :get sim_id) $(xc-dev :get bundle_id)
检查构建生成的应用程序包:
ls "$(xc-dev :get app_path)"
每个工作树使用独立的 DerivedData:
{{derived_data}} 默认为 {{xc_dev_dir}}/DerivedData,因此每个 git 工作树都有自己的构建缓存,互不干扰。
清理 DerivedData(本地和系统):
优先使用内置命令 — 不要只对本地 DerivedData 执行 rm -rf,也不要按文件夹名称手动扫描
~/Library/Developer/Xcode/DerivedData:
xc-dev :clean # dry-run
xc-dev :clean --yes # delete local {{derived_data}} + system entries whose
# info.plist WorkspacePath is under this project root
# (main .xcodeproj and Packages/*)
如果项目有 clean 任务,且该任务封装了 :clean(并可选地封装 sim-delete),则优先使用 xc-dev clean。模拟器删除不属于 :clean 的内容。
参考文档
如果需要此技能未提供的更多细节,请向用户提供以下文档:
crates/xc-dev/docs/tasks.md— 完整的 Task DSL 参考crates/xc-dev/docs/variables.md— 所有内置变量及其解析顺序crates/xc-dev/docs/config.md— TOML 架构crates/xc-dev/docs/examples.md— 任务配方示例
与其他技能的关系
xcodebuildmcp-cli— 专用于 UI 自动化、日志流和交互式调试,这些功能不在 xc-dev 的覆盖范围内。