Xcode 版本 8 中的代码签名问题

Code signing issue in Xcode version 8

我在 iOS 10 发布后将我的 Xcode 更新到版本 8。 Apple 对代码签名过程进行了一些更改,现在可以在目标设置的常规部分中使用。但问题是我的生产配置文件显示为不合格的。出现此错误消息:

"xxxproductionprovisioningprofile" doesn't include signing certificate "iPhone Distribution: xxx (xxx)".

我再次使用相同的分发证书创建了配置文件。分发证书也存在于钥匙串中。在 Xcode 版本 7.3 及更早版本中一切正常。任何帮助表示赞赏。

我也遇到过这个问题,并通过以下方式解决了这个问题:

1- 从钥匙串中删除我帐户的所有证书,

2- 从 xcode 中删除所有配置文件,然后

3- 通过 xcode 和

再次下载配置文件

4- 再次将证书添加到钥匙串。

我遇到了同样的问题,修复了它而无需再次删除和下载所有内容。

我只是启用了自动签名,等待它检测到我的签名证书,然后将其禁用。之后,我能够重新选择所需的配置文件,并按应有的方式检测到签名证书。

正如@mgentilc 所说,自动签名有效。只需在常规 -> 签名中启用自动管理签名,Xcode 将自动创建和更新配置文件、应用程序 ID 和证书。

按照以下步骤操作:

  1. Select 目标 --> 通用 --> 签约 --> select 想要的团队(必须是超级账号)
  2. 然后 select Target 中的构建设置,让开发团队与 Selected 团队保持一致。使用 iOS 开发人员设置具有自动和代码签名身份的供应配置文件。
  3. Select 项目 --> 构建设置。使用详细信息设置配置文件和代码签名身份

我遇到了同样的问题,我也尝试从我的登录钥匙串中删除所有证书,但问题仍然存在... 然后,幸运的是有一天,我打开系统钥匙串,发现添加了不止一个分发证书 there.I 从那里删除了那些。然后问题终于解决了:)

因此,如果您遇到此问题,请确保从登录和系统钥匙串中删除您的证书,然后将它们重新添加到登录钥匙串中。 希望对你有帮助。

好的,如果您不想删除所有临时配置文件和证书,也不使用自动临时配置文件,请尝试以下步骤:

  1. 从帐户中删除临时配置文件 (cmd + ,),您可以在其中查看与您的用户对应的所有临时配置文件的列表。

  2. 从钥匙串中删除证书(登录-证书-搜索导致冲突的证书)

  3. 从开发人员面板(证书、ID 和配置文件 - 供应配置文件)启用您的临时配置文件,它与您要使用的证书发生冲突。

  4. 手动下载你的临时配置文件(它的指示器应该是绿色)。

  5. 从开发人员面板,转到“证书”部分并下载与您在上一步中更新的临时配置文件关联的证书。

  6. 双击您下载的证书进行安装并确认它在钥匙串中

  7. 双击您下载的临时配置文件。

  8. 转到 Xcode(项目 - 目标 - 常规),在名为 "Singing (Debug or Release)" 的部分中,您可以在 Elegible 中看到新的临时配置文件。

它看到你需要更新它们(证书和临时配置文件),但是如果你删除一个,另一个会保留以前的引用并且Xcode不会自动更新。我这样做了,效果很好。

从 Xcode7 更新到 Xcode8 后,我遇到了同样的错误。我不需要安装证书。

  1. 在我的例子中,我只需要去 Xocde -> "Preferences"->"Accounts"

  2. 我必须重新登录我现有的帐户,登录是 过期了。

  3. 重要提示:在此之后,重新启动 Xcode

然后一切正常。

此致

我 运行 遇到了同样的问题,但为了解决它,我最终生成了一个额外的 'App Store provisioning profile' 和 'Ad hoc provisioning profile'。

希望对别人有帮助。

此问题是由于您个人资料中证书中的私钥与钥匙串中的私钥不匹配。 我通过

解决了这个问题
  1. 删除钥匙串中的所有 iPhone 开发人员证书。
  2. 删除苹果账户中的所有证书。
  3. 使用xcode"Manage Certificates"添加证书,有时你的Mac中还有证书,但我暂时不知道它在哪里,如果添加成功,你的苹果帐户也会显示该证书,然后您可以使用该证书创建您的配置文件并下载...转到 5
  4. 如果您使用"Manage Certificates"无法添加证书,您可以创建一个新的证书,然后做剩下的步骤。
  5. 完成。

在我的例子中,我的个人资料有有效的证书,但即便如此,它仍然显示其中的其他证书名称有误(选择了错误的证书)。我必须在代码签名下的构建设置中手动 select 正确的开发证书。