用途:为 macOS 应用提供 shell 优先的构建、运行与调试工作流,覆盖 Xcode 工作区/项目与 SwiftPM,用于启动应用及排查构建、启动、运行时失败。
主要能力:建立项目内单一入口脚本 script/build_and_run.sh,负责先停掉已在运行的进程再构建并启动;通过 .codex/environments/environment.toml 在 Codex 应用中暴露 Run 按钮。支持用 xcodebuild 构建 Xcode 工程,用 swift build 处理 SwiftPM;对真正的命令行工具直接运行可执行文件,对 SwiftPM 的 AppKit/SwiftUI GUI 应用则生成项目内 .app bundle(含最小 Info.plist)并用 /usr/bin/open -n 启动。脚本可选参数:--debug(lldb 调试)、--logs(启动后流式日志)、--telemetry(按子系统/类别过滤统一日志)、--verify(用 pgrep -x <AppName> 确认进程存在)。
使用方式:先用 find . -name '.xcworkspace' -o -name '.xcodeproj' -o -name 'Package.swift' 判断项目形态,必要时在仓库根执行 git init;用 xcodebuild -list -workspace <workspace>(或 -project)列出 scheme。随后创建可执行的 script/build_and_run.sh,默认无参数路径为停进程、构建、运行,并写 .codex/environments/environment.toml。常用命令:./script/build_and_run.sh 及带 --debug、--logs、--telemetry、--verify 的形式。
适用场景:macOS 应用的日常构建与启动、启动/运行时故障诊断、配置与沙箱/权限及动作事件验证、符号化崩溃调试。仅在用户明确需要且已有 Xcode 相关 MCP 能力时,才在契合处窄范围使用。
限制:不假设模拟器、触控交互或移动端工具链;不要把移动或模拟器流程套用到 macOS。SwiftPM 的 SwiftUI/AppKit GUI 应用不应以裸可执行文件启动,否则可能无 Dock 图标、无法前台激活、缺少 bundle 标识。不要在脚本存在前写 environment.toml,也不要指向过期脚本路径;Run 脚本应放在 script/build_and_run.sh,不放进应用源码目录。若 App bundle 已启动但窗口不前置,需检查入口点是否需要 NSApp.setActivationPolicy(.regular) 与 NSApp.activate(ignoringOtherApps: true)。构建输出过大时先归纳首个真正的阻塞点,并按编译、链接、签名、构建设置、缺失 SDK/工具链、脚本缺陷或运行时启动归类,引用最小有效错误片段。