【发布时间】:2014-06-25 22:18:38
【问题描述】:
在尝试构建 iOS 项目(在 XCode 中)时,我需要导入同事的公钥和私钥以用于代码签名身份,但我无法这样做,因为我在 Keychain Access 中收到错误消息“发生错误。无法导入项目。/无法检索该项目的内容"
详细信息:
我从同事的电脑上得到了两把钥匙,将它们从他的钥匙串中导出为两个文件:
Roomer Inc.p12(私钥)
Roomer Inc.pem(公钥)
当他导出这些时,他将密码留空(尽管我们也尝试使用密码“test”并得到相同的结果)。
当我双击 Roomer Inc.p12(用于私钥)时,它会在 Keychain Access 中打开并提示我选择钥匙串(默认选择“登录”)
我点击“添加”,然后系统提示我输入钥匙串的密码(我将其留空)
接下来我总是在 Keychain access 中看到这条消息:
但是,尽管出现了此消息,但当我单击“确定”时,我看到了“Roomer Inc”的新私钥条目。请注意,正如我所料,此条目是“登录”密钥链中的私钥,但没有到期日期(应该吗?)
接下来,对于 Roomer Inc.pem 文件(公钥),我被要求选择钥匙串(“登录”),然后单击“添加”
然后,我也收到公钥的“发生错误。无法导入项目。/无法检索该项目的内容”消息。然而,在这种情况下(与私钥不同),我没有看到任何与我刚刚添加的内容相对应的条目。
因此,看来私钥条目可能正常也可能不正常(我无法验证),并且如果没有此错误消息,则无法将 Roomer 的公钥条目安装在钥匙串中。请注意,我也尝试使用安全导入命令来导入公钥:
$ security import Roomer\ Inc.pem -f pkcs12 ~/Library/Keychains/login.keychain
已导入 1 个密钥。
当我这样做时,虽然命令返回“1 key import”,但我在 Keychain Access 窗口中没有看到“Roomer Inc”的公钥(我关闭了 Keychain Access 并重新打开了它)。
不管怎样,我们已经确定这是我们的拦截器。 (当然,症状是 XCode 项目不会为要与 TestFlight 一起使用的 AdHoc 配置文件构建)。我已经省略了有关 XCode 构建和 TestFlight 设置的额外步骤,因为我们认为核心问题与导入密钥有关,如上所述。
【问题讨论】: