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

11

在iOS 10发布后,我将Xcode更新到了版本8。苹果在代码签名过程中进行了一些更改,并且现在可以在目标设置的“通用”部分中找到它。但问题是我的生产配置文件显示为不合格。出现了以下错误信息:

"xxxproductionprovisioningprofile"未包含签名证书 "iPhone Distribution: xxx (xxx)"。

我试图再次使用相同的分发证书创建配置文件。该分发证书也存在于钥匙串中。在Xcode版本7.3及更早版本中,一切都正常工作。感谢任何帮助。

10个回答

29

我也遇到过这个问题,解决方法如下:

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

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

3- 通过Xcode重新下载配置文件并且

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


@RohitaxRajguru,欢迎。您可以接受答案作为帮助其他人的提示。 - Husein Behboudi Rad
3
尝试了所有方法,但没有帮助。这在Xcode更新中很典型,苹果想要让开发者的生活更轻松,结果只会变得更加复杂。 - turingtested
我对这个不太熟悉,但如果我从钥匙串中删除了所有证书,我该如何获得与我以前使用的相同的证书? - Trip
这个解决方案可以通过Fastlane工具以较少侵入性的方式自动化,就像我在这里回答的那样:https://dev59.com/91kS5IYBdhLWcg3wp4XO#41395249 - Tomek Cejner
这对我有用!太神奇了! - Steve Kamau
显示剩余2条评论

7
我曾经也遇到过相同的问题,尝试了从我的登录钥匙串中移除所有证书,但问题仍然存在... 幸运的是,有一天,我打开了系统钥匙串并发现有多个分发证书添加在那里。我把它们从那里删除了。接着,问题终于得到了解决 :) 所以,如果你也遇到这个问题,请确保从登录和系统钥匙串中删除您的证书,并将它们重新添加到登录钥匙串中。 希望能对你有所帮助。

1
这对我有用! - Steve Kamau

4

我遇到了同样的问题,但并没有必要删除和重新下载所有内容就可以解决。

我只需启用自动签名,等待它检测到我的签名证书,然后禁用它。之后,我能够重新选择所需的配置文件,并且签名证书被正确检测到了。


3
好的,如果您不想删除所有临时配置文件和证书,也不想使用自动临时配置文件,请尝试以下步骤:
  1. 从账户中删除临时配置文件(cmd +,),在其中您可以查看所有根据您的用户列出的临时配置文件列表。

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

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

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

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

  6. 双击下载的证书以安装并验证其是否在钥匙串中

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

  8. 进入Xcode(项目-目标-常规),在名为“签名(调试或发布)”的部分中,您将可以在合格中看到新的临时配置文件。

看起来您需要更新它们两个(证书和临时配置文件),但是如果您删除其中一个,另一个将保留先前的引用,并且Xcode不会自动更新。我这样做了,它完美地工作。

2
我从Xcode7升级到Xcode8后遇到了相同的错误。我不需要安装证书。
以下是解决方法:
  1. 进入Xocde -> "Preferences"->"Accounts"
  2. 重新登录现有帐户,因为登录已过期。
  3. 重要提示:完成上述步骤后,请重新启动Xcode
然后一切都会按照预期工作。
祝好!

1

按照以下步骤:

  1. 选择目标 --> 通用 --> 签名 --> 选择所需的团队(必须是超级账户)
  2. 然后在目标中选择构建设置,将开发团队与所选团队保持一致。将配置文件设置为自动,并将代码签名标识设置为iOS开发人员。
  3. 选择项目 --> 构建设置。使用详细信息设置配置文件和代码签名标识。

1
这个问题是由于您资料中证书的私钥与密钥链中不匹配。 我是这样解决的:
  1. 删除密钥链中所有 iPhone 开发者证书。
  2. 删除 Apple 账户中的所有证书。
  3. 使用 Xcode 的“管理证书”来添加证书,有时您的 Mac 上仍然存在证书,但我现在不知道它在哪里。如果成功添加,则您的 Apple 帐户也将显示该证书,然后您可以使用该证书创建配置文件并下载...转至第5步。
  4. 如果您使用“管理证书”无法添加证书,则可以创建一个新证书,并执行剩余步骤。
  5. 完成。

有时候我发现需要重新启动系统。 - Amit

1
正如@mgentilc所说,自动签名是可行的。在“常规”-“签名”中启用“自动管理签名”,Xcode将自动创建和更新配置文件、应用程序ID和证书。

1
我曾经遇到过同样的问题,这个方法对我有效。花了我一些时间才弄清楚如何获取上面提到的“General”部分。在常规设置中,您需要切换到“目标”,也就是应用程序。 - Ben
是的。谢谢你添加这个。 - yiqi chen
这对我也有效。XCode > 打开项目 > 在左侧点击项目名称 > 取消自动管理签名 > 再次选择自动管理签名 > 选择团队 > 运行security find-identity -v -p codesigning 应该现在显示1个有效身份。 - Dean Meehan

1

我遇到了同样的问题,但为了解决它,我最终生成了额外的“应用商店预配配置文件”和“Ad hoc 预配配置文件”。

希望这能帮助其他人。


0
在我的情况下,我的个人资料有有效的证书,但仍然显示错误,并带有其他证书名称(选择错误的证书)。我不得不在构建设置下的代码签名中手动选择正确的开发证书。输入图像描述

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