簡體   English   中英

無法使用Keychain訪問導入代碼簽名公鑰或私鑰(Mac OS X Mavericks)

[英]Can't import Code-signing Public or Private keys using Keychain access (Mac OS X Mavericks)

為了構建一個iOS項目(在XCode中),我需要導入我的同事的公鑰和私鑰以獲取代碼簽名身份,但我無法這樣做,因為我在Keychain Access中收到錯誤消息“發生。無法導入項目./無法檢索此項目的內容“

詳細信息:

我從同事的電腦上拿了兩把鑰匙,把鑰匙扣作為兩個文件導出:

Roomer Inc.p12(私鑰)

Roomer Inc.pem(公鑰)

當他導出這些時,他將密碼留空(雖然我們也嘗試使用密碼“test”並得到相同的結果)。

當我雙擊Roomer Inc.p12(私鑰)時,它會在Keychain Access中打開並讓我選擇鑰匙串(默認情況下選擇“登錄”)

我點擊“添加”,然后提示我輸入鑰匙串的密碼(我留空)

接下來我總是在Keychain訪問中看到此消息:

錯誤的屏幕截圖

但是,盡管出現此消息,但當我單擊“確定”時,我會看到“Roomer Inc”的新私鑰條目。 請注意,此條目是“登錄”鍵鏈中的私鑰,正如我所料,但沒有到期日期(應該嗎?)

接下來,對於Roomer Inc.pem文件(公鑰),我被要求選擇鑰匙串(“登錄”),然后點擊添加

然后,我也得到“發生錯誤。無法導入項目。/該項目的內容無法檢索”公共密鑰的消息。 但是在這種情況下(與私鑰不同),我沒有看到任何與我剛添加的內容相對應的條目。

因此,看起來私鑰條目可能或可能不正常(我無法驗證),並且如果沒有此錯誤消息,則無法在密鑰鏈中安裝Roomer的公鑰條目。 請注意,我還嘗試使用security import命令導入公鑰:

$ security import Roomer \\ Inc.pem -f pkcs12~ / Library / Keychains / login.keychain

1鍵進口。

當我這樣做時,雖然命令返回“1 key import”,但我沒有在Keychain Access窗口中看到“Roomer Inc”的公鑰(我關閉了Keychain Access並重新打開它)。

無論哪種方式,我們都發現這是我們的攔截器。 (當然,症狀是XCode項目不會為AdFoc配置文件構建,以便與TestFlight一起使用)。 我沒有關於XCode構建和TestFlight設置的其他步驟,因為我們認為核心問題與導入密鑰有關,如上所述。

我們發現了我們的問題,我在這里發布我的答案,以便其他人可能會發現它有用。

問題實際上是Keychain Access的UX問題。 讓我備份並給出一些上下文:當您使用Apple創建分發證書時,您可以基於PRIVATE KEY和基於應用程序的權限創建它。

在Keychain Access中,分發證書在其創建的私鑰名稱下面列為子級。 這里有一個問題:當您在Keychain訪問中使用搜索框時(在我的情況下,我們輸入“Roomer”,因為這是我們的分發證書上的名稱),它不會查找具有該名稱的證書,它將查找附加到該名稱的私鑰的證書。

因此,我的同事根據名為“Jorge Davila”(他的名字)的私鑰創建了分發證書,即使分發證書名為“iPhone Distribution:Roomer Inc.”

當他在Keychain Access中搜索“Roomer”時,搜索結果中沒有顯示正確的那個,因為此證書的密鑰被命名為“Jorge Davila”而不是“Roomer”。 因此,他出口了錯誤的證書並沒有意識到,因為有其他人(有些人已過期)有這個名字。

以下是正確的看法:

這是Keychain Access的用戶體驗中一個相對細微的問題,而且搜索工具沒有為您提供您期望的結果。 我發布這個答案,希望其他人可能覺得它很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM