直接用终端命令可完整检测macos .pkg签名状态:一查codesign -dv输出的authority、teamidentifier、valid on disk和notarized字段;二验xattr与spctl确认公证票据存在且被接受;三核security find-certificate与openssl比对证书有效期及签发链是否可信。

直接用终端命令就能完整检测 macOS 安装程序(.pkg)的签名状态,不用第三方工具。重点看四件事:签名是否存在、是否有效、是否经过苹果公证、证书链是否可信。整个流程分三步走,每步对应一个验证维度。
一、查签名基础信息与有效性
运行这条命令(把 /path/to/YourApp.pkg 换成你实际的安装包路径):
codesign -dv --verbose=4 "/path/to/YourApp.pkg"
重点关注输出里的这四项:
- Authority:必须是 Developer ID Installer: XXX Inc. 这类格式;显示 adhoc、unidentified developer 或为空,说明签名无效或缺失
- TeamIdentifier:必须是非空字符串(如 ABC123XYZ);为空代表没用合法开发者证书
- valid on disk:值为 yes 表示文件未被篡改;no 说明签名已损坏或内容被改过
- Notarized:值为 yes 表示已通过苹果公证;无此字段或为 no,macOS Ventura 及更新系统大概率会拦截
二、验苹果公证票据是否真实存在
公证信息以扩展属性形式存于文件中,不是“签了就算”,而是“签了+苹果盖章+本地缓存”才算数:
xattr -pl com.apple.quarantine "/path/to/YourApp.pkg"
如果返回里有 ticket=1,说明系统成功获取并缓存过公证票据;若报错 No such xattr 或显示 ticket=0,就代表没公证或票据已失效。
再补一刀确认公证结果是否被系统认可:
spctl --assess --type install --verbose=4 "/path/to/YourApp.pkg"
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
输出含 accepted 才算真正过关;rejected、invalid 或 source=Unnotarized 都意味着 Gatekeeper 会拦住它。
三、确认证书链是否完整可信
签名有效 ≠ 证书可信。哪怕 Authority 显示正确,证书也可能过期、被吊销,或中间链断裂:
先提取签名要求:
codesign --display --requirements - "/path/to/YourApp.pkg"
再查系统信任根是否包含该证书:
security find-certificate -p /Library/Keychains/System.keychain 2>/dev/null | openssl x509 -noout -text | grep -A1 "Validity\|Subject\|Issuer"
比对两点:
- 证书的 Not Valid Before 和 Not Valid After 时间段是否覆盖当前时间(2026年7月)
- Authority 字段中的签发者名称,是否能在上述输出中找到匹配的 Subject 或 Issuer
时间偏差或证书吊销都会导致验证失败,哪怕签名本身没动过。










