可通过四种方法验证macos应用数字签名:一、右键“打开”触发gatekeeper即时检查;二、终端用codesign -dv命令查看签名有效性、权威性及公证状态;三、系统设置→隐私与安全性中查看拦截记录及签名来源;四、用xattr -l检查公证票据属性。

如果您下载了一个 macOS 应用程序,但不确定其来源是否可信,系统可能已对其执行了 Gatekeeper 签名验证;查看数字签名是确认该软件是否由合法开发者发布、是否被篡改的关键步骤。以下是验证软件数字签名的具体方法:
一、通过“打开”右键菜单触发 Gatekeeper 验证
此方法利用系统内置的交互式验证机制,在不运行应用的前提下触发 Gatekeeper 的即时检查,并在警告界面中暴露签名状态信息。适用于快速判断单个应用是否具备有效签名。
1、在访达(Finder)中定位目标应用(如“XXX.app”),确保其位于“应用程序”文件夹或下载目录中。
2、按住 Control 键不放,同时点击该应用图标,呼出快捷菜单。
3、在菜单中选择“打开”选项。
4、若应用具备有效签名但未公证,系统将弹出提示:“已验证来自‘开发者名称’的 App”,此时可确认签名存在且可信。
5、若提示“无法验证开发者”或显示灰色禁用按钮,则表明签名缺失、无效或证书已被苹果撤销。
二、使用终端命令查看详细签名信息
此方法通过 codesign 工具直接读取应用的代码签名元数据,输出包括签名者身份、证书链、公证状态(notarized)、磁盘完整性校验结果等权威字段,是技术验证的核心手段。
1、打开“启动台”→“其他”→“终端”。
2、输入以下命令(将 “XXX.app” 替换为实际应用全名,注意保留英文引号):
codesign -dv --verbose=4 "/Applications/XXX.app"
3、观察输出内容:查找 “valid on disk” 字样,若显示 “yes”,表示签名未被破坏;若为 “no”,说明应用已被修改。
4、检查 “Authority” 行,确认是否包含可信实体,例如 “Developer ID Application: XXX Inc.” 或 “Apple Distribution: XXX Ltd.”;若出现 “unidentified developer” 或为空,则签名无效。
5、查找 “Notarized” 字段,若值为 “yes”,表明该应用已通过苹果公证服务扫描;若无此项或为 “no”,则未公证,macOS Ventura 及更新版本将默认阻止 Intel 架构应用运行。
三、通过系统设置界面查看安全拦截记录
此方法适用于已触发 Gatekeeper 拦截但尚未操作的场景,系统会在“隐私与安全性”中持久化记录被阻止的应用及其签名状态,便于追溯拦截原因。
1、点击屏幕左上角苹果菜单,选择“系统设置”。
2、在左侧边栏滚动并点击“隐私与安全性”。
3、向下滚动至“安全性”区域,查找形如 “已阻止‘XXX.app’以保护您的 Mac” 的提示条目。
4、该条目右侧会标注签名来源,例如“来自开发者 ‘XXX Inc.’”或“来自未知开发者”;若显示后者,说明签名不可信或缺失。
5、若条目下方出现“显示在访达中”链接,点击后可跳转至应用位置,并进一步执行右键验证或终端检查。
四、检查公证票据(Notarization Ticket)是否存在
苹果公证服务会在成功验证后向应用附加一个嵌入式票据,该票据独立于代码签名,可用于离线验证公证状态。此步骤可确认应用是否曾通过苹果服务器的恶意软件扫描。
1、确保应用已置于“应用程序”文件夹内。
2、在终端中执行以下命令(替换应用名为实际名称):
xattr -l "/Applications/XXX.app"
3、在输出中查找 “com.apple.quarantine” 属性——若存在,说明应用来自互联网,Gatekeeper 必然介入;若不存在,可能为本地构建或已清除隔离标记。
4、继续查找 “com.apple.security.notarization-info” 或类似字段;若存在且内容为 Base64 编码的票据数据,则表明该应用已公证。
5、若命令返回空或仅含 quarantine 属性而无 notarization-info,则该应用未通过苹果公证流程。











