2013-12-19 68 views
3

我剛剛在Mac OS X 10.7上安裝了證書,並在編譯我的項目後編寫了一個在多個文件上運行codesign的腳本。我創建了一個新的鑰匙串,並禁用了一段時間後鎖定它的選項。它看起來像登錄鑰匙串。但每次我的腳本運行codesign命令時,都會發生以下錯誤:<filename>: User interaction is not allowed.如果我啓動一個shell,請使用security unlock-keychain <path>解鎖鑰匙串,然後手動運行該腳本,它將起作用。問題是如何保持鑰匙鏈始終處於解鎖狀態,以便我的自動構建可以簽署文件?鑰匙串在運行編碼簽名時總是要求輸入密碼

+0

你是如何解鎖腳本中的鑰匙串的?腳本寫的是什麼樣的語言? –

+0

我使用/ bin/sh。我不會從劇本中解鎖它。如果我手動解鎖它,它會詢問密碼。我不想讓我的密碼存儲在腳本中,因爲其他人也可以訪問它。 – RegedUser00x

+0

您可以嘗試使用'security unlock-keychain -p ',但在使用它之前請考慮其安全含義。基本上問題是鑰匙串通常只在交互式shell中解鎖。有一些可用的腳本可以模擬這個腳本並運行需要執行代碼簽名的腳本。 –

回答

2

當您使用security unlock-keychain -p $PASSWORD $KEYCHAIN鑰匙鏈將被解鎖,但僅5分鐘,由於自動重新鎖定。爲了讓鑰匙鏈永久解鎖,您需要使用security set-keychain-settings $KEYCHAIN

爲了完整答案,我還建議您使用security import $CERT -k $KEYCHAIN -P "$CERTPASSWORD" -T /usr/bin/codesign授予/usr/bin/codesign訪問您的證書。

相關問題