The executable gets signed with invalid entitlements in Xcode

当我试图在我的设备上运行应用程序时,Xcode 出现了这个错误。

可执行文件的权限无效

它与旧的 Xcode 工作得很好,有人知道如何消除这个错误吗?

enter image description here

121026 次浏览

我认为您的问题在于您之前使用 xCode4.6的配置文件,而现在您使用的是 xCode5。

您需要通过 XCode > Preferences > Account 刷新证书/配置文件

XCode > Preferences > ACCOUNT > Click on your DEV ACCOUNT > View Details 按钮(右下) > SigningIden/PPs 屏幕显示 > 点击 Refresh。

然后从生成设置中再次选择正确的配置文件,清理并生成项目。

希望这个能帮到你。

我发现了问题所在。我在 developer.apple.com 上创建的应用程序不包括应用程序间音频。Xcode 的项目权益列表文件的应用程序间音频设置为 YES (默认情况下)。一旦我改变我的应用程序配置的设置在 developer.apple.com 上,以启用内部应用程序音频。然后我的应用程序在我的设备上运行。我想这就是苹果的新规则,让你的应用程序设置在 developer.apple.com 和 xcode 项目设置上保持一致。

I had the same problem in XCode 5. This helped me anyway.

XCode > Preferences > Location tab > DerivedData

按一个小小的左箭头在 Finder 中打开派生数据。移动到项目的垃圾文件夹并重新生成。

Screenshot

我可以通过在 Xcode 5:-中打开/关闭“ Game Center”权限来解决这个问题

Restarting Xcode was what worked for me

我通过删除 Project. pbxproj中的所有 "PROVISIONING_PROFILE=...""PROVISIONING_PROFILE[sdk=iphoneos*]" = ...并重新启动 Xcode 和再次为目标设置供应配置文件来解决这个问题。

我必须匹配的应用程序的能力在 Xcode5下

Capabilities ->
In-App purchase -> ON
Game Center -> ON

配给文件里有这个。

如果重新启动 xcode 不起作用 制定一个新的供应配置文件,并确保包括您的测试设备。

出了点问题。解决: 去右边的目标-> 能力-> 对我来说有问题的“在应用程序购买”和按钮来修复它。关闭操作固定问题。

在我的例子中: 我需要在

Capabilities -> Inter-App Audio

我认为因为我使用 Parse.com Notification,所以它需要到 AudioToolbox.Framework 的链接

Xcode 6.1(HealthKit 示例)

我得到这个错误是由于 HealthKit 集成: 我已经启用了应用程序内购买,游戏中心和 Healkit 解决了我的问题。.与我在供应配置文件中启用的相同。

enter image description here

enter image description here

(Xcode 6.1)

对我来说,问题在于我的构建设置; 当我试图部署到设备上时,我将我的配置文件设置为 App Store 产品配置文件。我把它换成了自动档,它解决了我的问题。您也可以将其设置为 Dev 供应配置文件。

I also have 2 Certificates, so I added my second Certificate to my dev provision. Others probably won't have this problem.

Enabling Capabilities -> Inter-App Audio fixed this issue for me as well. I am also trying to send push notifications through parse

简单的清洁和建设似乎为我解决了这个问题。

最新的 Xcode解决方案:

首先,你必须检查你的 会员中心为你的特定 应用程序启用了什么:

enter image description here

然后,在 Xcode 中的适当目标中,必须具备 启用相同的功能: 在本例中为 App GroupGame CenterIn-App Purchase。ABc4必须在 Xcode 的目标中启用。

enter image description here

然而,这与 调试模式无关:

enter image description here

这对你的 RELEASE模式非常重要: enter image description here

Note that Game Center and In-App Purchase are enabled by default in 会员中心 but are disabled in Xcode's target.

似乎是 Xcode 内部的一个小 bug。不管怎样,试试 存档,即使 entitlements有一个问题。如果您的权利是罚款,它将被上传没有任何问题。苹果接受它,你的应用程序将被发布到 AppStore。

我做到了,而且成功了:)

这里的答案似乎有点不够充分,所以我要补充一点:

真正的解决方案是,存储在供应配置文件中的内容(检查 developer.apple.com -> 成员-> 证书-> 您正在使用的证书(确保检查是否开发/生产)和在应用程序中启用的内容(双击项目名称)之间通常存在不匹配,在水平菜单下选择“能力”(在“常规”旁边)。

如果您最近更改了其中之一,请确保在 XCode-> Preferences-> Account-> Details-> Refresh Icon 下刷新证书并重新启动 XCode。

在我的情况下 APNS 证书过期,删除过期的证书并重新生成配置文件修复问题。

在我的案例中,设备没有被添加,所以我必须添加设备并生成一个新的供应配置文件。

我面临着同样的问题。对我来说,解决方案是以下步骤。

  1. 我登陆开发者账号在 App Identifier 上传了推送证书。
  2. Regenerate provisioning profile

结论: 如果启用了任何服务但没有配置,那么禁用或配置该服务可能会解决问题

If the other good answers listed here aren't working for you, try opening Keychain Access and removing all 'iPhone Developer...' certificates other than the primary one you're using for code signing. I found that I had several revoked certificates, and certificates from my other teammates that needed to be deleted.

(Xcode 7.3.1) 我只有一个特别的设备有这个问题。 对我来说,修复这个问题的方法是在一个同事的电脑上运行这个应用程序(成功地) ,之后我的电脑上就不再出现这个错误了。

在我的案例中,我不得不接受苹果开发者许可协议。

登录到苹果开发者帐户并观察类似下面的通知消息。

”苹果开发者程序许可协议已经更新。为了获得某些会员资源,* * * * 必须在2016年6月28日之前接受最新的许可协议。”

早些时候,我无法添加/编辑应用程序 ID 的 iCloud 容器,虽然我改变/检查功能,供应配置文件,证书等。签订合同后,一切开始顺利进行。

希望能节省某人宝贵的时间。

首先,如果您已经手动设置了配置文件,请确保在构建之前为您选择的配置选择了正确的配置文件。如果已经将自动设置为配置文件,请确保 Xcode 在构建时获取了正确的配置文件。

另一件需要检查的事情是——确保在 都有中选择了正确的实体

目标-> 你的目标-> 构建设置-> 签名

还有

项目-> 您的项目-> 生成设置-> 代码签名实体

我得到这个消息时,我有一个完整的开发人员配置文件选择在一个和一个不同的(非开发人员)苹果 ID 选择在另一个,即使没有应用程序中要求的权利。

我最近也遇到了同样的问题。在阅读了许多不同的建议,其中没有一个对我有用,我终于在引擎盖下找到了问题的根本原因。

移动配置文件实际上与 Xcode 生成的 Entitments 文件不匹配

Although all files are anaged automatically by Apple tool, they are not correct.

如果你从苹果门户网站下载供应文件并打开它(你可以打开它,因为它只是由你的证书签名的 plist 文件,所以它是可读的文本编辑器) ,并比较它与您的 Entitments 文件(自动生成的 Xcode 和驻留在项目文件(所以它再次 plist XML 文件可读的文本编辑器)。这样你就能看出区别了。

In my case it was Game Center entitlement. It was displayed on the portal as checked (checked by default) but actually this entitlement was not included in mobile provisioning file. So it was matter of deleting it from Entitlements file.

因此,结果是——移动配置文件的内容有时与 APP ID 配置页面上显示的内容不匹配。

在我检查并将应用程序测试目标设置为与主应用程序相同的供应配置文件之前,没有解决方案对我有效。或者如果使用自动唱歌,请确保在“测试目标”中选择了相同的团队。

我花了一个小时解决这个问题,终于找到了解决办法。原来开发团队在 ProjectTarget 和 ProjectTest 中是不同的。

上面所说的都是正确的,尤其是 Bart omiej Sema czyk 所说的: 重新检查开发中心和项目中的权限设置。

我对 Xcode 9/iOS 11. .的两分钱

如果你在你的回购中增加了 NFC 的新权利(只对 iOS11/Xcode 9有效) ,而且你还有一个 Xcode 8项目,Xcode 8将会失败。

因此,如果您使用具有相同基本代码(使用条件编译)的多个项目共享相同的非代码文件,请使用 SURE 来区分不同 Xcode 版本的权利文件。

我在 Xcode 8.3.2中也遇到了类似的错误。在我的案例中,我发现从 ~/Library/MobileDevice/Provisoning Profiles 删除缓存的供应配置文件使 Xcode 再次从 Developer Portal 下载正确的配置文件,之后它第一次工作了。希望这能帮到别人!

对于那些在目标 供应概况 Automatic中有相同问题的用户,构建设置:

编辑目标权利文件时要非常小心!这可能会破坏与自动生成的供应配置文件的对应关系,您将得到这个错误。

在我的例子中,我不得不临时使用带有调试构建的 iCloud 生产容器

<key>com.apple.developer.icloud-container-environment</key>
<string>Production</string>

在应享权利文件里,这个起作用了!
To remind me that I had later to remove these lines, I further inserted simply the following comment:

<key>TODO</key>
<string>The entry below must be out commented or deleted to use the iCloud development environment.</string>

还有 这打破了通信,并造成了错误

对于 XCode10,可能需要使用遗留的构建系统

可以从文件/项目设置进行更改

A cordova / ionic annoucement: https://github.com/apache/cordova-ios/issues/407

当我更新到 Xcode 10时,我也遇到了类似的问题,我解决了文件 > 项目设置的问题,在“ New Build System”选项中选择“ Legacy Build System”。这对我有帮助,我希望这对某些人有帮助。

我只是访问了 Apple dev Portal,下载了适当的供应配置文件并重新安装了它(xcode 10.1)

如果这个问题和我一样,你可能会忘记目标项目中的单元测试 try do this picture

enter image description here

This could be due running wrong scheme as well.

I'm using 推送通知 in my app and after development completed i was try to test push notification for 释放配置. At that time i got this error.

I was using 制作 Provisioning Profile to run for release. 所以我能够通过使用 随时待命供应配置文件来解决这个错误。

这可能是由于正在运行分发/发布方案。将方案更改为调试对我来说是可行的。我们可以在这里检查计划。希望这对谁有帮助。

enter image description here

enter image description here

即使它看起来很容易修复,我解决了它更新我的 ios 版本。 编辑,因为反对: 所有我看到的答案只谈论 xcode 更新。这很奇怪,因为我以前的 ios 版本是 ios 13.3.3,而它可以在另一台 ios 13.6的 iphone 上运行。在升级到 ios 13.7之后,它起作用了。

The error message from xcode app installation sometime can be very misleading, I have aligned the entitlements many times, but the root cause is not because of that, it is because I have changed the certificate and my build pipeline script was using wrong certificate SHA value:

/usr/bin/codesign --force --sign 701BB03735D5960C855D6E79223414F93F40065E --entitlements $workspace/xxx.app.xcent --timestamp=none $workspace/xxxx.app

对于我的情况,我的授权文件没有任何问题,这是因为 701BB03735D5960C855D6E79223414F93F40065E是错误的,但错误消息总是以 The executable was signed with invalid entitlements的形式打印出来。浪费了我一整天的时间。