/usr/bin/codesign 失败,退出代码为 11

/usr/bin/codesign failed with exit code 11

升级到 macOS 10.12 Sierra 和 Xcode 8 后,我的代码签名被破坏了。

每次我尝试签署应用程序时,无论多么简单,我都会得到 /usr/bin/codesign failed with exit code 11

原来原因是我不得不从钥匙串中删除过期的证书

希望我为您节省了几分钟漫无目的、令人沮丧的故障排除。

今天遇到了同样的问题,但就我而言,Keychain 中没有过期的证书。 https://forums.developer.apple.com/thread/65055 的技巧对我有用:

I got both issues with a fresh new certificate, so it was not just about the certificate being old. But I got around it by specifying the certificate by ID instead of name — first getting the ID via:

security find-identity -p codesigning

and, from the output of that, copying the long hex ID for the key I want, and pasting that into my codesign invocation:

sudo codesign -s 001CA54450805B2D8D1646793D0339BA7EB931D1 --timestamp=none /opt/local/bin/ggdb

重试 运行 codesign.

偶尔,我们在 CI 系统中遇到 codesign 的构建失败,退出代码为 11,原因不明。查看 Console.app 我发现线程 Dispatch queue: com.apple.security.XPCTimeStampingService 中存在分段错误。我知道这意味着在尝试与时间戳服务器通信时发生了一些错误。

这与 OP 不同,但我在调查我的问题时发现了这个问题。