codesign 命令可检查 macos 软件签名有效性、签发者及苹果公证状态;运行 codesign -dv --verbose=4 "/applications/软件名.app" 查看 "valid on disk"(yes 为有效)、"authority"(签发者)和 "notarized"(yes 为已公证);简化验证用 codesign --verify --verbose,无输出即有效。
直接用 codesign 命令就能查 macos 上已安装软件的数字签名,重点看签名是否有效、由谁签发、是否经过苹果公证。
查签名有效性与签发者
在终端中运行:
codesign -dv --verbose=4 "/Applications/软件名.app"替换 软件名.app 为实际路径(比如 Safari.app 或 Postman.app)。输出中重点关注:
-
“valid on disk”:显示
yes表示签名未被破坏,文件完整;no表示已被修改或签名失效 -
“Authority” 行:显示签名主体,例如
Developer ID Application: XXX Inc.或Apple Distribution: XXX Ltd.;若为unidentified developer,说明签名无效或缺失 -
“Notarized” 字段:值为
yes表示已通过苹果公证服务;macOS Ventura 及更新系统对未公证的 Intel 应用默认拦截
快速验证签名是否正常
如果只想确认签名是否有效,不用看全部细节,可用简化命令:
codesign --verify --verbose /Applications/软件名.app无任何输出即表示签名有效;若报错如 code object is not signed 或 invalid signature,说明未签名或签名损坏。
检查系统预装应用(如 Finder、Safari)
系统自带应用通常由 Apple 签发,签名路径可能不在 /Applications。可先用 ps 找到进程对应路径:
从输出中提取完整路径(如 /System/Applications/Safari.app),再代入 codesign -dv 命令检查。
批量查看多个应用签名
想一次查几个常用软件,可把路径列出来逐个检查:
for app in "/Applications/Safari.app" "/Applications/TextEdit.app" "/Applications/Preview.app"; do echo "== $app =="; codesign -dv --verbose=2 "$app" 2>/dev/null | grep -E "(Authority|Notarized|valid on disk)"; echo; done该命令只显示关键字段,方便横向对比签名状态。











