【问题标题】:Xcode with iPhone 4 Development: The executable was signed with invalid entitlements.使用 iPhone 4 开发的 Xcode:可执行文件使用无效权利进行签名。
【发布时间】:2011-01-24 16:04:53
【问题描述】:

完整的错误信息是:

可执行文件的签名无效。

可执行文件 签署了无效的权利。中指定的权利 您的应用程序的代码签名权利文件与那些不匹配 在您的配置文件中指定。 (0xE8008016)。

我已经花费了几个小时来解决此错误消息,但尚未解决。基本上,我已经制作了用于开发的 iPhone-4.0,并从我在 developer.apple.com 上的帐户安装了有效的配置文件。

我们有我们的主应用程序,它使用相同的配置文件进行签名,并且运行良好,但是当我尝试运行 http://teachyourselfiphone.com/ 书中给出的应用程序以用于学习和测试目的时,它就无法运行。

我尝试了以下所有方法,但没有任何效果。

  1. The executable was signed with invalid entitlements
  2. http://jomnius.blogspot.com/2010/11/executable-was-signed-with-invalid.html

谁能帮我解决这个问题?

【问题讨论】:

    标签: ios xcode ios4 provisioning-profile ios-provisioning


    【解决方案1】:

    我今天收到了这个错误。问题是项目上的配置文件与目标上的配置文件不同。

    转到项目设置并确保配置文件与您当前的应用程序标识符匹配

    然后转到目标设置并确保它是相同的设置。

    【讨论】:

    • 感谢 Eamonn,对我来说,清理解决方案和重建工作正常。我们所有的 iPhone 设备都安装了相同的开发者证书。
    • 非常有帮助,谢谢。对于最近切换项目以拥有需要不同配置文件的多个目标的任何人:将项目 -> 构建设置 -> 代码签名设置为“不要代码签名”;将每个目标的 -> 构建设置设置为所需的配置。
    【解决方案2】:

    感谢所有的想法。

    由于我有不同的原因,我也想分享一下:

    买了一台新设备,我从旧设备的备份中恢复了它。具有相同名称的 iTunes 和 XCode 也复制了所有配置文件。

    我忘记了,即使设备名称相同(并且我的配置文件包含此名称),它也是不同的设备 ID,并且在您将其包含在您的配置中之前它无法在此设备上运行在 Xcode 中配置、更新、下载和安装。

    【讨论】:

      【解决方案3】:

      我在我的 Mac 机器上遇到了这个错误:

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

      那次我检查了xcode -> Targets -> "XXXX"(project name) -> GetInfo 中的identifier。在“属性”选项卡中,我提到了错误的标识符值。将其更改为正确的应用程序标识符值后,它可以正常工作。

      【讨论】:

        【解决方案4】:

        我使用的是分发配置文件而不是开发人员配置文件...:P

        【讨论】:

        • 为什么投反对票?有时人们会犯这样的错误,而这个答案确实提供了一个可能的解决方案。
        【解决方案5】:

        我也收到此错误消息。这是我想要更新的已经在商店中的应用程序之一。在重新下载过期配置文件数小时后,我运行了“清理所有目标”,这就是诀窍。 祝你好运 - 不是很沮丧吗?

        【讨论】:

        • 是的,这很令人沮丧,但现在一切看起来都很好......!此外,Apple 不允许您使用分发证书测试应用程序。您必须使用开发人员证书来测试您的应用程序,并且在提交之前将其更改为分发证书......!!到目前为止没有问题,但你永远不知道这可能会导致一些问题。
        【解决方案6】:

        我遇到了同样的问题...我想通了...显然有很多事情可能会导致此问题。这是我的特殊口味,所以你可能会也可能不会觉得这很有用……这只是要检查的另一件事。我想我会发布解决方案,所以当我明年试图解决这个问题时,我可以找到我的帖子并修复它;)另外,如果其他人看到类似的问题,他们可以找到这个,也许这就是他们所看到的...... . 我的特殊问题是我没有抓住所有需要更新的地方。我得到了三分之二,可能很接近,但我们不是在这里玩马蹄铁;)在你嘲笑我之前,只记得后视是 20/20 ......而且我老了,不记得我可能想出来的东西去年。

        有几个区域需要检查以确保您的配置文件已更新。

        首先是新的开发者身份证书。确保将其放入您的钥匙串中。我的在 Keychains 下 - 在 Mac 上的 Key Chain Access 应用程序中登录。 接下来,您需要设备上的新配置文件。删除过期的,并通过使用新的开发者身份生成一个新的。通过 XCode4 Organizer 执行此操作。相信管理器中的警告,即找不到有效证书... 最后,这是我错过的一个,更新 Library Provisioning Profiles!再次通过“设备”上方的 XCode4 管理器,有一个“库”部分选择“配置文件”删除旧的过期配置文件并添加新的配置文件。

        项目构建设置中的重要提示 - 代码签名区域告诉您签名匹配的配置文件。我的说“当前匹配...”,然后列出了一个旧的配置文件,该配置文件与我放在设备上的新配置文件不同。即使那个旧的配置文件没有过期,我相信它是基于昨晚过期的旧开发者身份。所以我认为问题在于 XCode 使用旧的配置文件进行签名,而设备具有更新的配置文件,所以我得到了上面非常清楚的错误消息;) ...

        我找了好几个小时,希望能节省一些时间。我敢肯定,明年当我再次搞砸时,我会寻找这个。

        自我提醒:我告诉过你明年你会搞砸的......明年就在这里,你正在阅读这篇文章。

        同样的帖子位于:https://devforums.apple.com/message/425569

        【讨论】:

          【解决方案7】:

          当我将手机更新到 iPhone 6 并从我的 iPhone 4S 备份中恢复时,我遇到了类似的问题。我最终从我的旧手机中获得了必须删除的配置文件。在 iOS 8 中,您无法再在设置->常规->配置文件中删除配置文件 - 请在此处查看说明:Removing provisional profile with ios 8 and Xcode 6.0.1。然后我必须手动下载团队配置文件并使用与上述相同的说明进行安装。

          【讨论】:

            【解决方案8】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-04-25
              • 1970-01-01
              • 1970-01-01
              • 2023-03-20
              • 2012-09-28
              相关资源
              最近更新 更多