Bitrise失败时的MacOS codesign命令:分割错误:11
问题描述:
出于某种原因,我需要在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
有谁知道如何解决这个问题?
答
在寻找可能的解决办法,我碰到这两个职位:
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塞拉利昂堆在这里。
答
我通过使用证书的十六进制ID进行签名来找到解决方案。
您可以通过运行找到HEX ID: security find-identity -v
信用这里: - Segmentation fault: 11 when attempting to codesign .app
感谢分享解决方案@Thor_Bux 只要一注:这不是bitrise具体,但塞拉利昂的MacOS具体。在塞拉利昂,一些钥匙串/签名相关的事情发生了变化,这对El Capitan来说有点不同(有点不同)。需要注意的是,就像bitrise.io一样,您可以选择Sierra和El Capitan堆栈。 –
我在这里明确提到Bitrise的原因是,这个问题不会发生在我的本地Mac上,它也运行Sierra。感谢您提及我应该包含MacOS版本。 –