Xcode 8显示配置文件不包含签名证书的错误

问题描述 投票:180回答:28

Xcode 8显示配置文件不包含签名证书的错误。

此问题仅适用于Xcode-8,Xcode 7,相同的配置文件显示相关的已识别证书。

ios iphone xcode8 provisioning-profile xcode11
28个回答
192
投票

有很多方法可以解决此问题,例如启用自动签名等。但是,如果您想了解此错误的原因,则需要查看错误消息。

它表示您在“常规”选项卡中选择的配置文件不包含您在“构建设置” - >“代码签名标识”中选择的签名证书。

如果在“构建设置” - >“代码签名标识”下为调试标识选择了分发证书,通常会发生这种情况。

如果在“签名(调试)”下发生这种情况,则可能是“签名身份” - >“iOS开发”未包含在配置文件中。


10
投票

您也可以使用伟大的Fastlane toolkit解决代码签名问题。作者投入了大量精力来有效地自动构建,签署iOS应用程序(以及更多)。

所以在提到的套件中,有工具sigh可以神奇地解决任何签名问题,因此名称:)这里的好东西是,这个工具封装了有关常见签名问题的知识,可以检测并解决大部分问题。

Fastlane作为Ruby gem安装:

gem install fastlane

然后简单地调用:

fastlane sigh --development

回答两个问题,瞧:

[11:56:55]: No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you
[11:57:01]: Creating new provisioning profile for 'com.myapp' with name 'com.myapp Development'
[11:57:06]: Downloading provisioning profile...
[11:57:09]: Successfully downloaded provisioning profile...
[11:57:09]: Installing provisioning profile...

最后,转到Build Settings - > Signing,然后切换到新创建的配置文件,其名称只是在命令输出中看到的。

此示例用于开发代码签名问题(在设备上运行)。检查sigh documentation的所有其他选项。


6
投票

在我的情况下,在钥匙串我有两个同名的证书,我删除了一个重复的证书,然后它解决了问题。


5
投票

有同样的错误。配置文件似乎更新,添加了新证书,我甚至在下载时检查了它。同时撤销了前开发人员的证书,不包括在配置文件中。但Xcode仍然问我以前的证书有错误:

No certificate for team 'MY_TEAM' matching 'iPhone Developer: FORMER_DEVELOPER' found

那么,我做了什么来解决它:

  1. Build Settings - > Signing - > Code Signing Identity
  2. 找到所有'FORMER_DEVELOPER'证书并选择所需。

希望它会对某人有所帮助。


4
投票
  1. 删除没有私钥的开发人员证书。
  2. 使用转到文件夹(〜/ Library / MobileDevice / Provisioning Profiles)从您的机器中删除配置文件
  3. 然后首先选中,然后选择团队,取消选中项目设置中的自动管理签名选项。
  4. 在Apple开发者帐户中唱歌并编辑配置文件,选择所有可用的开发人员证书,然后下载并添加到XCODE。
  5. 在项目构建设置中选择配置文件和代码签名标识

4
投票

“启用自动签名”,然后从下拉菜单中选择一个团队帮助我解决了这个问题。


2
投票

对我来说,上述解决方案都没有奏效。我正在从两个较旧的mac迁移到一个新的mac,试图让Xcode上的发布/调试配置文件无需Xcode自动管理它们。

我的解决方案是,当我去创建两个新证书时,我还必须进入我的配置文件,并在配置文件中添加(在分发和开发下)新证书,以便识别它们。执行此操作并下载后,xcode删除了所有错误,这很好。

希望这有助于某人!


2
投票

我收到了Apple发来的一封电子邮件:

亲爱的John Doe,

以下证书已被开发团队成员撤销或已过期:

证书:iOS开发

球队名称:Honey Team,LLC

这不会影响您已提交到App Store的应用或您更新应用的能力。如果您正在使用包含此证书的配置文件,则必须重新创建它们才能重复使用。有关详细信息,请参阅Xcode帮助的“应用程序签名概述”部分。

最好的祝福,

Apple开发者计划支持


我创建了一个新证书,该证书撤销了以前的证书(本地和任何其他开发人员的mac)。要使它工作,我必须下载新的配置文件。

解决方案是:

  • 登录Apple开发者帐户
  • 删除/撤消以我的名义创建的先前证书。
  • 将新证书添加到配置文件。您可以在到期日之前识别新的
  • 再次从Xcode下载它们。 Xcode >>帐户>>下载所有个人资料
  • 重启Xcode

我个人没有这样的访问权限。此访问仅适用于我们团队的管理员,因此我没有屏幕截图,也没有确定这些步骤是否100%正确。


2
投票

我还没有看到这提到但是如果您在重新创建配置文件后仍然遇到问题,请删除您在Provision Profiles文件夹中的现有配置文件,检查钥匙串中的欺骗行为等(所有其他答案ITT),打开您的目标>构建设置>代码签名,并确保一切看起来一致。例如,我已将调试的代码签名标识更改为分发标识,这显然不起作用,因为开发调配配置文件没有分发证书并且首先导致错误。


2
投票

如果您尝试将应用程序上传到iTunes Connect(您的配置文件设置为分发),请转到项目设置 - >构建设置 - >代码签名。确保将所有调试和发布选项都设置为Distribution Provisioning Provisioning Profile。


1
投票

我也有同样的问题。我改变了mac。当我下载Xcode证书时,您会收到一条错误消息:“错误是安全配置文件不包含证书签名。”

1)转到https://developer.apple.com/account/ios/profile/limited/edit选择项目=> edit => Certificates => Select All => Create => Download

2)在Xcode:Project file => Signing(Debug)=> Provisioning profile => Import profile =>选择文件1


166
投票

检查您的钥匙串以查找缺少私钥的身份。我为同一个团队安装了多个分发证书,其中一个丢失了私钥。 Xcode只检查钥匙串中的第一个匹配身份并自动使用此身份而不是包含私钥的身份。

enter image description here

删除没有私钥的匹配标识使Xcode再次检测到正确的标识。


1
投票

以下是为我解决的步骤(对于那些在XCode 9.2中遇到同样问题的人):

  1. 只需在〜/ Library / MobileDevice / Provisioning Profiles中手动删除本地配置文件。
  2. 从开发人员帐户中删除并创建了所有证书和配置文件。
  3. 从Xcode中删除了开发者帐户并重新添加。

解决了我的问题! :-)


0
投票

点击但随后取消“启用自动签名”对我有用,虽然它的实际更改是:

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

或者在Xcode中,它被称为Always Embed Swift Standard Libraries


0
投票

我有同样的问题,理由是便士。在构建设置中选择了错误的配置文件和证书。我只在几天之前做过这件事。因此,您不需要在xcode中启用“自动”。在执行之前检查构建设置中的配置文件。


0
投票

尝试直接从成员中心下载证书/配置文件,而不是从Xcode进行。

当我从会员中心手动下载它时,它对我有用。


0
投票

多年来我一直在努力奋斗。

步骤1:从开发者帐户中删除每个证书,配置文件,appID,密钥等。

第2步:重新创建推送通知证书,配置文件,应用程序ID等。

第3步:从钥匙串中删除所有证书。

步骤4:清除〜/ Library / MobileDevice / Provisioning Profiles中的所有配置文件。

步骤5:仅添加所需的配置文件并进行测试。它工作正常。


0
投票

这意味着您需要执行以下任一操作:

  1. 您应该已经在开发人员中心创建了一个证书,然后将该证书包含在您将导入XCode的供应配置文件中。
  2. 否则,如果您使用的是其他人创建的证书,那么让他们共享/导出他们的证书和私钥(.p12文件)给您,您需要将其包含在您的钥匙串中。请参阅here

当您无法从创建者那里获得证书和.p12文件时,#2的解决方案就是检查“自动管理签名”选项。


0
投票

发生这种情况是因为配置文件无法找到与其链接的证书的文件。

修理:

  1. 通过单击Apple Developer仪表板的“证书,标识符和配置文件”部分中的配置文件中的编辑,检查哪个证书链接到您的配置文件
  2. 从仪表板下载证书
  3. 双击该文件以将其安装在您的钥匙串中
  4. 将文件拖到Xcode中以确保链接

错误现在应该消失了。


0
投票

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

  1. 删除钥匙串中的所有iPhone Developer证书。
  2. 删除Apple帐户中的所有证书。
  3. 使用xcode“管理证书”来添加证书,有时你的Mac上仍然有证书,但我现在不知道它在哪里,如果添加成功,你的苹果帐户也会显示该证书,然后你可以创建你的该证书和下载的个人资料...转到5
  4. 如果使用“管理证书”无法添加证书,则可以创建新证书,并保留步骤。
  5. 完。

Code signing issue in Xcode version 8相同的答案。


0
投票

Xcode 11

这是我得到的错误

供应配置文件“XXX”不包括签名证书“​​Apple Development:XXX(XXX)”。```

现在,Xcode 11自动创建了一个对所有平台都有效的证书“Apple Development:XXX”

https://developer.apple.com/account/resources/certificates/list

你只需要

  1. https://developer.apple.com
  2. 去你的provisioning profile
  3. 检查是否选择了此证书

0
投票

我从已撤销的证书中获得了剩余的私钥,证书已经消失,但私钥没有。删除它们解决了这个问题。

找到它们:

  1. 打开钥匙串访问
  2. 单击左侧菜单中类别下的“键”
  3. 寻找iOS开发人员:......“没有证书的密钥
  4. 我删除了它们,问题就消失了

图中突出显示的键是没有证书的示例私钥。

The highlighted item was one key causing issues, deleting it solved issue


83
投票

要解决这个问题,

我只是在项目设置常规选项卡中启用“自动管理签名”,在启用之前我担心它可能有一些副作用,但一旦我启用它对我有用。

希望这对其他人有帮助! enter image description here


-1
投票

在我的情况下,问题是在Xcode Beta 11.5上对签名应用程序的方式有所改变,所以只需确保调试/发布配置证书都正确设置


51
投票

对于那些由于某种原因应该继续使用不是auotamatic的人

打开keyChain Access查看是否有两个相同的认证,如果有两个或更多,只需删除一个,它将工作:)


33
投票

我在最近将Xcode更新到版本9.3之后遇到了这个问题。问题出在代码签名(在调试下)证书设置为分发证书而不是开发证书,因此这阻止了我在我的设备上安装应用程序。

以下是我为解决此问题所做的工作。

项目 - >目标 - >选择您的应用程序 - >构建设置 - >代码签名身份 - >调试 - >双击“iPhone分发”并将其更改为“iPhone Developer”。


27
投票

我取消选中,然后选中“自动管理签名”选项。这为我解决了这个问题。


22
投票

为什么值得自动签名失败,直到我只是手动删除本地配置文件:〜/ Library / MobileDevice / Provisioning Profiles

在此之后,自动签名工作得很好,并且从Apple的服务器获得了正确的配置文件。

这只影响了一些构建,特别是我为手表应用程序手动创建了配置文件的构建。


17
投票

对于那些仍然在Xcode8中解决这个问题的人。对我来说是一个重复的证书问题,这是我解决它的方式:

我读了尼克的答案,然后我开始调查了。我在特定情况下检查了所有密钥和证书(在〜/ Library / Keychains / System.keychain内)。

当我打开文件时,我发现我有两个iPhone发行证书(这是Xcode要求我的证书),一个是我从一开始就使用的iOS发布私钥,另一个是iPhone发行证书。 private Key有一个名字(iOS Distribution:NAME),对我来说并不熟悉。我删除了最后一个证书,再次启动Xcode,问题就消失了。 xCode无法解决该冲突,这就是它一直给出签名证书错误的原因。

检查你的钥匙串,也许你有一个重复的证书。


12
投票

如果您使用手动签名(我肯定会鼓励),可能会发生此错误,因为Xcode认为它应该使用开发人员证书签署版本构建,这显然不包含在版本配置文件中。

有一个构建设置,用于定义哪个构建配置应使用哪个证书。要更改它,请转到构建设置并搜索代码签名标识。展开时,每个构建配置(通常是Debug和Release)应该有单独的行,在第二列中应该有所选的标识(通常是iOS Developer或iOS Distribution)。确保为每个构建配置设置正确的标识。

在某些情况下,还可以扩展构建配置。确保其子项目也设置为正确的标识。

© www.soinside.com 2019 - 2024. All rights reserved.