Xcode在您的钥匙链中找不到适用于此配置文件的有效私钥证书对。

59

[在立即标记为重复之前,我已经阅读了几篇具有相同问题描述的文章,但是在应用它们的答案之后没有解决方案]

几天前我创建了一个档案,并成功地能够在我的iPhone上运行该应用程序。

现在,我正在使用另一台笔记本电脑进行开发,由于不断收到“Xcode无法在您的钥匙串中找到有效的私钥证书对此档案”的消息而无法进展。 我尝试了与先前使用的相同iPhone/档案组合,还使用了另一部iPhone,并生成了一个新档案。 但是,我也收到了相同档案/电话的消息。

从这个网站的其他帖子中看来,当档案未被拖放到组织器的库部分时,人们会遇到此问题 - 我将档案拖到了Xcode上,并且在组织器的Library部分和Devices部分中都包含了相关的档案。

证书在Keychain Access中显示为有效。

有什么建议?

稍后添加:试图从苹果公司的问答中尝试:

https://web.archive.org/web/20141029102125/http://developer.apple.com/library/ios/qa/qa1618/_index.html

他们说在Keychain Access中单击.p12文件。 他们在说什么,.p12文件是什么,位于哪里? 它没有显示在他们自己的文档屏幕截图中,也没有出现在我的Keychain Access中。 它应该吗?

6个回答

162

最好的做法是从钥匙串中删除证书,然后重新获得它们,以便 XCode 4 的 Organizer 不再“困惑”。以下是 7 个“简单”的步骤:

  1. 删除您的证书:在 Mac 上打开名为 Keychain Access 的应用程序(您可以按键盘上的 command + space 来启动 Spotlight 并输入 Keychain Access 以启动它)。然后选择左侧列表中的 login 和下方列表中的 Certificates,您只需要删除以“iPhone Developer”或“iPhone Distribution”开头的证书。

  2. 您需要登录到 Apple iOS 开发人员帐户并前往 Provisioning Portal,然后单击左侧菜单上的 Certificates 选项来撤销旧的证书。然后找到您的开发者证书,单击右侧的链接“Revoke”来撤销它。

  3. 回到您的 Mac 上的 Keychain Access 应用程序,单击菜单栏中的以下菜单:“Keychain Access”-> “Certificate Assistant”-> “从证书颁发机构请求证书”。如果需要,只需输入您的电子邮件,并修改选项“Request is:”,选择选项“save to disk”……一个对话框将询问您要在哪里保存通常称为“CertificateSigningRequest.certSigningRequest”的 CSR 文件。

  4. 返回在线的 Provision Portal 并创建一个新的证书,上传刚刚生成的文件到与旧证书相同的选项中。

  5. 等待一分钟左右……您会发现在证书列表下方,您现在可以下载新证书并且还可以下载 WWDR 中间证书(请参见证书列表下方的链接)。下载它们并通过双击将它们提供给您的 Keychain Access

  6. 您需要前往名为“Provisioning”的供应门户网站菜单选项,您将看到所有应用程序的开发供应配置文件。您需要单击右侧的链接“编辑” - > “修改”,并验证所选证书。

  7. 最后,只需关闭“XCode 4”。当您重新打开它时,转到菜单“窗口” - > “组织者”。因为组织者从密钥链中读取证书,所以它们应该已经在那里了。下次插入您的设备时,只需单击Provisioning并确保旧的证书已被删除,新的证书已添加上去。


2
第六步是我所缺失的。在点击修改后,我发现另一个开发者的名字被选中了,而不是我的,这就是为什么我没有权限进行分发构建的原因。谢谢! - Mike
1
非常感谢……我之前一直通过 XCode 请求证书,这个方法很好用,并且可以自动在钥匙串中创建证书。但是我一直遇到同样的问题。你提供的第七点解决方案帮了我大忙:重启 XCode……现在就没有任何错误提示了 :) 非常感谢 - Abolfoooud
2
非常感谢!这是唯一一个在我切换到新机器或任何证书或配置文件有未知更改的情况下都能正常工作的答案。其他stackoverflow提示,如按post-Xcode4.3刷新按钮或导入/导出序列等都没有帮助。不幸的是,它基本上意味着您应该重新执行您在首次注册dev帐户时所做的操作。 - kakyo
顶级答案。谢谢。 - Sommm

3

我曾遇到同样的问题(更换了不同的系统),至少在 Xcode 4.5.2 (可能更早)中,你可以导出你的开发人员档案。要这样做,打开“组织者”窗口,点击“设备”选项卡,然后在菜单栏中选择“编辑”子菜单。会有一个开发人员档案条目,其中包含导入和导出操作。从之前的系统中导出档案,然后在新系统中导入它。你可以设置密码保护档案,这样你也可以将其放入 SVN/git/等版本控制工具中,以便跨多个系统使用。


3

出于某种原因,我发现我的钥匙串中没有苹果的根证书。我无法解释为什么,但经过大约3个小时的查找,我终于找到了解决方法。我从这里重新下载了它们:

http://www.apple.com/certificateauthority/


2

这可能是错误的证书或者在错误的密钥链中。我之前也遇到过这个问题。尝试将其移除,然后通过拖放手动重新添加它。 - Zepplock
有一个证书部分,其中包含iPhone开发者和iPhone分发证书,只有iPhone分发证书有密钥。此外,还有一个我的证书部分,其中包含iPhone分发证书,但不包括iPhone开发者证书。这正确吗?还是需要整理一下? - Gruntcakes

1

你的所有 Mac 上都没有完全相同的开发者证书私钥。你可以将工作正常的组合从钥匙串中导出为 .p12 文件,或者撤销你的开发者证书并创建一个新的证书和所有新的配置文件。


1

我从钥匙串中删除了所有内容,撤销了证书并删除了与之相关的所有内容,重新生成了一切,现在它可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接