3

出于某种原因,我需要在Bitrise上为我的 macos 应用程序运行手动代码签名。使用以下命令执行此操作时:

codesign --deep --force --verify --verbose --sign "Developer ID Application: Name (ID)" "MyApp.app"

它总是返回错误:

line 11:  3043 Segmentation fault: 11

有谁知道如何解决这个问题?

4

2 回答 2

3

在寻找可能的解决方案时,我遇到了这两个帖子:

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

https://forums.developer.apple.com/thread/65055

他们帮助我找到了解决问题的方法。在第一个链接中标记为正确的答案指出:

--timestamp=none

会修复它,这对我来说不是真的。但是第二个答案以及第二个链接中提到的解决方案包含正确的提示。

我需要使用十六进制标识符而不是证书名称进行签名。

您可以通过执行以下命令获取证书的十六进制标识符:

security find-identity -p codesigning

使用为我的证书返回的十六进制标识符,这是我需要在 Bitrise 上运行以签署 MyApp.app 的命令

codesign --deep --force --verify --verbose -s <<hex identifier>> "MyApp.app"

请注意,选项的顺序也很重要。'-s' 必须是我的最后选择。

(并记住包括 Bitrise 工作流程步骤“证书和配置文件安装程序”)

===编辑===

我在这里谈论的是 MacOS Sierra 堆栈。

于 2017-03-15T21:26:32.557 回答
0

我通过使用证书的十六进制 id 签名找到了解决方案。

您可以通过运行找到 HEX ID: security find-identity -v

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

于 2017-08-22T20:30:26.203 回答