SuperAPI AI 工具集

xcode-run-device

编程与开发

查看项目

更新于 10-16 05:38

技能介绍

用途

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。
  • 构建可能耗时数分钟。
  • 不自动修复代码签名问题。