可通过终端命令查看mac应用签名信息:用codesign -dv查基础签名,-dv --verbose=4查公证状态等详情,grep提取authority字段,ps结合pid查运行进程签名,security find-identity列本地证书。

如果您在Mac上安装或运行某个应用程序时遇到Gatekeeper拦截提示,或需要确认该应用是否由可信开发者签名,则可通过终端命令直接读取其数字签名证书详情。以下是查看应用签名信息的具体操作步骤:
一、使用codesign -dv命令查看基础签名信息
该命令用于以详细模式(verbose)显示应用程序的签名数据,包括签名时间、证书颁发机构、签名算法及磁盘有效性状态,是验证签名完整性的最常用方式。
1、打开“启动台”→“其他”→“终端”。
2、在终端中输入以下命令(将/Applications/XXX.app替换为实际应用的完整路径,注意保留英文引号):
codesign -dv "/Applications/XXX.app"
3、按回车执行后,观察输出内容:查找valid on disk字段,若值为yes,表示签名未被篡改;若为no,说明应用文件已被修改。
4、检查Authority行,确认是否包含可信实体,例如Developer ID Application: XXX Inc.或Apple Distribution: XXX Ltd.;若显示unidentified developer或该字段为空,则签名无效。
二、使用codesign -dv --verbose=4查看增强签名详情
启用--verbose=4参数可输出更完整的签名结构信息,包括公证状态(Notarized)、团队ID、签名时间戳、CDHash等关键字段,适用于深度排查签名合规性问题。
1、在终端中输入以下命令(路径同上):
codesign -dv --verbose=4 "/Applications/XXX.app"
2、执行后重点核对以下字段:
– Notarized:值为yes表示已通过苹果公证服务;
– TeamIdentifier:显示8位或10位字母数字组合,如H7H8Q7M5CK;
– CDHash:唯一内容哈希值,用于校验应用完整性;
– Timestamp:签名时间戳,若缺失可能影响macOS Ventura及以上版本的运行。
三、快速提取Authority字段值(单行精简输出)
当需批量检查多个应用或仅关注签名主体时,可结合grep与cut命令快速提取Authority字段内容,避免人工扫描长输出。
1、在终端中输入以下命令:
codesign -dvvv "/Applications/XXX.app" 2>&1 | grep "Authority=" | head -n 1 | cut -d "=" -f 2
2、命令执行后,终端将直接返回类似Developer ID Application: Postdot Technologies, Inc (H7H8Q7M5CK)的纯净签名主体字符串。
四、验证已运行进程的签名信息
对于已在后台运行的应用程序,无法直接访问其.app包路径时,可通过进程PID反向获取其签名详情,适用于调试或安全审计场景。
1、打开“活动监视器”,定位目标应用,记录其PID(进程ID)。
2、在终端中执行以下命令(将12345替换为实际PID):
ps -p 12345 -o comm=
3、获取进程对应二进制名称(如pycharm),再结合其安装路径构造完整.app路径,例如/Applications/PyCharm CE.app/Contents/MacOS/pycharm。
4、最后对完整.app路径执行:
codesign -dv "/Applications/PyCharm CE.app"
五、查看系统中所有可用签名证书
若需确认本地钥匙串中是否存在可用于签名或验证的开发者证书,可列出当前系统支持的所有代码签名身份,辅助判断签名环境是否就绪。
1、在终端中输入以下命令:
security find-identity -v -p codesigning
2、输出列表中每行格式为:1) XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "Apple Development: name@domain.com",其中引号内为可用证书名称。
3、若输出为空或仅显示0 valid identities found,表明本地未安装有效的代码签名证书,需通过Xcode账户同步或手动导入.p12证书。











