Gatekeeper拦截无传统日志,但可通过控制台查spctl/trustd日志、xattr -l检查quarantine属性、codesign与spctl命令验证签名及公证状态,并用spctl --status确认策略启用。
macos gatekeeper 检测失败本身不生成传统意义上的错误日志文件,它不会写入 system.log 或 console 中的“崩溃日志”,而是通过系统级安全框架(trustd、lsass、spctl)在应用启动瞬间执行静默拦截,并直接向用户弹出图形提示。但你可以通过以下方式精准定位是否为 gatekeeper 触发、拦截发生在哪一层、以及具体被拒原因。
查看 Gatekeeper 实时拦截记录(最有效)
Gatekeeper 的决策由 spctl 和 trustd 服务实时执行,其拒绝动作会留下可查痕迹:
- 打开「控制台」App(访达 → 应用程序 → 实用工具)
- 左侧选择「报告」→「系统日志」,或直接搜索关键词:
spctl、trustd、quarantine、errSecCSReqFailed - 复现问题:双击被拦应用,等待弹窗出现后立即切回控制台
- 筛选时间范围(最近1分钟),重点关注含以下内容的日志行:
— “spctl: policy check failed for …”
— “trustd: SecTrustEvaluateWithError: … code object is not signed”
— “lsass: rejecting execution of … due to quarantine attribute”
检查应用是否带隔离属性(常见直接原因)
绝大多数“无法验证”“已损坏”提示源于下载文件自带的 com.apple.quarantine 属性,可用终端快速确认:
OpenClaw Gateway 重启性能分析工具:分析重启速度、定位启动慢原因、生成性能报告、诊断启动问题。支持 Windows (PowerShell) 与 Linux (Bash)。触发场景:分析 gateway 重启、检查启动时间、生成报告、诊断异常。
- 终端中执行:
xattr -l /Applications/你的应用名.app
(把“你的应用名.app”换成真实路径,含空格需加引号或反斜杠) - 若输出中包含类似:
com.apple.quarantine: 0081;65a2c3f9;Safari;...,说明该应用正被隔离标记锁定 - 进一步检查内部模块是否也被标记:
xattr -l /Applications/你的应用名.app/Contents/MacOS/your_binary
验证签名与公证状态(区分签名缺失 vs 公证失败)
Gatekeeper 会分两步校验:先看是否有有效签名,再查是否完成苹果公证(Notarization)。两者失败表现相似,但修复路径不同:
- 查签名有效性:
codesign --display --verbose=4 /Applications/你的应用名.app
→ 若显示code object is not signed或signature not valid,属签名问题 - 查公证状态:
spctl --assess --type execute --verbose /Applications/你的应用名.app
→ 返回rejected且含notarization字样,说明未通过苹果服务器扫描 - 若签名正常但公证失败,终端可能报错:
errSecHostIsDown(网络问题)或errSecNoTrustSettings(本地证书策略异常)
排查系统级 Gatekeeper 策略配置
有时不是应用问题,而是本机策略被意外修改:
- 终端运行:
spctl --status→ 应返回assessments enabled;若为disabled,说明 Gatekeeper 已被全局关闭(极少见) - 查看当前允许来源:
spctl --list --enable→ 正常应含developer id和mac app store;若仅剩mac app store,则第三方签名应用必被拒 - 检查 SIP 状态(虽不直接影响 Gatekeeper,但异常关闭可能导致信任链紊乱):
csrutil status


















