由于钥匙串中没有密钥,因此XCode代码签名错误

时间:2013-02-28 14:46:09

标签: ios xcode key keychain signing

你可能会想,不再是这样一个问题,已经有成千上万的话题。但是,我没能找到解决这个问题所需的答案。

这些主题都没有密钥链那么深。

当我尝试将我的应用部署到iPhone时,我收到以下消息:

Code Sign error: The identity 'iPhone Developer: [Name] ([ID])' doesn't match any valid, non-expired certificate/private key pair in your keychains.

现在,如上所述,我一直在寻找多个指南或修复程序,但是,他们似乎都没有解决这个问题。

我尝试过的事情:

  • 无数次使用Apple的演练进行应用部署
  • 在互联网上搜索应用部署指南
  • 更改了'xcodeproj'包中'pbxproj'文件的内容。
  • 使用xcode 4.6中的“刷新”按钮从Apple服务器检索所有可用的配置文件(允许您自动获取)

在尝试了所有这些方法之后,我仍然无法解决问题。我看到的一个问题是,第一手钥匙串中的证书显示无效状态,现在已经解决了。

但是,如果我是对的,那么证书上应该有两个密钥。公钥和私钥,这些都没有显示。

Keychain Access中的Keys选项卡中没有显示任何键。

解决方案(感谢nsgulliver)

  1. 完成nsgulliver的帖子(标记为解决方案)所说的一切。
  2. 如果您已有活动证书,请单击撤销按钮,这不会造成任何麻烦,您只需重新创建密钥,然后生成新证书。
  3. 确保安装了Apple的WWDR以将证书颁发机构标记为有效。
  4. 遵循默认的Provisioning Assistent准则。

6 个答案:

答案 0 :(得分:1)

设备上安装的配置文件或针对目标进行签名的配置文件可能无效,请尝试转到Organizer->Provisioning profile并查看配置文件是否具有有效状态?如果没有尝试删除&刷新它们,如果它们在刷新后显示有效则可以解决您的问题,如果没有那么您应该从keychain中删除所有条目并删除配置门户上的配置文件并尝试从头开始创建,如果您仍然遇到问题然后从step by step guide tutorial

获取帮助

答案 1 :(得分:1)

你不能重新创建匹配的密钥,这会破坏它们的整个目的。您需要找到旧密钥或从头开始签名过程。

您使用的是生成密钥的机器吗?如果没有,请转到另一台计算机,导出开发人员配置文件,然后将其导入新计算机。

您可以从备份中恢复密钥吗?如果没有,请停止您正在执行的所有操作,并在执行任何其他操作之前将计算机配置为备份。

如果您真的遇到困难,您必须从一开始就遵循签名程序,您可以从证书颁发机构申请证书。这将生成新密钥,您必须创建匹配的配置文件,然后将您的应用程序设置为使用这些配置文件进行签名。删除旧的配置文件,没有旧密钥,它们将毫无用处。

答案 2 :(得分:1)

当您遇到代码签名问题时需要阅读:

Technical Note TN2250: iOS Code Signing Troubleshooting

除了真正了解证书中的内容以及证书中的内容,保存必要内容以及如何使用外,没有什么比这更能帮助您了解更多内容。这不是您最后一次遇到代码签名问题,本技术说明提供了一个长清单,可帮助您确保所有内容都在正确的位置,以帮助您开发应用并最终签名并提交给应用程序商店。

答案 3 :(得分:0)

当我在过去遇到这个问题时,我刚刚删除了本地计算机上的所有内容并重新开始。所以:

  1. 在Keychain访问中删除与您的开发者帐户关联的密钥。
  2. 在XCode中打开“管理器”(窗口 - >管理器)
  3. 在设备(顶层菜单)和配置文件(左侧菜单)中,选择所有配置文件并将其删除。
  4. 现在点击刷新。它会要求您登录以及是否要生成新密钥等,选择是并等待。
  5. 我发现这是修复任何配置/关键问题的最快方法,因为你可能花费数小时发现你错过了一些小事。

答案 4 :(得分:0)

您需要锁定钥匙串。请查看屏幕截图:

enter image description here

答案 5 :(得分:0)

在删除所有旧的供应配置文件(~/Library/MobileDevice/Provisioning Profiles/)并更新xCode之后,可以再次找到证书。