指定的权利…个人资料。(0xE8008016)。错误iOS 4.2


142

The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile. (0xE8008016).尝试在iOS 4.2.6(Verizon)上将我的第一个应用程序部署到未越狱的设备时,出现“ dreaded”错误。问题是,Entitlements file我的项目中没有,因为我根本不分发它,而只是将其放在一个设备上。我经历了苹果遇到的所有麻烦和循环(证书,设备,预配),直到问题的根源,但我无法弄清楚出了什么问题。

谁能帮我解决这个问题?



15
真奇怪,我投反对票。请问这样做的人可以解释一下吗?
理查德·罗斯三世

这个问题确实对我有帮助,因为事实证明我确实有一个权利文件(而且您提到它使我意识到了这一点)。删除中的引用Build Settings > Code Signing > Code Signing Entitlements使我可以构建此项目。
Geoff

Answers:


64

我本人刚刚遇到此问题,问题是我在项目中有一个Entitlements.plist文件作为临时分发的一部分,并且其get-task-allow(即“可以调试”)属性设置为NO。 -将此设置为“是”可解决问题,并允许应用在开发中的设备上从Xcode4运行。

自然需要将其临时分发设置为NO,但是我想我提到了它,以防其他人遇到相同的问题。


谢谢-这终于解决了我的问题。
EasyCoder 2011年

谢谢!那是杀了我。
阿兰

当以AdHoc ipa分发时,“ get-task-allow = NO”使我的应用看到iCloud。
Tertium 2012年

7
顺便说一句,检查您是否在Target-> Build Settings中而不是Project中指定了正确的标识身份 。目标优先于项目。我忘记了这一点,并收到了0xE8008016错误消息。
t

还有一件事,如果您的应用在权利中使用“ iCloud密钥-值存储”,则需要为调试版本删除此密钥。否则,即使您将“ get-task-allow”设置为“ YES”,该应用也无法在您的设备上运行,并且会继续出现此错误。
奇怪的时候2015年

50

我在Xcode 4.2.1中遇到这个问题。

对我而言,这与权利文件或临时文件无关。

我回到了旧项目,却忘了将我的新iPhone添加到配置中。

愚蠢的错误,但也愚蠢的相应错误消息...:-/


7
我们俩显然都犯了愚蠢的错误。
Patrick Bassut

5
我希望我可以+2,对于这个问题,这真是一个荒谬的错误消息。如果没有您的帖子,我会搜索几个小时。
Wesley Smith

感谢您指出这一点,我也犯了这个愚蠢的错误。终于解决了。
Gaurav

44

如果您使用的是本机响应,请确保测试目标具有与主要目标相同的配置文件。


3
非常感谢,您保存了我的一天
Julien Athomas

您保存了我的培根
Theo Bendixson

非常感谢。你救了我的日子。:)
Pratik '18

我一直奋战一个小时,直到看到您的评论,谢谢!
ivmos

直到遇到这个评论,我才彻底死了。

29

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

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


1
我再次遇到了这个错误。我需要将新设备添加到开发配置文件中,然后在Xcode中刷新列表。
adjwilli 2012年

有同样的问题。奇怪的是,因为此应用已启用并且以前可以进行临时部署。
raeldor

我的应用正在访问iCloud文档时,我遇到了与iCloud相关的权利问题。我必须在“功能”部分中更新iCloud权利。
user3300864'7

20

将您的权利文件保留在“目标”>“构建设置”>“代码签名”>“代码签名权利”中。

转到目标>功能。切换开/关或关/开功能之一。

跑。


这对我有用。但同样,我必须在构建设置页面中选择配置文件。
Rinku 2015年

1
这对我有用。关联域已为我启用。我关闭它,问题就解决了。
BigRon 2015年

19

对我有用的是从组列表以及“项目”和“目标”中的“构建设置”中完全删除权利文件。然后,我从目标的“摘要”选项卡中重新创建了权利,并且加载得很好,没有任何错误消息。


如上所述,还必须在“构建设置”中手动删除权利值
petershine 2012年

1
删除的权利文件并添加它再次为我工作-我做了一个干净的太
贾斯珀

这是我的钥匙!我检查了项目和目标构建设置。在“代码签名”部分中,有一个设置“代码签名权利”-我展开,突出显示了调试和发布行,然后按Delete键。然后,这使我的应用程序得以构建而没有任何错误。但是,它仍然无法调试-它会立即在控制台中退出并显示一条消息,我将不得不对其进行查找。
杰伊·伊曼

1
当尝试运行iOS8的HealthKit“ fit”应用程序时,此方法效果很好-权利文件中还有一个附加的标识符字符串。删除它可以使项目在执行此线程中提到的其他步骤之后运行
Alex Stone

这解决了我的iCloud问题。似乎“权利”文件中有一些额外的设置,这些设置不需要存在。删除它们以及全部并重新生成“常规”选项卡即可。
AndyDunn

15

只需在这里投入我的5美分。对我来说,以上所有方法均无效,因此我被迫减轻压力,并以崭新的眼光看待过程的每个部分。

在匆忙执行此操作时,我忘记了我正在尝试在全新设备上安装我的应用程序。

因此,我的错误是我没有通过在Provisioning Portal中的Provisioning Profile设置的“ Devices”部分中选中新设备来更新我的Provisioning Profile。

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


同意-如果您的配置文件权限不正确,则会出现此错误。
马特

12

许多答案都没有为我解决0xE8008016错误。

但是,当我在Xcode 4> Organizer> Devices> Provisioning Profiles中选择“ Automatic Device Provisioning”时,它终于可以工作了。


1
糟透了!也为我工作。我认为这是以上所有方面的结合,因为该应用程序最初是使用XCode 3开发的,后来又提升到4.2,所以我从项目中删除了Entitlements.plist文件,并删除了“构建设置/代码”中的代码签名权利条目在“签名”部分,然后将供应配置文件设置为自动。最后一个做到了。
杰伊·伊曼

这也是我的问题,除了它会自动选择错误的配置文件,并通过手动选择正确的配置文件解决了该问题。
阿比贝克特(Abhi Beckert)2012年

1
对我来说就做到了。我不确定如何删除一些iOS开发者团队的配置文件,但是在您引用的“配置文件”页面中单击刷新会为我解决此错误。
sean808080 2013年

11

就我而言,这是一个愚蠢的错误。我错误地将“运行”方案设置为使用“分发”构建配置,而不是“调试”或“发布”配置。愚蠢的错误,但是花了一些时间对其进行调试,因此我将添加我的答案以改善堆栈溢出内部的知识库!


10

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


您正在使用哪个版本的Xcode?如果是4.0,则表示存在问题。您可能必须重新启动Xcode甚至重新启动Mac。确保配置设置在项目和目标中都正确。但是,目标设置优先于项目。
W Dyson

我认为这是该设备的问题,它来自Verizon的iPhone 4,并且具有相同的配置文件,因此我可以将应用程序部署到我的iPad。
理查德·罗斯三世

您是否使用旧的配置文件?您必须将Verizon iPhone添加为Provisioning Portal中的设备,然后更新开发配置文件,重新下载并重新安装新的配置文件。如果这不起作用,则您将不得不提供更多信息。
戴森

我昨天刚刚设置了配置文件,它可能过时了?苹果刚刚批准了我的开发者要求,所以它是全新的。无论如何,当我们随后更新到iOS 4.3时,我将看到它的工作原理。
理查德·罗斯三世

“干净”为我做到了。-_-
2013年

5
  1. 在Safari中打开“ iOS Provisioning Portal”。
  2. 点击边栏中的“设备”。
  3. 注册设备的UDID
  4. 点击“配置文件”
  5. 编辑您的应用资料。
  6. 选择您刚刚添加的设备。
  7. 下载.mobileprovision文件。
  8. 安装它。
  9. 重新构建。

4

几个月后,该特定应用正常运行,我的应用中也遇到了同样的问题。

问题是我的Xcode项目中配​​置的功能(在Targets-> {ProjectName}-> Capabilities下)与配置文件中配置的功能不同(您可以在Apple成员中心中的Identifier-> App下进行检查。 Ids-> {您的应用程序ID}。在会员中心,我看到Game Center已启用,因此在我的项目中,我也启用了Game Center,然后该应用程序能够启动。

直到现在我还不知道它是如何工作的。这仍然是一个谜:)


我现在意识到,推送通知不再起作用。我删除了Xcode中的Game Center功能。该应用程序现在可以运行,但是不再有推送通知。有人知道为什么吗?
bobsacameno



3

如果您没有更改与证书相关的任何内容(没有替换或更新它们),请执行Product -> Clean。它帮助了我几次。(Xcode 6.2)


2

升级到XCode 4可以解决此问题。


1
似乎不是XCode版本特定的问题,因为我在XCode 7.3.1中遇到了错误。必须删除配置概要文件,然后从XCode首选项重新下载该概要文件以解决问题。
伊恩·品度(Ian Pinto)

@IanPinto我同意。这是被接受的答案的主要原因是因为这对我有用。它不再是真正有用的信息了,我在这篇文章中还推荐了大多数其他答案,因为它们都包含了对以后看这个信息的人来说非常有价值的信息。关于SO的自我解答的好处是,它们不会自动推送到堆栈的顶部,因此无论如何,没有多少人会看到此答案:)
Richard J. Ross III

2

我今天遇到了这个问题,我正在拔头发试图解决这个问题。像这里的许多人一样,如果我删除了权利文件中的iCloud选项,它将可以正常工作。当我在启用iCloud选项的情况下去调试应用程序时,我会收到0xe8008016错误。这是在撤销并重新生成新证书之后的。

因此,为我解决的是为自动生成的Xcode团队配置文件启用iCloud支持。登录到在线配置工具,转到App IDs,单击Xcode iOS Wildcard App ID,单击edit,通过选中复选框启用iCloud,最后单击Done。在Xcode中刷新您的配置文件,然后它将开始工作。

这很有意义-调试时,它默认为团队配置文件,并且团队配置文件需要打开iCloud。


1
是!那是我的问题,在All Apps ID上启用iCloud可以解决问题。非常感谢
Guy Moreillon

2

当我尝试错误地将App Store分配配置文件用于本地测试时,发生了我的事情。当我使用适当的开发配置文件时,它工作得很好。也许这也对某人有帮助。


如果要测试已上传到App Store的应用程序的配置文件怎么办?有办法吗?
bobsacameno

2

这对我有用...

  1. Entitlements从中删除了文件target
  2. 从我所有的设备上删除了该应用
  3. Cleaned Xcode中的构建
  4. *可选删除配置文件并重新添加

希望它也对你们有用:)


从目标中删除了权利文件,对我有用。但是,如果这是最好的方法,那就不要。
俞少林MaculelêLai 2016年

2

这就是解决我的问题的方法:删除“目标”构建设置的“代码签名权利”部分中的路径。


请提供“如何做”的解释?
特工斑马

@AgentZebra单击主项目文件,然后从“目标”>“构建设置”>“签名”>“代码签名授权”中选择您的应用程序,删除此处显示的值。
weienw

2

我从Apple开发人员处获得的配置文件符合我的Xcode功能,但直到执行以下操作后,它仍无法构建在我的设备上:

  1. 从您的Xcode项目中删除/删除权利文件。

  2. 返回Xcode功能标签

  3. 点击“修复问题”按钮,使Xcode重新添加权利文件。

为我工作,希望它能对某人有所帮助。


2

对我而言,发生在Xcode 8上的部分原因是新的Provisioning Profile构建设置,因为在此Xcode版本中,有两个条目用于置备配置文件:

  • 供应配置文件
  • 配给配置文件(已弃用)

我的错是我只更新了第一个,而过时的条目仍然指向无效的配置文件。将两者更改为相同的值可以解决此问题(清除不推荐使用的条目也应具有相同的效果)。


1

就我而言,它看起来像Xcode(秘密地)重置了Scheme。我发现将Archive的构建配置设置为Release,而不是发行版一,在将其更改为正确的配置后,它可以正常工作。

我认为最好检查一下Schemes和构建设置。


1

我有旧项目,同样的问题,我解决了。

1.转到摘要
。2. 总结具有钥匙串组并删除钥匙槽组的对象。

希望对您有用。问候。


1

我正在使用xcode 6,并在一部特定的iPhone 4上遇到此问题

最后,我转到设备=>提供配置文件=>

然后手动添加配置文件,问题已解决。


1

对于我来说,在Xcode 5.1中The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.尝试在设备上测试应用程序时会遇到问题。设备开发证书必须在2015年2月到期。

问题已解决:

已选 Target->Capabilities在GameCenter下,,这里我得到了GameCenter权利的错误,因为它没有添加到项目中,尽管应用程序的第一版是通过相同的XCode 5.1发布的,但是之前没有这样的错误。

下面是带有标题的按钮 Fix Issue。单击后添加了GameCenter权利,问题已解决。

病房之后,屏幕如下所示:

在此处输入图片说明

对我而言,与证书无关。应用现在可以在设备上成功运行。


1

还会引发此错误消息的另一个潜在问题:如果您对主应用程序使用的是完全有效的配置文件,但是“今日”小部件扩展的配置文件已过期或无效。我想苹果手表扩展也一样。

检查所有配置文件!


1

检查KeyChain访问!

就我而言,我使用了与配置文件关联的错误分发证书。


1

我正在处理的代码在Info-plist中与在Product Bundle Identifier构建设置中具有不同的bundleid 。

我发现此问题是因为我在设备视图的设备控制台中注意到此消息:

MIS: entitlement 'application-identifier' has value not permitted by provisioning profile 'iOS Team Provisioning Profile: com.xxx.yyy'


0

如果您尝试激活iCloud同步,则需要为用于创建开发配置文件(Xcode自动执行)的AppID启用iCloud。您还需要为分发配置文件启用此功能。

棘手的部分是,当您在Xcode中刷新配置文件时,这不会触发配置文件的更新。只需重新下载即可。因此,在iOS Provisioning Portal的“ Provisioning / Development”下,您需要检查标记为(由Xcode管理)的配置文件并将其删除(“ Remove Selected”按钮)。对需要重新生成的所有概要文件,开发和发行版执行此操作。

现在,在管理器的Xcode中,删除要替换的配置文件。

现在获取新的。如果您为一个以上的团队而开发,并且只想刷新一个特定的团队,请在TEAMS下的左窗格中选择适当的Team,否则在LIBRARY下选择Provisioning Profiles,然后选择Refresh。

最后,由于配置文件不会自动删除,因此请删除设备上所有可能与新配置文件冲突的旧配置文件。较新的配置文件仅添加到列表中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.