配置文件未包含应用标识符和钥匙串访问组权限。

200

我已经尝试了所有其他的问题并搜索了所有可能的信息,但是大多数其他的问题都涉及正在更新的现有应用程序或拥有开发者帐户的人,但这只是我第二次使用Xcode,而且以前一直工作正常。

这突然就出现了。我不断收到这两个错误,它允许我在模拟器上运行,但无法构建到我的 iPhone 上:

  1. 自动签名无法解决“LearningSpriteKit”目标的特权问题。 自动签名无法将“应用程序标识符”和“钥匙链访问组”特权添加到您的配置文件中。切换到手动签名,并通过从开发者网站下载相匹配的配置文件来解决问题。或者,要继续使用自动签名,请从您的特权文件中删除这些特权及其相关功能。

  2. 配置文件“iOS Team Provisioning Profile: #####.LearningSpriteKit”不包括“应用程序标识符”和“钥匙链访问组”特权。


9
我也遇到了这个问题。可能是全球性的事情,正在请求其他开发人员在https://ios-developers.slack.com上确认。 - yeralin
8
我也是一样!无法在iPhone上运行,只能使用模拟器。 - Renan Aguiar
6
我也一样,没有付费的开发者账户。 - Tieda Wei
6
是的,我也遇到了同样的问题。我认为这也是免费账户的一个问题。 - Piyush
10
同样的问题,付费账户。 - byemute
显示剩余27条评论
16个回答

64

3
很高兴听到苹果正在处理这个问题/已经对这个问题发表了看法。 - Jake
5
作废的证书并不能解释为什么苹果正在发放的新证书缺少必要的权限。 - David Gish
3
据我所了解,根据报告显示,他们目前实际上没有发放任何证书。在2019年3月7日,他们停止了TLS证书的发放,不确定是否仍有其他证书的发放。 - Bilfred
2
这个有更新吗?我觉得这应该是最高优先级。有什么新的解决办法吗? - Linus
9
目前我没有遇到这个错误,而是遇到了“iPhone已拒绝启动请求”的提示.. 有什么想法吗? - bezoadam
显示剩余9条评论

25

解决方法:更改Bundle Identifier和/或Version


6
在这里操作。如果无法成功,请尝试禁用“自动管理签名”,删除有问题的配置文件,更改Bundle Identifier,启用自动签名,然后添加您的团队。 - Chase Patterson
无法工作。没有错误或警告,但应用程序拒绝在设备上启动,就像这里描述的那样 https://dev59.com/TFcO5IYBdhLWcg3wrTcs - Fedorov7890
请问Bundle Identifier和Version应该写什么?我是一名自雇开发者,在自己的办公室工作。我分别为它们编写了一个字符串和一个数字,并且签名错误已经消失,但我认为无法在Qt Creator上使用iOS kit运行我的应用程序! - Franky
@Fedorov7890 要在设备上启动应用程序,您需要禁用方案中的_debug executable_复选框,如此评论所述 iPhone has denied the launch request。在删除开发帐户、清理 ~/Library/MobileDevice/Provisioning Profiles 和更改束标识符后,这个解决方法对我有效。 - david
@david 谢谢,我已经找到了一种替代方案,而不需要禁用调试可执行文件。https://dev59.com/b1MI5IYBdhLWcg3w2_jm#55160300 - Fedorov7890

23

当我使用 Time Machine 恢复了一个配置文件时,Xcode 在启动时立即删除并替换它为一个新的配置文件。主要区别似乎是旧配置文件具有 get-task-allow 权限,而新配置文件没有任何权限。这明显是苹果出了问题。

编辑:权限也应该包括一个钥匙串访问组,但是现在根本没有任何权限。应该像这样:

Good entitlements


21

编辑

根据最新更新,苹果已成功解决了免费账户的 "自动代码签名" 问题。

我已经尝试过并确认该问题已解决。

请您也在您的端上试一下。

更新

使用最新的XCode 10.2进行测试,功能正常,同时也改进了整个Xcode和代码签名的性能。

我在创建新的档案时也遇到了同样的问题,如果我去检查其他项目,仍然会出现与下面相同的问题。

输入图像说明

由于这个问题,我的所有项目都无法使用旧的配置文件和证书进行构建。

我发现一个奇怪的问题是,我比较了新创建的档案与旧档案,发现应用程序ID未知,并且新创建的档案中没有授权详细信息。

请查看以下截图,以比较新旧两个档案的差异:

旧档案:

输入图像说明

新档案:

在此输入图片描述

这意味着无法在新配置文件中设置App IdEntitlements。因此,所有旧的配置文件都无法正常工作,并在所有项目中显示相同的错误。

问题解决办法:

第一步:进入配置文件文件夹(路径:~⁨Library⁩ ▸ ⁨MobileDevice⁩ ▸ ⁨Provisioning Profiles⁩)。

或者使用快捷方式直接跳转到此文件夹,例如CMD + Shift + G并输入~/Library/MobileDevice/Provisioning Profiles,将会直接跳转到配置文件夹。

第二步:按修改日期对该文件夹内的文件进行排序。

第三步:检查未知App Id的配置文件并删除所有未知配置文件。

第四步:回到Xcode并检查所有旧项目是否可以如预期般工作。

注意:确保在进行以上更改时没有打开任何项目。 否则,它将创建一个具有未知App Id的新配置文件。

希望这能有所帮助,苹果会尽快解决此错误!


1
请问那个~Library路径在哪里? - Franky
1
@Franky ~/Library⁩/⁨MobileDevice⁩/Provisioning Profiles。虽然这个修复方法对我和其他人(如其他答案中所见)无效,但你的情况可能会有所不同。 - Bilfred
1
@Bilfred,我的macOS X是Sierra 10.13.6,在~Library中没有这样的路径! - Franky
谢谢,请注意,该文件夹中只有一个*..mobileprovision文件,该文件包含三个部分:iOS TEAM PROVISIONING PROFILECERTIFICATESPROVISION DEVICES。在iOS TEAM PROVISIONING PROFILE中,有一行带有App Unknown ID:*的内容,如此图像所示。现在我应该删除这个文件吗? - Franky
1
是的,删除那个文件,还有一件事,再试一次,苹果已经解决了上述问题。 - CodeChanger
它明确地表示提供的捆绑标识符已经创建,因此您需要创建新的捆绑标识符来解决此问题。 - CodeChanger

21

看起来苹果破坏了自动签名系统。我玩弄几个项目,Xcode 却获取到了错误的 profile。

对我有用的解决方法:

  1. 在项目目标中关闭 “自动管理签名”
  2. 前往~/Library⁩/⁨MobileDevice⁩/⁨Provisioning Profiles⁩
  3. 移除之前下载的 profiles
  4. 再次开启 “自动管理签名”

13
对我来说那行不通。另外我想你是指 ~/Library⁩/⁨MobileDevice⁩/⁨Provisioning Profiles⁩。 - Fedorov7890
1
@Fedorov7890 是的,已经更正了。你看到什么信息? - Oleh Zayats
1
备注:看起来它适用于昨天和之前创建的项目,但不适用于今天的项目。 - Fedorov7890
对我来说,它起作用了。我正在为Appium构建“集成应用程序”。感谢解决方案,Oleh Zayats。 - Ahamed Abdul Rahman
这个就解决了我遇到的问题,我已经折腾了5个小时 >.< - Eray T
这对我遇到的问题也起作用了。 - jamauss

18

更新:截至2019年3月20日7:00 UTC+0,此解决方案仍然有效。

解决方案:无需重新安装Xcode。我使用了一个全新的免费AppleId,但后来检查了一下我的旧AppleID,它也可以使用。

  1. In Xcode, under the General tab, untick the Automatically manage signing option
  2. Close Xcode.
  3. Erase old profiles in ~/Library/MobileDevice/Provisioning Profiles:

    cd ~/Library/MobileDevice/Provisioning\ Profiles
    
    rm -rf *
    
  4. On MacOS, run LaunchpadOtherKeychain Access and remove all certificates related to iPhone development, like the following four on the picture:

    • Apple Worldwide Developer Relations Certification Authority
    • Developer ID Certification Authority
    • iPhone Developer: your_name_or_email

      Remove certificates

  5. Uninstall the old app on iPhone. Restart both iPhone and Mac

  6. Open Xcode and change the Bundle Identifier of your app, at least one character (later you may revert this change)
  7. Enable the Automatically manage signing option in Xcode.
在此之后,您应该能够在您的设备上运行和调试您的应用程序。
如果您遇到“iPhone拒绝启动请求”的问题,则解决方案在Stack Overflow问题的答案中。
简而言之,您需要在Xcode中转到菜单ProductSchemeEdit Scheme...并选择Executable: ask on launch

如果我删除调试器选项,就会被拒绝午餐,因为只有在使用模拟器时才能进行调试。 - Renan Aguiar
@RenanAguiar,你不需要删除调试器选项,只需将“可执行文件”从下拉列表更改为“启动时询问”。请参见我帖子中显示如何以图片方式进行操作的链接。 - Fedorov7890
当我这样做时,同样的事情发生了。我看不到调试器图标,比如步骤和位置。只有在模拟器上才能看到。 - Renan Aguiar
我可以确认上面的答案对我有效。具体来说,该应用程序已构建、签名并下载到我的iPhone上。我正在使用免费的开发者帐户。(2019年3月14日) - FractalSpace
在更新的解决方案中,调试器功能完全正常。 - Fedorov7890
显示剩余2条评论

18

这个问题已经得到解决,但是仍有一些人遇到了问题。如果你是其中之一,请尝试以下方法:

1. 在目标设置的“通用”选项卡中,取消勾选“自动管理签名”选项

2. 关闭Xcode(完全关闭,不仅仅是你的项目)

3. 删除~/Library/MobileDevice/Provisioning Profiles/下的.mobileprovision文件

4. 在“钥匙串访问”中删除以下内容:

  • iPhone Developer: youremail@email.com
  • Developer ID Certification Authority
  • Apple Worldwide Developer Relations Certification Authority 3.

5. 删除你的iOS设备上的应用

6. 重启你的Mac和iOS设备

7. 再次打开Xcode

8. 更改包标识符(即使只是一个字符,完成后可以将其更改回原来的标识符)

9. 勾选“自动管理签名”选项

10. 使用USB连接你的iPhone/iPad

11. 确保在你的iOS设备上信任你的证书

这样应该能解决你的问题。


非常感谢,这是我尝试的第一件有效的事情。 - ShadowLightz
这解决了“iPhone已拒绝启动请求”的问题吗? - Fedorov7890
@Fedorov7890 对我来说是这样的,我认为对ShadowLightz也是这样的。 - Dani

11

看起来这个问题现在已经得到解决,个人帐户可以再次自动退出它们的应用程序。

关于@Paul的回答,与卸载Xcode无关。这是从服务器端修复的。

唯一需要做的就是从您的钥匙串中删除苹果开发者证书(个人帐户),以便Xcode重新生成并下载新证书。


仍然无法在设备上安装。即使使用新的免费Apple ID和证书。 - Fedorov7890
你把所有证书都移除了吗? - Husein Behboudi Rad
是的,我做了,此外我还清除了/Library/MobileDevice/Provisioning\ Profiles和/Library/Developer/Xcode/DerivedData并重新启动了iPhone。 - Fedorov7890
最终通过这个解决方法它可以工作了 https://dev59.com/0lQK5IYBdhLWcg3wHsZJ#54990369 - Fedorov7890
在哪里移除证书?是什么路径? - Franky

10
这里是解决方案:
  1. 打开Xcode。

  2. 选择您的开发者帐户,让错误再次出现。

  3. 进入钥匙链应用程序

4.a) 进入证书部分

4.b) 删除所有(有效和无效)证书(我有三个有效证书和很多无效证书!)

删除证书

  1. 删除最后一个证书后,macOS会自动为活动的开发者帐户重新创建新证书。

  2. 在您的iDevice上运行应用程序。 您需要输入系统密码将新创建的证书添加到钥匙链中。

如果第二次运行时显示:

您的iPhone已拒绝启动请求

只需转到:

ProductScheme → *edit scheme: 取消选中“Debug executable”

我希望它能解决您的问题。


4
无法!我无法在设备上进行调试或使用定位功能。 - Renan Aguiar
你好,谢谢。请问如何进入“钥匙串访问”?路径是什么? - Franky
你可能已经找到了,但是Keychain Access应用程序在Applications->Utilities中。 - David Gish
我仍然无法使用那些答案在 iPhone 上进行调试。 - Renan Aguiar

9
我通过以下步骤使其正常工作:
  1. 进入Xcode
  2. 首选项
  3. 账户
  4. 管理证书
  5. 加号
  6. iOS开发
  7. 完成
  8. 下载手动配置文件
  9. 关闭
  10. 进入您的目标
  11. 将开发团队更改为“无”
  12. 将开发团队更改为以前的团队
它应该能够工作。

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