用途
xcode-run-device 用于在已连接的 iOS 真机上构建并运行当前 Xcode 工程。它会构建当前工作目录下的 Xcode workspace 或 project,并通过 Xcode 15+ 的 devicectl 在有线连接的 iOS 设备上启动应用。
主要能力
该技能对应的函数会执行以下操作:
- 定位 workspace/project 并选择一个 scheme。
- 通过
xcrun devicectl list devices -j定位第一台已连接的设备。 - 针对该设备的特定 UDID 运行
xcodebuild build。 - 从
-showBuildSettings -json读取 BUILT_PRODUCTS_DIR、WRAPPER_NAME、PRODUCT_BUNDLE_IDENTIFIER。 - 安装(
xcrun devicectl device install app)并启动(xcrun devicectl device process launch)。 - 返回多行状态字符串。构建失败时,返回与 /xcode-build-device 相同的错误格式。
使用方式
共享的 agent-skill-xcode.el 位于 emacs-skills 插件中的同级 xcode-shared 目录,路径为 skills/xcode-shared/agent-skill-xcode.el。四个 /xcode-* 技能都从该处加载它。
运行命令:
emacsclient --eval "(progn (load \"/path/to/skills/xcode-shared/agent-skill-xcode.el\" nil t) (agent-skill-xcode-run-device :project-dir \"$(pwd)\"))"
规则:
- 通过
$(pwd)将 agent 的当前工作目录作为 :project-dir 传入。 - 共享 elisp 位于 xcode-shared/agent-skill-xcode.el,从该处加载。
- 通过 Bash 工具以单次 emacsclient --eval 调用运行。构建可能耗时数分钟;如果已知较慢,可考虑延长 Bash 超时。
- 原样报告返回的状态字符串。
- 如果函数提示 "No connected iOS device found",告知用户插入设备并在设备上信任这台 Mac。
- 如果构建因代码签名错误失败,引导用户前往 Xcode → target → Signing & Capabilities → Team。不要尝试自动修复签名。
- 需要 Xcode 15+ 才能使用 devicectl。如果缺少 xcrun devicectl,告知用户更新 Xcode。
适用场景
适用于需要在已连接的 iOS 真机上构建、安装并启动当前 Xcode 工程的开发场景,尤其是通过 Emacs 工作流调用 /xcode-run-device 时。
限制
- 需要工程中已配置签名团队。
- 需要已配对且被信任的设备。
- 需要 Xcode 15+ 以使用 devicectl。
- 构建可能耗时数分钟。
- 不自动修复代码签名问题。