2013-04-29 20 views

回答

3

我解決了它意外 - 在梳理了幾個小時的網絡 - 同時複製了與Apple支持提交事件報告時的步驟。

從Mac(與ssh會話相反),同一個命令生成一個彈出窗口,要求獲得訪問Keychain的權限。

選擇「始終允許」後,問題就消失了。永遠。

+0

這可能是一個問題,如果您試圖簽署一個包,並且您正在通過ssh訪問mac機器。 – bikram990 2013-08-16 09:45:55

+0

@ bikram990 -precisely!這就是導致問題的原因 - 並且是解決方案。 – 2013-08-19 11:21:16

3

嘗試從這個終端解鎖鑰匙串:

security -v unlock-keychain -p "<Password>" "/Users/<UserName>/Library/Keychains/login.keychain" 
2

基於Danny Schoemann's答案和我自己的研究,我發現完整的解決方案對我來說:

  1. 你真的需要使用登錄到您的Mac機GUI,第一次,並簽署任何與您需要的證書。然後您將獲得請求窗口,其中包含可用選項「始終允許」使用此證書(或類似的證書)。

    • 要點:如果你需要使用SSH 其他控制檯會話(如詹金斯)使用productsign,您的證書必須由安裝到系統範圍,但不用戶範圍。 enter image description here enter image description here
  2. 如果你需要保持你的證書中的用戶範圍,則需要每次解鎖鑰匙串在控制檯會話時,你需要簽署的東西(如Alex寫道):

    security -v unlock-keychain -p "Password" /Users/<UserName>/Library/Keychains/login.keychain" 
    

    你可以把它放到你的腳本中。

    明顯減去這個解決方案 - 你需要將你的密碼保存在一些未加密的腳本中,這是不安全的,所以我更喜歡第一個解決方案。

+1

我還必須將'--keychain'參數添加到'productsign',否則它會嘗試打開登錄鑰匙串,並以'CSSMERR_CSP_NO_USER_INTERACTION'失敗。 – UrOni 2016-06-13 13:54:40