指定的权利...配置文件。 (0xE8008016)。 iOS 4.2 错误
我收到“可怕的”错误您的应用程序代码签名权利文件中指定的权利与您的配置文件中指定的权利不匹配。 (0xE8008016)。
当尝试将我的第一个应用程序部署到 iOS 4.2.6 (Verizon) 上的未越狱设备时。问题是,我的项目中没有Entitlements file
,因为我根本没有分发它,只是将它放在一台设备上。我已经仔细检查了苹果为您提供的所有环节(证书、设备、配置),但我无法弄清楚出了什么问题。
谁能帮我解决这个问题吗?
I am getting the 'dreaded' error The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.
when trying to deploy my first app to an un-jailbroken device on iOS 4.2.6 (Verizon). The thing is, I do not have a
(0xE8008016).Entitlements file
in my project, as I am not distributing it at all, only putting it on one device. I have gone through all the hoops and loops apple puts you through (certificate, device, provisioning) down to the letter, and I cannot figure out what is going wrong.
Can anyone please help me with this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(30)
我自己刚刚遇到这个问题,问题是我在项目中有一个 Entitlements.plist 文件作为临时发行版的一部分,并且其 get-task-allow (即“可以调试”)属性设置为 NO - 将其设置为 YES 修复了问题并允许应用程序在开发中的设备上从 Xcode4 运行。
对于临时发行版来说,自然需要将其设置回“否”,但只是想我会提到它,以防其他人遇到同样的问题。
Just came across this issue myself, the problem was that I had a Entitlements.plist file in the project as part of an ad hoc distribution, and its get-task-allow (ie. 'can be debugged') property was set to NO - setting this to YES fixed the issue and allowed the app to run from Xcode4 on the device in development.
Naturally need to set it back to NO for ad hoc distributions, but just thought I'd mention it in case anyone else comes across the same problem.
我在 Xcode 4.2.1 中遇到了这个问题。
对我来说,这与权利文件或临时文件无关……
我正在返回旧项目,但我忘记将我的新 iPhone 添加到配置中。
愚蠢的错误,而且还有一个愚蠢的相应错误消息...:-/
I had this issue with Xcode 4.2.1.
For me it was nothing to do with Entitlements file, or Ad-hoc...
I was returning to and old project, and I'd forgotten to add my new iPhone to the provision.
Silly mistake, but also a silly corresponding error message... :-/
如果您使用的是react-native,请确保测试目标具有与主目标相同的配置文件。
If you're using react-native, make sure that the Test target has the same provisioning profile as the main one.
我在 iCloud 权利方面遇到过这个问题。我的问题是我忘记在配置门户中为我的应用程序 ID 启用 iCloud。
为您的 App ID 启用 iCloud 后,您将需要重新创建配置文件。
I've had this issue with the iCloud entitlements. My problem was that I forgot to enable iCloud for my App ID in the Provisioning Portal.
After enabling iCloud for your App ID, you will need to recreate the provisioning profiles.
将您的权利文件保存在 Target>;构建设置>代码签名>代码签名权利。
转到目标>能力。
切换开/关或关/开其中一项功能。
跑步。
Keep your entitlements file in Target> Build Settings > Code Signing > Code Signing Entitlements.
Go to Target > Capabilities.
Toggle On/Off or Off/On one of the capabilities.
Run.
对我有用的是从组列表以及项目和目标中的构建设置中完全删除权利文件。然后,我从目标中的“摘要”选项卡重新创建了权利,并且它加载正常,没有任何错误消息。
What worked for me was to completely delete the entitlements file, from the groups list, and from the Build Settings in both Project and Target. Then I recreated the entitlements from the Summary tab in the target, and it loaded fine without any error messages.
只是在这里投入我的 5 美分。对我来说,上述方法都不起作用,所以我被迫降低压力,并以新的眼光来审视整个过程的每个部分。
在匆忙中,我忘记了我正在尝试在全新的设备上安装我的应用程序。
所以我的错误是,我没有通过在配置门户中的配置配置文件设置的“设备”部分中勾选我的新设备来更新我的配置配置文件。
显然,不将您的设备包含在配置文件中也会生成此错误消息。
Just putting in my 5 cents here. For me none of the above worked, so I was forced to stress down and actually look at every part of the process with fresh eyes.
In rushing this I forgot that I was trying to install my app on a totally new device.
So my error was that I hadn't updated my provisioning profile by ticking off my new device int the "Devices" section of the provisioning profile setup in the Provisioning Portal.
Apparently not including your device in the provisioning profile also generates this error message.
许多答案都没有为我修复 0xE8008016 错误。
但是当我在 Xcode 4 > 中选择“自动设备配置”时,组织者>设备>配置配置文件,终于成功了。
None of the many answers fixed the 0xE8008016 Error for me.
But when I chose "Automatic Device Provisioning" in Xcode 4 > Organizer > Devices > Provisioning Profiles, it finally worked.
就我而言,这是一个愚蠢的错误。我错误地将“运行”方案设置为使用“分发”构建配置,而不是“调试”或“发布”配置。
愚蠢的错误,但是花了一些时间来调试它,所以我将添加我的答案以改进堆栈溢出内的知识库!
In my case it was a stupid mistake. I incorrectly set the "Run" scheme to use the "Distribution" build configuration instead of the "Debug" or "Release" one.
Stupid mistake, but it took a while to debug it, so I'm going to add my answer to improve the knowledge base inside stack overflow!
删除您的配置文件,执行“全部清除”,确保您的配置设置正确,重新下载并尝试再次运行。
Delete your provisioning profiles, do a 'Clean All', make sure that your provisioning setting are correct, redownload, and try to run again.
我在我的应用程序中遇到了同样的问题,几个月后这个特定的应用程序运行良好。
问题是我的 Xcode 项目中配置的功能(在“目标”->“{ProjectName}”->“功能”下)与配置文件中配置的功能不同(您可以在 Apple 会员中心的“标识符”下检查 - > 应用程序 ID -> {您的应用程序 ID}。在会员中心我看到游戏中心已启用,因此在我的项目中我也启用了游戏中心,然后
我不知道它是如何 启动的。直到现在这仍然是一个谜:)
I had the same problem in my app, after a few month this specific app worked fine.
The problem was that the Capabilities configured in my Xcode project (under Targets -> {ProjectName} -> Capabilities) were not the same as the Capabilities configured in the provisioning profile (you can check that in the Apple member centre under Identifier -> App Ids -> {your app ID}. In the member centre I saw that Game Center is enabled and so in my project I also enabled Game Center. Then the app was able to launch.
I don't know how it worked until now. That's still a mystery :)
对我来说,检查 Target 中的“自动管理签名”选项即可解决问题!
For me check the "Automatically manage signing" option in Target solve the problem!
升级到 XCode 4 解决了该问题。
Upgrading to XCode 4 fixed the issue.
删除 xcuserdata 文件夹解决了我的问题。有关更多信息,请访问:https://stackoverflow.com/a/9968884/300694
Deleting the xcuserdata folder solved my issue. More on that here: https://stackoverflow.com/a/9968884/300694
如果您没有更改与证书相关的任何内容(没有替换或更新它们),只需执行
Product ->;干净
。它帮助了我好几次。 (Xcode 6.2)If you didn't change anything related to certificates (didn't replace or update them) just do a
Product -> Clean
. It helped me several times. (Xcode 6.2)我今天遇到了这个问题,我正在拔头发试图解决这个问题。像这里的许多人一样,如果我删除权利文件中的 iCloud 选项,它就会起作用。当我在启用 iCloud 选项的情况下调试应用程序时,我会收到 0xe8008016 错误。这是在撤销并重新生成新证书之后。
因此,为我解决这个问题的方法是打开 iCloud 对自动生成的 Xcode 团队配置文件的支持。登录在线配置工具,进入
App IDs
,点击Xcode iOS Wildcard App ID
,点击edit
,勾选启用iCloud复选框,最后单击完成
。在 Xcode 中刷新您的配置文件,然后它将开始工作。这是有道理的 - 当您调试时,它默认为团队配置文件,并且团队配置文件需要打开 iCloud。
I ran into this problem today and I was pulling my hair out trying to figure it out. Like many people here, it would work if I removed the iCloud options in my entitlement file. When I would go to debug the app with the iCloud options enabled then I would get the 0xe8008016 error. This was right after revoking and regenerating new certificates.
So what solved it for me was to turn on iCloud support for the automatically generated Xcode team profile. Log onto the online provisioning tool, go to
App IDs
, click onXcode iOS Wildcard App ID
, click onedit
, enable iCloud by checking the checkbox, and finally clickingDone
. Refresh your profiles in Xcode and then it will start to work.This makes some sense - when you're debugging it defaults to the team profile and the team profile needs to have iCloud turned on.
当我错误地尝试使用应用程序商店分发配置文件进行本地测试时,就发生了这种情况。当我使用正确的开发配置文件时,它工作得很好。也许这也对某人有帮助。
Happened to me when I was trying to use an app store distribution provisioning profile for local test by mistake. When I used the proper development profile it worked just fine. Maybe this helps somebody too.
这对我有用...
目标
中删除了Entitlements
文件。清理
Xcode 中的构建希望它也适合你们:)
This worked for me...
Entitlements
file from thetarget
.Cleaned
the build in XcodeHope it works for you guys too :)
这就是解决我的问题的方法:删除目标构建设置的代码签名权利部分中的路径。
This is what solved my problem: Deleting the path in the Code Signing Entitlements section of the Targets build settings.
Apple 开发人员提供的配置文件与我的 Xcode 功能相匹配,但在我执行以下操作之前,它仍然无法构建到我的设备上:
从 Xcode 项目中删除/删除权利文件。
返回 Xcode 功能选项卡
点击“修复问题”按钮让 Xcode 重新添加授权文件。
为我工作,希望对某人有帮助。
My provisioning profile from Apple developer matched my Xcode capabilities but it still wouldn't build onto my device until I did the following:
Remove/Delete the entitlements file from your Xcode project.
Go back to the Xcode capabilities tab
Hit "Fix Issue" button to get Xcode to re-add the entitlements file.
Worked for me, hope it helps someone.
我在 Xcode 8 上发生过这种情况,部分是由新的
Provisioning Profile
构建设置引起的,因为在此 Xcode 版本中,有两个用于配置配置文件的条目:我的错误是我只更新了第一个,并且已弃用的条目仍然指向无效的配置文件。将两者更改为相同的值解决了问题(清除已弃用的条目也应该具有相同的效果)。
Happened to me on Xcode 8, it was partially caused by the new
Provisioning Profile
build setting, as in this Xcode version there are two entries for provisioning profile:My fault was that I updated only the first one, and the deprecated entry was still pointing to an invalid provisioning profile. Changing both to the same value solved the issue (clearing the deprecated entry should also have the same effect).
就我而言,看起来 Xcode(秘密地)重置了该方案。
我发现 Archive 的构建配置设置为 Release 而不是发行版配置,在我将其更改为正确的配置后,它就起作用了。
我认为最好检查方案以及构建设置。
In my case, it looks like Xcode (secretly) reset the Scheme.
I found that the build configuration for Archive was set to Release instead of distribution one, and after I changed it to the correct one, it worked.
I think it is better to check the Schemes as well as the build settings.
我有旧项目和同样的问题,我解决了。
1.进入摘要
2.总结有钥匙串组并删除钥匙串
团体的对象。
我希望它对你有用。
问候。
I had old project and same problem and I solved .
1.Go to summary
2.Summary have keychain groups and delete keychanin
groups's object.
I hope it's will work for you .
Regards.
我正在使用 xcode 6,
最后在一台特定的 iphone 4 上遇到了这个问题,我转到 device =>提供资料=>
然后手动添加配置文件,问题就解决了。
i'm using xcode 6 and encounter this issue for one particular iphone 4
finally , i go to device => provision profile =>
and then add the profile manually and problem is fixed .
对于我来说,在 Xcode 5.1 中,当尝试在我的设备上测试应用程序时,我收到
The entitlements specified in your application's Code Signing Entitlements file do not match thosespecified in your Provisioning Profile.
。设备开发证书已于 2015 年 2 月到期。问题已解决:
在 GameCenter 下选择
目标 -> 功能
,此处我收到 GameCenter 权利错误,因为它未添加到项目中,尽管第一个版本应用程序是通过相同的 XCode 5.1 发布的,但之前没有出现类似的错误。下面,给出了一个标题为
修复问题
的按钮。单击后,它添加了 GameCenter 权利,问题已解决。之后屏幕看起来像:
对我来说,与证书无关。应用程序现已在设备上成功运行。
For me in Xcode 5.1 I was getting
The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.
when trying to test the app on my device. Device Development Certificate has to expire Feb 2015.Issue was resolved:
Selected
Target->Capabilities
, under GameCenter, here I was getting error on GameCenter entitlement as it was not added to project, although first version of application was released via same XCode 5.1 but there were no errors like this before.Below, a button was given with title
Fix Issue
. When clicked it added the GameCenter entitlement and issue was resolved.After wards the screen looks like:
For me, there was nothing to do with certificate. App now runs successfully on the device.
还有一个可能会引发此错误消息的潜在问题:如果您为主应用程序使用完全有效的配置文件,但 Today 小部件扩展的配置文件已过期或无效。我想苹果手表的扩展也会是同样的情况。
检查所有个人资料!
One more potential problem that will throw this error message: If you're using a perfectly valid provisioning profile for you main app, but have an expired or otherwise invalid provisioning profile for your Today widget extension. I imagine it'd be the same for an Apple watch extension as well.
Check all the profiles!
检查钥匙串访问!
在我的例子中,我使用了与配置文件关联的错误的分发证书。
Check KeyChain Access!
In my case I was using the wrong distribution certificate associated with the provisioning profile.
我正在处理的代码在 Info-plist 中具有与
Product Bundle Identifier
构建设置中不同的bundleid。我发现这一点是因为我在设备视图的设备控制台中注意到此消息:
MIS: entitlement 'application-identifier' has value not allowed by Provisioning Profile 'iOS Team Provisioning Profile: com.xxx.yyy'
The code I was working on had a different bundleid in the Info-plist than in the
Product Bundle Identifier
build setting.I found this because I noticed this message in the device console in the devices view:
MIS: entitlement 'application-identifier' has value not permitted by provisioning profile 'iOS Team Provisioning Profile: com.xxx.yyy'
如果您尝试激活 iCloud 同步,则需要为用于创建开发配置文件的 AppID 启用 iCloud(Xcode 自动执行此操作)。您还需要为分发配置文件启用此功能。
棘手的部分是,当您在 Xcode 中刷新配置文件时,这不会触发配置文件的更新;它们只需重新下载即可。因此,在 iOS 配置门户的配置/开发下,您需要检查标记为(由 Xcode 管理)的配置文件并将其删除(删除所选按钮)。对所有配置文件、开发和应用程序执行此操作。分布,您需要重新生成。
现在,在 Xcode 的管理器中,删除您要替换的配置文件。
现在要买新的了。如果您为多个团队进行开发并且只想刷新某一特定团队,请在左窗格中“TEAMS”下选择相应的团队,否则选择“LIBRARY”下的“Provisioning Profiles”,然后选择“Refresh”。
最后,删除设备上可能与新配置文件冲突的所有旧配置文件,因为配置文件永远不会自动删除;较新的配置文件只需添加到列表中即可。
If you are trying to activate iCloud syncing, you will need to enable iCloud for the AppID that is used to create the development provisioning profile (which Xcode does automatically). You'll also need to enable this for distribution profiles as well.
The tricky part is that when you refresh profiles in Xcode, this does not trigger a renewal of the profiles; they are simply re-downloaded. So in your iOS Provisioning Portal under Provisioning/Development, you'll need to check the profile that is labeled (Managed by Xcode) and delete it (Remove Selected button). Do this for ALL profiles, development & distribution, that you need to regenerate.
Now, in Xcode in the Organizer, delete provisioning profiles that you are about to replace.
Now to get new ones. If you develop for more than one team and only want to refresh a particular one, select the appropriate Team in the left pane under TEAMS, otherwise select Provisioning Profiles under LIBRARY, then select Refresh.
Finally, remove any old provisioning profiles on your device that could conflict with the new ones since profiles are never deleted automatically; newer profiles are simply added to the list.