Xcode无法在您的钥匙串中找到此个人资料的有效私人证书/有效密钥对

时间:2011-04-02 19:43:32

标签: iphone objective-c cocoa-touch xcode provisioning

  

可能重复:
  Xcode - iPhone - profile doesn’t match any valid certificate-/private-key pair in the default keychain

我在安装由其他开发人员创建的配置文件时遇到问题。

  1. 开发证书已存在
  2. 正在开发的应用程序具有与证书相关联的配置文件
  3. 我的设备UUID已添加
  4. 该应用的AppID已存在
  5. 使用我的UUID
  6. 存在开发配置文件

    当我下载证书和配置文件时,我在管理器中收到错误:

    Xcode could not find a valid private certificate/valid key-pair for this profile in your keychain
    

    我该如何解决?

10 个答案:

答案 0 :(得分:64)

您还需要在申请证书时使用的私钥。

私钥用于对使用该开发者身份编译的每个设备二进制文件进行签名。您下载和导入的证书基本上只是您私钥上的一个标记,说“允许使用此密钥签名的代码在设备上运行”。

让其他开发人员导出生成原始证书签名请求时使用的密钥,然后将其导入您的计算机。

在Keychain中查看密钥是否与证书一起正确配对:

当一切正确到位后,您应该在证书上看到一个小的披露三角形,让您可以看到密钥(反之亦然,您应该在密钥页面上看到密钥下的证书)。否则关系不正确,导入过程中Keychain无法识别(在某些情况下导入续订证书时,我已经看到了这种情况,而过期的证书仍在钥匙串中)。

我最近试图将iOS开发人员证书的公钥/私钥对移动到另一台计算机上。公共文件使用Keychain Access导出到.pem,私有文件导出到受密码保护的.p12。

在另一台机器上,Keychain Access不会导入它们。解决方案是一个很好的旧命令行:

security import ios_priv.p12 -k ~/Library/Keychains/login.keychain 
security import ios_pub.pem -k ~/Library/Keychains/login.keychain

如果您在转移证书密钥时遇到问题,请尝试此操作。

<小时/> 编辑回复@ baudot的评论。(不适合评论)

确保您的钥匙串中还有Apple Developer Relations根CA证书。这就是用于验证证书的内容。

您也可以选择重新开始。只需从钥匙串中删除密钥和证书,在ADC门户上撤销它们并删除相关的配置文件。

删除所有内容后,您可以生成新密钥对和关联的证书签名请求。然后确保导出密钥并将它们存放在适合将来的好地方。

然后,您转到ADC门户网站,上传新的证书签名请求,生成新的配置文件,您就可以了。

唯一不可替代的是您的ADC帐户。所有其余的都可以恢复或重建。

我还建议你使用Xcode中内置的花哨的新自动配置。这样可以省去下载和导入配置文件的麻烦。它只是将现有的同步与ADC同步。

答案 1 :(得分:22)

这件事发生在我身上,因为我将配置文件放到了Xcode Organizer中设备的Provisioning Profiles部分,但没有放到Library的Provisioning Profiles部分。一旦我把它放在那里,警告就会在设备部分消失。

希望这可以帮助任何人...

答案 2 :(得分:5)

当证书正常时,重新启动Xcode以帮助它找到它。

答案 3 :(得分:3)

我有类似的问题。一种解决方案是从钥匙串中删除证书并请求新证书。 Apple在这里有一个非常详细的演练:

technotes

答案 4 :(得分:1)

我的证书过期后我遇到了这个问题,并且确定钥匙都很好并且位于正确的位置。我缺少的步骤是删除Provisioning Portal中的配置文件并重新创建它们。不要相信“更新”链接 - 它看起来像是一个诱人的捷径,但它对我来说不起作用!

因此,为了重新开始,您不仅需要从钥匙串中删除密钥和证书,还需要清除“配置”下的“开发和分发”选项卡的内容。

答案 5 :(得分:1)

我在10.6,Xcode 4.2上也遇到了这个问题。在尝试了很多其他的事情后,我终于退出Xcode并重新启动它。然后错误消息消失了。有数字。

答案 6 :(得分:1)

我只能通过使用 Xcode - &gt;来解决这个问题。 组织者 - &gt; 开发人员资料,然后点击右侧窗格底部的导出。这将保存您刚刚在目标计算机上打开/导入的统一.developerprofile文件。

免责声明:这可能不是海报原本打算实现的目标。但是我无法以任何其他方式成功地在我的机器之间移动私人+公共+证书。

答案 7 :(得分:0)

您必须在iOS配置门户中编辑配置文件。选择“编辑”按钮,然后选择“修改”。输入所需信息(您的姓名,设备,应用ID)。

当系统显示配置文件为“活动”时,请转到iOS配置门户的“证书”部分并检查您的开发证书。它应该在“配置文件”条目中列出您的配置文件。

之后,您可以下载配置文件并将其放入Xcode。

答案 8 :(得分:0)

如果您的旧Mac无法访问,但您具有ssh访问权限(如远在办公室多维数据集中的电源),则有一个解决方案。您只需使用命令行将钥匙串从旧机器复制到新机器:

scp user@oldmac:Library/Keychains/login.keychain ~/Downloads/oldmac.keychain
--or-- ssh oldmac; cp Library/Keychains/login.keychain ~/Dropbox/oldmac.keychain

在新Mac上,打开Keychain Access。转到文件 - &gt;添加Keychain并选择Downloads / oldmac.keychain

然后只需将oldmac钥匙串中的必要公钥复制到默认的“登录”钥匙串。

答案 9 :(得分:0)

现在遇到这个问题。

只需点击底部工具栏上的“刷新”,XCode 4就会为您下载并安装所有内容。