分段错误:尝试对 .app 进行代码设计时出现 11

Segmentation fault: 11 when attempting to codesign .app

我无法找到与代码设计相关的此错误的定义。我真的很困惑该怎么做。

尝试执行此命令行时发生错误:

codesign -s "Developer ID Application: Name (ID)" -fv --deep Application.app/

系统:

XCode 6.2 Yosemite 10.10.3

我已经重新安装了 XCode,仍然没有任何运气。这是用于桌面应用程序。

如果这是一个愚蠢的问题,我们深表歉意!

通过 --timestamp=none 似乎让崩溃消失了。在这种情况下,请检查网络设置,codesign 可能无法访问,例如时间服务器。

我找到的一个解决方案 on the Apple forum 对我有用:首先,运行 使用以下命令查找您身份的十六进制 ID:

$ security find-identity -v
1) A048017A43F8C9C993128B0101B81CD07049601E "lldb_codesign"
...

然后你可以使用那个十六进制标识符来签名:

codesign -s A048017A43F8C9C993128B0101B81CD07049601E /usr/local/bin/gdb

我在调试时遇到的其他一些技巧:

  • 您必须提供二进制文件的完整路径(/usr/local/bin/gdb,而不仅仅是 gdb)。它不会在 PATH 上查找,我认为是出于安全原因。
  • 如果您的二进制文件所在的目录不是 user-owned。
  • ,您必须 运行 以 root 身份进行代码签名

我在 Xcode 8.3.2 中遇到过这个问题,当时我无意中得到了我的签名证书的副本。 @kristina 的回答给了我线索; $ security find-identity -v 向我展示了两个具有相同哈希值的条目。我通过删除列表中带有该散列的第一个证书来修复它,通过:

$ sudo security delete-certificate -Z <SHA hash>

我遇到了同样的问题。对我来说,原因是我没有连接到互联网,所以可能是因为 --timestamp 它试图连接时间服务器,但失败了。

恢复互联网连接解决了问题。