【问题标题】:Can't import Code-signing Public or Private keys using Keychain access (Mac OS X Mavericks)无法使用钥匙串访问导入代码签名公钥或私钥(Mac OS X Mavericks)
【发布时间】: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 设置的额外步骤,因为我们认为核心问题与导入密钥有关,如上所述。

【问题讨论】:

    标签: ios xcode key keychain


    【解决方案1】:

    我们发现了我们的问题,我在这里发布我的答案,以便其他人可能会发现它有帮助。

    问题实际上是 Keychain Access 的 UX 问题。让我备份并提供一点背景信息:当您使用 Apple 创建分发证书时,您会根据 PRIVATE KEY 和基于应用程序的权限创建它。

    在 Keychain Access 中,分发证书在创建它的私钥名称下方作为子项列出。这里有一个问题:当您使用钥匙串访问中的搜索框时(在我的例子中,我们输入“Roomer”,因为这是我们的分发证书上的名称),它不会查找具有该名称的证书,它会查找附加到该名称的私钥的证书。

    所以我的同事基于名为“Jorge Davila”(他的名字)的私钥创建了一个分发证书,尽管分发证书的名称是“iPhone Distribution: Roomer Inc.”

    当他在 Keychain Access 中搜索“Roomer”时,搜索结果中没有显示正确的,因为创建此证书的密钥被命名为“Jorge Davila”而不是“Roomer”。因此,他导出了错误的证书并且没有意识到,因为还有其他人(有些已过期)使用该名称。

    以下是正确的外观:

    这是 Keychain Access 的 UX 的一个相对细微的问题,而且搜索工具无法为您提供您期望的结果。我发布此答案是希望其他人可能会发现它有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-14
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-17
      • 1970-01-01
      相关资源
      最近更新 更多