2017-03-15 118 views
2

出于某种原因,我需要在Bitrise上为我的macos应用运行手动代码签名。如果这样做,用下面的命令:Bitrise失败时的MacOS codesign命令:分割错误:11

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

它总是与错误返回:

line 11: 3043 Segmentation fault: 11 

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

回答

3

在寻找可能的解决办法,我碰到这两个职位:

Segmentation fault: 11 when attempting to codesign .app

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

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

--timestamp=none 

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

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

你可以为你的证书执行此命令的十六进制标识:

security find-identity -p codesigning 

使用我的证书,这个返回的十六进制标识符是我需要以签署MyApp.app

上Bitrise运行命令
codesign --deep --force --verify --verbose -s <<hex identifier>> "MyApp.app" 

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

(要记住,在Bitrise工作流步骤“证书和文件安装”)

===编辑===

我谈论的MacOS塞拉利昂堆在这里。

+0

感谢分享解决方案@Thor_Bux 只要一注:这不是bitrise具体,但塞拉利昂的MacOS具体。在塞拉利昂,一些钥匙串/签名相关的事情发生了变化,这对El Capitan来说有点不同(有点不同)。需要注意的是,就像bitrise.io一样,您可以选择Sierra和El Capitan堆栈。 –

+0

我在这里明确提到Bitrise的原因是,这个问题不会发生在我的本地Mac上,它也运行Sierra。感谢您提及我应该包含MacOS版本。 –

相关问题