指定的权限不足以访问配置文件。(0xE8008016)。错误iOS 4.2

144
我在尝试将我的第一个应用程序部署到 iOS 4.2.6(Verizon)未越狱的设备上时,遇到了“可怕”的错误The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile. (0xE8008016)。问题是,我在项目中没有Entitlements文件,因为我根本没有分发它,只是把它放在一个设备上。我已经按照苹果的流程(证书、设备、预配)严格进行过所有设置,但我无法找出问题所在。请问有人能帮我解决这个问题吗?

建议您阅读以下帖子。https://dev59.com/iHM_5IYBdhLWcg3wXx1N http://discussions.apple.com/thread.jspa?threadID=2162558 - Jhaliya - Praveen Sharma
15
很奇怪,我被踩了一下。可以请踩我的人解释一下吗? - Richard J. Ross III
这个问题真的帮了我很多,因为事实证明我确实有一个授权文件(你提到它让我意识到了这一点)。在Build Settings > Code Signing > Code Signing Entitlements中删除引用后,我成功构建了这个项目。 - Geoff
40个回答

65

我自己遇到了这个问题,问题是我在项目中有一个Entitlements.plist文件,它作为adhoc分发的一部分,并且它的get-task-allow属性(即“可以调试”)被设置为NO - 将其设置为YES解决了问题并允许应用程序从Xcode4运行在开发设备上。

当然,在adhoc分发时需要将其设置回NO,但我想提一下,以防其他人遇到同样的问题。


谢谢!这让我很烦恼。 - alan
当我将应用程序分发为AdHoc ipa时,“get-task-allow = NO”使我的应用程序看到了iCloud。 - Tertium
7
顺便提一下,确保你在“目标 -> 构建设置”中正确指定了符号标识,而不是在“项目”中。目标会覆盖项目。我忘记了这一点,结果收到了0xE8008016错误消息。 - Tertium
还有一件事,如果您的应用程序在授权中使用了'iCloud Key-Value Store',则需要为调试版本删除此密钥。否则,即使您已将'get-task-allow'设置为YES,该应用程序也无法在设备上运行,并将继续出现此错误。 - strangetimes
更改了那个设置后,我不得不清理项目,但这很有效。 - Mike
这让我的一天变得轻松多了。 - Aleksander Azizi

50
我曾遇到Xcode 4.2.1的问题。 对我而言,与授权文件或Ad-hoc无关... 我在回到一个旧项目时,忘记了将我的新iPhone添加到授权证书中。 这是个愚蠢的错误,但也会有一个愚蠢的相应错误信息... :-/

7
看起来我们俩都犯了一个愚蠢的错误。 - Patrick Bassut
6
我希望我能够+2,这个问题的错误提示太荒谬了。如果没有您的帖子,我会搜索几个小时。 - Wesley Smith
谢谢指出,我也犯了这个愚蠢的错误。最终解决了。 - Gaurav

44

如果你在使用react-native,确保测试目标(Target)具有与主要目标相同的配置文件(provisioning profile)。


3
非常感谢,你救了我的一天。 - Julien Athomas
你救了我的一命。 - Theo Bendixson
非常感谢,你救了我的一天。 :) - pratik
我已经战斗了一个小时,直到看到你的评论,谢谢!! - cort
我内心一直很沉闷,直到我看到了这条评论。 - Dog
显示剩余5条评论

29

我曾经遇到了iCloud授权的问题。我的问题是我在Provisioning Portal中忘记为我的App ID启用了iCloud。

在为您的App ID启用iCloud后,您需要重新创建配置文件。


1
我又遇到了这个错误。我需要将我的新设备添加到开发配置文件中,然后在Xcode中刷新列表。 - adjwilli
遇到了同样的问题。这很奇怪,因为这个应用之前已经启用并且可以进行临时部署。 - raeldor
我遇到了与iCloud相关的授权问题,因为我的应用程序正在访问iCloud文档。我必须在“能力”部分更新iCloud授权。 - user3300864

20

将您的授权文件保存在Target>构建设置>代码签名>代码签名授权中。

前往目标 > 能力。 切换开/关或关/开其中一项能力。

运行。


这对我有用。但是我必须再次在构建设置页面中选择配置文件。 - Rinku
1
这对我有用。关联域已经为我打开了。我将其关闭,问题得到解决。 - BigRon

19

对我起作用的方法是完全删除权限文件,从组列表和项目及目标的“构建设置”中删除。然后我从目标的“摘要”选项卡中重新创建了权限文件,它可以正常加载而没有任何错误消息。


如上所述,权限值也必须在构建设置中手动删除。 - petershine
1
删除权限文件并重新添加它对我有用 - 我也进行了清理。 - Jasper
这是我的解决办法!我检查了项目和目标构建设置。在代码签名部分有一个名为“代码签名权利”的设置 - 我展开它,突出显示了调试和发布行,并按下了删除键。这样一来,我的应用程序就可以没有任何错误地构建了。然而,它仍然无法进行调试 - 它立即退出并在控制台中显示一条消息,我将不得不去找出原因。 - Jay Imerman
1
当尝试运行iOS8的HealthKit“fit”应用程序时,这也起作用 - 在授权文件中有一个额外的标识符字符串。在遵循本主题中提到的其他步骤后,删除它允许项目运行。 - Alex Stone
这解决了我的iCloud问题。似乎在授权文件中有几个不需要存在的额外设置。删除它们,然后将“常规”选项卡重新构建即可解决问题。 - AndyDunn
在我的情况下,Xcode 显示在我的设备上构建成功了,但实际上设备上什么也没有发生。然而,验证导出的二进制文件会失败并显示错误。非常感谢! - Clifton Labrum

15

这里只是提供我的个人经验。对我而言,以上方法都没有起作用,所以我被迫放松下来,重新审视整个过程的每一个部分。

由于匆忙,我忘记了我正在尝试在全新设备上安装我的应用程序。

所以我的错误在于我没有更新我的配置文件,在配置文件设置中的“设备”部分中勾选我的新设备。

显然,在配置文件中不包括您的设备也会生成此错误消息。


同意 - 如果您的配置文件不正确,您可能会遇到此错误。 - Matt

12

有关 0xE8008016 错误,众多答案都没有为我解决问题。

但是当我在 Xcode 4 > 组织者 > 设备 > 签名配置文件 中选择“自动设备配置”,问题终于得到了解决。


1
太棒了!我也成功了。我认为这是所有方法的综合作用,因为该应用程序最初是使用XCode 3开发的,然后升级到4.2,我从项目中删除了Entitlements.plist文件,在Build Settings/Code Signing部分中删除了代码签名授权条目,然后将配置文件设置为自动。最后一个方法解决了问题。 - Jay Imerman
这也是我的问题,只不过它自动选择了错误的配置文件,手动选择正确的配置文件后问题得到解决。 - Abhi Beckert
1
这对我有用。我不确定是如何删除了一些iOS开发团队的预配资料,但在你提到的预配资料页面中点击刷新解决了这个错误。 - sean808080

11
在我的情况下,这是一个愚蠢的错误。我不正确地设置了“运行”方案来使用“发布”构建配置,而不是“调试”或“发布”之一。 这是一个愚蠢的错误,但我花了一些时间来调试它,所以我将添加我的答案来改进在Stack Overflow上的知识库!

10

删除您的预配文件,执行“清除所有”,确保您的预配设置正确,重新下载并尝试再次运行。


你使用的Xcode版本是什么?如果是4.0,可能会出现问题。你可能需要重新启动Xcode甚至重新启动你的Mac。确保项目和目标中的配置设置正确。尽管如此,目标设置优先于项目设置。 - W Dyson
我认为这是设备的问题,它是来自Verizon的iPhone 4,并且使用相同的配置文件,我可以将应用部署到我的iPad上..有其他人遇到过来自Verizon的iPhone 4的这个问题吗? - Richard J. Ross III
你是否在使用旧的配置文件?您需要在配置门户中将Verizon iPhone添加为设备,然后更新开发配置文件,重新下载并安装新的配置文件。如果这样做不起作用,您需要提供更多信息。 - W Dyson
我昨天刚设置了配置文件,怎么可能是旧的呢?苹果刚批准我的开发者请求,所以这是全新的。无论如何,我们更新到iOS 4.3后再看看它的效果如何。 - Richard J. Ross III
一个“清理”就解决了我的问题。-_- - Cœur

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