2011-04-17 55 views
4

我有一個非常煩人的代碼問題:我有2臺Mac機器(M1,M2)和2個開發人員證書(C1,C2)。雖然鑰匙扣看待M1和M2類似,我有協同設計結果如下:codesign failed with CSSM_SignData returned:8001094A

  • 協同設計(M1,C1)確定
  • 協同設計(M1,C2)NOK
  • 協同設計(M2,C1)NOK
  • 協同設計(M2,C2)確定

所以,當我成功打造我的M1項目,C1,我不能倉庫轉移到M2與C1再建,我必須改變,以C2是成功的。 錯誤codesign返回錯誤消息'CSSM_SignData返回:8001094A'後跟'未知錯誤-2070 = fffff7ea'。

+0

你有沒有解決這個問題?我看到完全相同的錯誤代碼。以下關於只從一臺機器簽名的答案完全是錯誤的。這通常起作用,但它現在剛開始拋出這個錯誤。 – rennarda 2013-01-22 15:06:22

回答

1

要在計算機上簽名您的應用程序,必須僅從該計算機請求證書。所以你不能用C1在M2上構建,反之亦然。

不幸的是,這個信息進入project.pbxproj,這是至關重要的,必須由版本控制來維護。我不認爲有任何方法可以避免在版本控制中添加這種機器特定的信息。

但是,當您選擇要簽署的證書時,有一個「自動配置文件選擇器」選項。我還沒有在單獨的機器上測試過它,但它聽起來像會自動爲正確的機器選擇正確的證書。但如果不是這種情況,那麼你將不得不每次都手動選擇certi。

我的團隊這樣做的方式是 - 我們爲開發人員提供不同的mac,並且我們通過一個特定的mac做所有我們的簽名。

+0

這聽起來很合理,並且「自動輪廓選擇器」似乎起作用。非常感謝你! – 2011-04-17 16:20:15

0

您可以以.p12格式從keychain中導出證書並將它們安裝在另一個系統上。如果您將.cer文件安裝在不同的機器上,它將無法使用!嘗試導出它們並在其他系統上安裝。

相關問題