2017-03-15 74 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版本。 –

相關問題