终端用codesign -dv --verbose=4可查Authority(签发者)、Notarized(是否公证)、valid on disk(文件完整性)三项核心字段,比右键提示更准确彻底。

你想确认某个 macOS 应用是否由可信开发者签名、证书是否有效、有没有被苹果公证,而不是只看“已验证来自XXX”的模糊提示——终端一条命令就能直接读出 Authority、Notarized、valid on disk 这三项核心字段,比右键打开更准、更彻底。
用 codesign 命令查看完整签名信息
打开终端,输入以下命令(把 【Safari.app】 替换为你想查的实际应用名,注意保留英文引号):
codesign -dv --verbose=4 "/Applications/Safari.app"
输出中重点盯住这三行:
→ valid on disk: yes 表示文件没被篡改、签名完好;若为 no,说明签名已失效或二进制被修改过;
→ Authority: 显示签发者,如 Apple Mac OS Application Signing(系统应用)或 Developer ID Application: XXX Inc.(第三方),若出现 unidentified developer 或为空,说明签名无效;
→ Notarized: 值为 yes 表示已通过苹果公证;macOS Ventura 及更新系统对未公证的 Intel 应用默认拦截,哪怕签名有效也无法双击启动。
快速判断签名是否正常(无输出即有效)
如果只想立刻知道签名有没有硬伤,不用读长篇输出:
codesign --verify --verbose "/Applications/Postman.app"
执行后:完全没输出 → 签名有效、文件完整;
报错如 code object is not signed 或 invalid signature → 未签名、签名损坏或证书不可信。
检查系统预装应用的真实路径并验签
Finder、Safari、QuickTime Player 这类系统应用不在 /Applications 下,强行用错误路径会报 “No such file”:
① 先查真实路径:运行 ps aux | grep -i "Safari.app" | head -1 | awk '{print $11}',复制输出的完整路径(例如 /System/Applications/Safari.app);
② 再用该路径验签:codesign -dv --verbose=4 "/System/Applications/Safari.app"
系统应用的 Authority 必须是 Apple Mac OS Application Signing,且 valid on disk 必须为 yes;否则可能 SIP 被禁用,或系统完整性已受损。
通过右键“打开”触发 Gatekeeper 实时反馈
这个方法不依赖终端,适合临时快速验证,且能暴露 Gatekeeper 的实际拦截逻辑:
方法一:在访达中定位应用 → 按住 Control 键点击图标 → 选择“打开” → 弹窗显示“已验证来自‘Developer ID Application: XX LLC’”即签名存在且被信任;
方法二:若弹出“无法验证开发者”或按钮灰色禁用,说明签名缺失、证书被吊销,或公证票据已过期;
注意:此操作不会真正启动应用,仅触发 Gatekeeper 校验流程,安全无副作用。
用 spctl 确认系统是否真正接受该应用
签名有效 ≠ 系统放行。spctl 是 Gatekeeper 的策略评估引擎,它告诉你 macOS 当前是否允许执行:
spctl --assess --type execute --verbose=4 "/Applications/Slack.app"
输出含 accepted 才算真正过关;若为 rejected,常见原因有:公证已过期、证书被苹果吊销、应用提交后被拒绝、或系统时间严重偏差。

















