用途:当故障更像代码签名问题而非编译问题时使用本技能,例如启动被拒、缺少 entitlement、签名无效、沙盒不匹配、强化运行时困惑或信任策略拒绝。
主要能力:检查 .app 或可执行文件,定位 Contents/MacOS/ 内的主二进制;读取签名详情与 entitlements;在涉及 Gatekeeper 时检查其行为;对失败进行分类,包括未签名或 ad hoc 签名、身份错误、entitlement 不匹配、强化运行时问题、App Sandbox 问题、嵌套代码签名问题、分发或公证前置条件问题;并给出最小修复路径,区分本地开发问题与分发问题。
使用方式:常用命令包括 codesign -dvvv --entitlements :- <app-or-binary>、spctl -a -vv <app-or-binary>、security find-identity -p codesigning -v、plutil -p <path-to-entitlements-or-plist>。输出应说明检查了哪个产物、其签名状态、确切的失败类别,以及最小修复或验证序列。
限制:不得虚构缺失的 entitlements;不要将公证与本地调试签名混为一谈;若真正问题是构建设置或描述文件,应直接说明。