证书在构建设置中的代码签名身份中不会显示

14
我遇到了以下错误:

未找到匹配的配置文件:没有携带有效签名身份(即证书和私钥对)的配置文件。

以及:

CodeSign 错误:在 SDK 'iOS 7.0' 中,产品类型为“应用程序”的代码签名是必需的

Xcode 在“构建设置”中的“代码签名”区域中除了“自动 iOS 开发人员和分发”选项外,没有其他选项可供选择。

我尝试将 Bundle ID 更改为与证书完全匹配的 ID,以及更通用的 com.domain.appname ID,我已经删除并重新创建了配置文件 - 我真的很失落,感觉应该是一些非常简单的问题,但我无法在设置中看到我的证书。

问题截图


你最近更换了Mac吗?据我所知,应用程序ID必须完全匹配。 - Hermann Klecker
你清理了项目吗?有时候Xcode没有更新匹配的配置文件。 - ldindu
请检查在iphoneconfig实用程序中是否存在配置文件。 - Agent Chocks.
Toby,我认为这个问题的相关答案适用于你 https://dev59.com/oGfWa4cB1Zd3GeqPgFdx#16488288 - Morgan Wilde
3个回答

16

当我遇到同样的问题并在这里阅读了一些答案后,感到非常震惊,因为解释都太复杂了。但我找到了一个简单的解决方法。

  • 打开钥匙串访问(Keychain Access)。删除iPhone Developer和iPhone Distribution证书,尽管它们仍然有效。

  • 打开苹果开发者中心(Apple Developer Centre)。再次下载iOS Development和iOS Distribution证书。是的,我再次下载它们,因为它们被写成XXXX-1.cer的形式。

  • 将它们拖到钥匙串(Keychain Access)中以重新导入它们。

  • 重新运行XCode。问题解决了。


2
如果您拥有企业账户,请注意此答案:如果您不在企业CSR的Mac上,或者您已经更改了钥匙串密码但尚未提交新的CSR,则会删除您的企业证书和所有应用程序。确保您在某个地方备份了有效证书的导出文件。 - Dan

9
我首先要检查的是您在Keychain Access中的证书是否存在,并且是否与您的私钥配对。如果它被列出,但是您的私钥没有配对,则您最近可能更改了Mac的密码,而不是按“更新Keychain”,您可能会单击“新建Keychain”。这将需要重新执行CSR过程,并将来自门户的新证书添加到现有的prov配置文件中。(此处提供一张截图可能有所帮助)。
接下来,我会确保XCode的组织者显示您的配置文件为有效,具有绿色的勾号。如果它们无效,XCode会告诉您原因。这可能是从缺少私钥到您的证书未添加到开发门户中的配置文件等任何问题。(此处提供另一张截图可能有所帮助)。
如果所有内容都看起来良好,请重新启动XCode。我曾经遇到过问题,直到我通过重新启动来迫使它进行快速的prov配置文件导入才可以解决。

我接受了这个答案,因为它是最接近解决我的问题的。事实上,我最近确实更改了Mac的密码,并且在处理我的钥匙串时遇到了一些麻烦,但即使在解决这些问题后,我仍然出现了错误。我不得不完全从头开始重新创建我的证书,包括从我的Mac在钥匙串中请求证书,就像你提到的那样。 - Toby
Xcode重新启动对我起了作用。有一个Xcode更新等待中,退出iTunes、模拟器并重新启动,对我来说效果很好。 - mask
1
我给它一个迅速的踢。现在这变成了双关语 :P - Daniel Ryan
1
我的问题是我在钥匙串中有两个证书。我删除了其中一个。然后我去Windows -> Projects并删除了具有问题的项目的派生数据。最后,我重新启动了应用程序,它完美地工作了。我正在使用Xcode 6.3.2。 - Jorge Casariego

0

对我来说有效的方法是在Apple门户网站上创建一个新的iOS Provisioning Profile,然后将其下载并添加到XCode的Organizer中。我的情况是从另一个用户账户导入项目,当Titanium编译项目时,它会使用与其他用户账户关联的iOS Provisioning Profile,导致崩溃。所以,在准备在“Run on iOS Device”对话框中编译时,我将Provisioning profile更改为新的。

正如之前所述,您需要查看Provisioning Profiles中针对您设备的绿色按钮(表示有效配置文件)。

祝好运!我花了两天时间解决这个问题!

Ren@ud


据推测,Toby拥有有效的配置文件,但在Xcode中找不到它。 - WolfLink

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