用途:当 launchd 启动的二进制或非交互进程需要读取受沙盒保护的路径(如 ~/Library/Containers/<app>/Data/...)时,macOS TCC 会拒绝访问,直到该二进制被加入“系统设置 → 隐私与安全性 → 完全磁盘访问权限”白名单。本技能自动化授权前的所有步骤,仅保留人工点击与认证。
主要能力:fda-grant-walkthrough 执行四步——将二进制路径解析为绝对规范路径;检查 TCC 数据库是否已有授权(已授权则快速退出);通过 pbcopy 将绝对路径复制到剪贴板;用 x-apple.systempreferences:// 直接打开 FDA 设置面板。用户随后点击 + → Cmd+Shift+G → Cmd+V → Enter → 选择二进制 → 打开开关 → 认证。--check 模式可在不打开任何界面的情况下确认授权状态。
用法: fda-grant-walkthrough ~/eon/iterm2-scripts/bin/maccy-backup/maccy-backup-runner fda-grant-walkthrough --check /path/to/binary 退出码:0 已授权或引导成功;1 用法错误;2 二进制不存在或不可执行;3(仅 --check)未授权,或调用方缺少读取 TCC.db 的权限。
安装: ln -sf "$HOME/.claude/plugins/marketplaces/cc-skills/plugins/devops-tools/skills/macos-fda-grant-helper/scripts/fda-grant-walkthrough.sh" ~/.local/bin/fda-grant-walkthrough
适用场景:launchd 任务在 ~/Library/Containers/ 下报“Operation not permitted”“DB unreadable”或“permission denied”;编译的 Swift/Go 二进制需读取应用私有文件(如 Maccy 剪贴板数据库、Messages 聊天数据库、Mail mbox);需要脚本化检查某二进制是否已有 FDA。
限制:macOS TCC 对 FDA 变更强制人工认证,tccutil 无公开 API 添加条目,只能重置;MDM 配置仅能为系统分发的应用预授权,无法覆盖任意用户编译的二进制。因此无法完全自动化,本工具为最优方案:约 95% 自动化,5% 手动。授权后建议用 --check 确认,并重启相关 launchd 任务验证恢复。