权限文件与您的预配文件不匹配。(0xE8008016)

73

可执行文件使用了无效的权利。

您应用程序的代码签名权益文件中指定的权益与您的预配文件中指定的权益不匹配。(0xE8008016)。

我遇到了这个错误,请帮助我。

我创建了预配文件并更改了包标识符。我从“目标”->“功能”启用了钥匙串共享,并生成了新的.entitlement文件。我还在其中更改了包标识符。

enter image description here


1
可能是重复的问题:https://dev59.com/cm435IYBdhLWcg3wvyw5 - Dave Wood
2
您的配置可能不包含您正在运行应用程序的设备ID。 - Inder Kumar Rathore
3
@InderKumarRathore 你好,我已将设备设置为个人资料。但我知道问题出现的时间,却无法解决它。我想创建一个可以访问其他应用程序的群组文件夹。因此在项目->目标->功能中添加了密钥链组。它创建了一个名为.entitlement的新文件。当我在设备上运行时,它可以正常工作。但是当我在.entitlement文件中添加“com.apple.security.application-groups”属性时,它会给我显示以上屏幕截图的错误信息。 - Hitendra
我在苹果论坛上发了一个问题,因为到目前为止我无法通过iCloud KeyValueStore设置摆脱它:https://forums.developer.apple.com/thread/22867 - loretoparisi
可能是The entitlements specified...profile. (0xE8008016). Error iOS 4.2的重复问题。 - Adela Toderici
22个回答

49

在我的情况下(使用XCode 10.0),除了以下方法,其他的都没有用:

文件 > 项目设置... > 共享项目设置: > 构建系统 --> 选择"Legacy Build System"(遗留构建系统)而不是默认的 "New Build System (Default)"(新构建系统(默认))。


我无法在我的XCode中找到构建系统或共享项目设置,您能否指导一下? - CodeChanger
几个月前,当我第一次遇到这个问题时,我已经切换到了传统的构建系统。现在它又开始出现了,唯一解决它的方法是切换回“新构建系统(默认)”。 - Levi Murray

48

在我的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月过期。

问题已解决:

选择目标->功能,在GameCenter下,我遇到了一个关于GameCenter授权的错误,因为它没有添加到项目中,尽管第一个版本的应用程序是通过同样的XCode 5.1发布的,但之前没有出现过这样的错误。

下面有一个名为Fix Issue的按钮。单击该按钮会添加GameCenter授权,并且问题得到解决。

此后,屏幕如下所示:

enter image description here

对我来说,与证书或包标识符无关。 应用程序现在可以成功在设备上运行。


3
哈,这是第一个读到“解决问题”真正解决了什么的团队。 - Tobias
1
我在使用XCode 8,但是我无法在我的XCode或者你的截图中看到这个“修复问题”按钮。 - Kae Verens
@KaeVerens:这是在XCode 5.1中发生的,请参考下面提到的其他答案。 - MTahir
将工作区构建设置从“新”更改为“传统”。 - skydev

36
在 XCode 7.3 中,我遇到了相同的问题。这是由于以下错误引起的: info.plist 文件中 Bundle identifier 的名称与 target -> build settings -> packaging -> Product bundle identifier 不一致。只需使它们一致即可解决该问题。

这也是我的问题。我正在使用Ionic 2开发混合移动应用程序时更改名称,但我忘记将构建包标识符更改为新名称。只需快速更改一下,BOOM。就像魔法一样正常工作了。 - TheBrockEllis
太好了!这就是问题所在,但奇怪的是,尽管info.plist捆绑标识符将捆绑ID引用为{PRODUCT_BUNDLE_IDENTIFIER},这本质上与target-->build settings -->packaging-->Product bundle identifier相同,但安装对我来说从未完成过! - Raj Pawan Gumdal
这个答案帮助我找到了解决方案,除此之外还有dzensik的评论。我的“Bundle identifier”是一些奇怪的值。我用$(PRODUCT_BUNDLE_IDENTIFIER)替换它,问题得到了解决。 - Cookster
1
是的!这个帮助了我解决了签名问题,我已经困扰了好几个小时了。我的问题是在应用程序扩展的 Info.plist 中,CFBundleIdentifier 被设置为 $(BUNDLE_ID) 而不是 $(PRODUCT_BUNDLE_IDENTIFIER),导致上传到 Apple 时出现了非常神秘的错误:“配置文件与应用标识符授权文件的值不匹配。” 希望这能帮助到其他人! - Linus Unnebäck
我有一个扩展目标(NotificationService),我必须进入该目标的 Build Settings -> Product Bundle Identifier 并将值更改为正确的值。经过一天的搜索和尝试,这个问题终于得到解决。谢谢! - Rickard Elimää

24

正如其他人指出的那样,如果您遇到此错误,需要检查.plist文件中的Bundle ID值和此处的值:

Xcode项目构建设置选项卡,Product Bundle Identifier已聚焦


6
不需要手动将Bundle标识字符串写入info.plist中的"Bundle identifier"键。您只需使用变量$(PRODUCT_BUNDLE_IDENTIFIER)即可。 - dzensik

24

首先,您应该检查捆绑标识符、配置文件和带有私钥 (.p12) 的证书。

如果这些不起作用,请确保 代码签名授权 具有正确的值,或者完全删除它。

输入图像说明


如果我彻底删除这些代码签名权利,是否可以呢?这会对AppStore提交或其他地方造成任何问题吗? - Hemang
非常感谢,经过两天的努力和尝试了许多解决方案,最终这个解决方案帮助了我 :) - Gauri Bhosle

17

文件 > 工作区设置 > 构建系统 > 旧版构建系统

这对我有效。 Xcode 10.0


在我的Xcode 10.2.1中有效,将默认值更改为Legacy Build System。 - atul
当我尝试通过Xcode安装我的Ionic应用程序时,我一直收到“无法安装”的错误提示:“失败原因:您的应用程序代码签名授权文件中指定的授权无效、不允许或与您的配置文件中指定的授权不匹配。” 这个问题已经解决了。 - JoshStrange

4

之前的回答对我并没有用,我的情况是更新测试项目的设置,如下所示,解决了问题:

在此输入图片描述


4

enter image description here

重新分配“自动管理签名”的值,这对我起作用。

4

在我的情况下,应用程序的主目标团队与测试的目标团队不同。将测试团队更改为与主要目标团队相同的团队解决了这个问题。


2

这个错误可能的原因是:您的年度订阅已经续订。一旦订阅续订,与活动供应配置文件相关的所有设备都将被分离。

  1. 管理员必须重新激活新订阅年度的设备列表。
  2. 管理员必须删除去年的供应配置文件(全部无用)。
  3. 管理员必须使用他选择的设备列表为新年度生成新的供应配置文件。

完成上述步骤后,使用Xcode重新构建项目即可消除错误。


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