macOS 权限(TCC)
macOS 权限授予是脆弱的。TCC 将权限授予与应用的代码签名、捆绑标识符和磁盘路径相关联。如果其中任何一个改变,macOS 会将应用视为新的,并可能删除或隐藏提示。
稳定权限的要求
- 相同路径:从固定位置运行应用(对于 OpenClaw,
dist/OpenClaw.app)。 - 相同捆绑标识符:更改捆绑 ID 会创建新的权限身份。
- 签名应用:未签名或临时签名的构建不会持久化权限。
- 一致的签名:使用真正的 Apple Development 或 Developer ID 证书,以便签名在重建之间保持稳定。
临时签名每次构建都会生成新的身份。macOS 会忘记之前的授予,提示可能完全消失,直到清除陈旧的条目。
提示消失时的恢复清单
- 退出应用。
- 在系统设置中移除应用条目 → 隐私与安全性。
- 从相同路径重新启动应用并重新授予权限。
- 如果提示仍然不出现,使用
tccutil重置 TCC 条目然后重试。 - 某些权限仅在完全 macOS 重启后才会重新出现。
示例重置(根据需要替换捆绑 ID):
bash
sudo tccutil reset Accessibility bot.molt.mac
sudo tccutil reset ScreenCapture bot.molt.mac
sudo tccutil reset AppleEvents如果你正在测试权限,始终使用真正的证书签名。临时构建仅适用于快速本地运行,其中权限不重要。