2011-01-21 138 views
14

我正在嘗試爲穩定的iPhone應用程序建立連續的構建/集成。添加密碼到沒有鑰匙串的私鑰ACL

我:

  • 專用的Mac Mini。
  • 命名的用戶帳戶「打造」
  • Hudson設置爲構建一個LaunchAgent,在/用戶/建設/庫/嘗試作爲一個全系統的LaunchDaemon運行,如Hudson LaunchAgents
    • 丟棄的plist ,但之後無法訪問構建用戶的登錄鑰匙串。長話短說,充滿了心痛。
  • 系統設置爲在啓動時自動登錄「build」,以便Hudson開始運行。

最大的問題是編碼簽名和鑰匙串。

我們代表我們客戶的開發人員身份創建代碼,因此我們有幾個開發人員身份,我們將添加更多。

我想把Mini放在一個黑暗的房間裏,從來不看它,但是第一次用開發人員身份構建時,會彈出一個GUI對話框,詢問您是否要始終允許使用codesign來訪問開發人員標識。

假設您這樣做,該對話框會修改鑰匙串訪問控制列表(ACL),以便允許使用密碼。

您可以通過打開鑰匙串訪問,展開證書,選擇私鑰,右鍵單擊,選擇獲取信息,然後切換到訪問控制選項卡來查看此信息。 「處女」鑰匙在其「始終允許」應用程序列表中只有鑰匙串存取。在對話框中使用並確認的一個也會有編碼。

這個盒子提供了一種添加應用程序的方法,除非你得到隱藏Unix文件夾的標準Finder文件選擇器。沒有辦法導航到/ usr/bin/codesign。所以手動添加是不可能的!

有沒有人知道解決這個問題的方法?

I'm aware of one method使用「安全導入」的-T開關,但是當您首先導入密鑰時必須指定ACL,因此鑰匙串GUI中添加的任何密鑰都必須被丟棄並重新導入。不完全非常好。

+0

你有沒有找到解決方案?有同樣的問題。 – scootklein 2011-03-16 01:16:05

+0

在safari中,「vnc://miniName.local」是一種方式,您可以在每個項目中遠程使用一次機器。 Scootklein的解答與applescript看起來應該工作。 – 2011-03-22 12:50:36

回答

18

的鑰匙扣的獲取信息對話框禮物給你不會讓你訪問隱藏/ usr/bin目錄的文件系統通常是「潔淨」的版本,但我發現解決的辦法。

  1. 獲取正常的Finder窗口以顯示所有文件。如果你不知道如何做到這一點,check out this article
  2. 在正常的Finder窗口中,導航到/ usr/bin
  3. 將bin拖動到邊欄中的Places區域。現在,bin是您可以從任何地方訪問的快捷方式。
  4. 從鑰匙串的獲取信息 - >訪問控制窗格中,單擊「+」按鈕打開查找應用程序對話框。
  5. 單擊此側邊欄上位置下的垃圾箱。
  6. 導航至並選擇codesign。
  7. 單擊保存更改按鈕。
4

我找到了一個解決方案,在安全或certtool沒有運氣以添加ACL權限後,點擊「Always Allow」按鈕。

#!/usr/bin/osascript 
tell application "System Events" 
    tell window 1 of process "SecurityAgent" 
    click button "Always Allow" of group 1 
    end tell 
end tell 
3

好吧,這幾乎花了我半天的時間才弄清楚,但我現在有它的工作。我正在關注這個article

文章顯示添加這樣的證書與-A選項,但這不適合我。

security import "ADistribution.p12" -k appledev -f pkcs12 -A -P "" 

這個問題提到了-T選項,它爲我工作。

security import "Distribution.p12" -k appledev -f pkcs12 -P "" -T /usr/bin/codesign 
5

剛剛註冊說非常感謝大衛博克。偉大的解決方法,幫助了我很多。 但有一個更好的方法來做到這一點。

Open File Dialog press 'Cmd' + 'Shift' + '.' 

該組合應該切換文件系統上隱藏項目的可見性。 如果組合無效,請嘗試將演示模式更改爲「列表」或「網格」並再次嘗試。

謝謝,祝你好運!