【问题标题】:invalid entitlements 0xE8008016 when I add the entitlements file添加权利文件时出现无效权利 0xE8008016
【发布时间】:2010-06-04 18:21:05
【问题描述】:

我正在尝试进行临时分发。当我使用 XCode 时,应用程序可以在我的手机上正常安装。

在准备临时分发时,我创建了默认权利文件,取消选中 get-task-allow 框,将权利文件名添加到代码签名权利行,并尝试在我的手机上安装。

如果我在构建设置的权利中有该文件,我会收到(可怕的)错误

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

(0xE8008016)。

仅当我在代码签名部分列出了权利文件时才会发生这种情况。

我创建了一个全新的应用程序来测试它,看看可能出了什么问题,并且这发生在一个全新的测试应用程序中(所以看起来干净的构建、打开和关闭 XCode 等会有所帮助)。

我错过了什么?我已经阅读了所有其他发生这种情况的时间,但似乎没有任何内容适用。

【问题讨论】:

    标签: iphone iphone-sdk-3.0


    【解决方案1】:

    您需要按照以下步骤操作

    • 您是否更改了项目 info.plist 中的包标识符???

    请确保这也与您的配置文件的标识符匹配。

    • 转到您的项目信息。选择您希望部署构建的配置,然后检查您已添加 dist.plist 文件的构建设置,并且配置文件与您需要运行的配置文件相同。

    • 如果您要进行分发构建,请将 get-task-allow 标记设置为未选中

    希望这会有所帮助。

    【讨论】:

    • 我试过了,没有改变它,然后把它改成我认为应该的样子。完全没有变化
    • 是否有验证配置文件中的标识符?
    • 您的意思是,将捆绑标识符(默认为 com.yourcompany.{rfc42_something} 的那个)设置为 GUID 之类的数字,组织者声称是“配置文件标识符”?我不记得曾经在我的其他成功发行版中这样做过......
    • @justin 我想知道你是怎么做到的......但是你必须更改捆绑标识符以匹配配置文件。
    • 好的,我创建了一个名为 dist.plist 的权利文件。如果我在权利石灰中引用它,则应用程序拒绝安装。如果我忽略它,该应用程序会在至少两部手机上安装和运行,这违反了我所读过的所有内容。我将您的答案标记为正确,因为我相信它是正确的。我很困惑,但我们在工作
    【解决方案2】:

    我成功了!原因是你得到了错误的证书!如果您使用的是开发证书,则不能使用分发证书。

    【讨论】:

    • 那是我的情况。我在构建设置中有“iOS 开发人员”身份,并且在使用“AdHoc 分发”配置文件签名时,此构建没有安装在设备上。将 codesign 更改为“iOS Distribution”解决了这个问题。
    【解决方案3】:

    执行以下步骤:

    1. 从 Xcode 中删除配置文件 -> Organizer
    2. 从您的开发者帐户重新下载。确保您已从分发选项卡下载配置文件。
    3. 将该配置文件拖放到 Xcode
    4. 更改与您的配置文件应用 ID 匹配的 plist 的捆绑标识符。
    5. 转到应用设置目标和活动目标,然后从中选择您的利润。
    6. 现在重新构建并运行应用程序。

    【讨论】:

      【解决方案4】:

      还值得注意的是,此问题可能源于试图在越狱设备上安装正确编写的程序。至少在我的情况下,我和我所有的开发单元都不断收到这个错误。通过将 get-task-allow BOOL 类型添加到 Entitlements.plist 文件,我仍然收到错误,但文件已安装在设备上(虽然实时调试不起作用)。

      【讨论】:

        【解决方案5】:

        您是否检查过 Project > Build Settings and Targets > Build Settings 下的 Code Signing Identity 值是否正确?

        【讨论】:

          【解决方案6】:

          我发现我必须在 IOS 配置文件站点上将我正在测试的新设备添加到我的配置文件中。

          【讨论】:

            【解决方案7】:

            我没有同意 Apple 更新后的新许可协议。

            简单地说: 请登录您的开发者帐户 -> 个人资料 -> 审核 -> 阅读协议或让您的律师为您阅读 -> 同意(根据您的意愿)-> 并再次单击个人资料以检查您的个人资料的状态。

            在我的场景中,有效的代码签名实体没有出现。当我按照上述程序进行操作时,它是可见的,并且我能够在设备上运行应用程序和/或创建 iPA 文件而没有太大困难。

            【讨论】:

              【解决方案8】:

              对于它的价值,我在一个应用程序上遇到了这个问题,但在另一个应用程序上却没有。似乎 Target->BuildSettings->Code Signing 中的“Provisioning Profile”必须设置为“Automatic”。如果您选择了列表中的其中一个,则会失败并出现此错误。

              【讨论】:

                【解决方案9】:

                我也遇到了这种类型的错误,我通过删除当前的 Entitlement.plist 并添加新的 Entitlement.plist 解决了这个问题。 因为我试图运行的项目是在 3.2 sdk 上构建的,而目前我使用的是 4.2。 这是我出错的唯一原因

                【讨论】:

                  【解决方案10】:

                  似乎此错误代码用于许多情况。就我而言,问题是在我们将 DataProtectionClass 设置为 NSFileProtectionComplete 后开始发生的。我还不确定修复方法。

                  【讨论】:

                    【解决方案11】:

                    删除权利不是我的选择,因为我想使用“iCloud”,所以在挖掘了一点后,我发现问题是“iOS 配置门户”上的应用程序配置中没有启用“iCloud” ”。

                    启用它并重新生成配置对我来说是诀窍。

                    【讨论】:

                      【解决方案12】:

                      我的问题是分发配置文件是创建作为临时而不是内部使我运行应用程序的设备不是接受它。

                      确保将设备添加到配置文件或创建企业配置文件。

                      【讨论】:

                        【解决方案13】:

                        尝试更正此错误时的另一个陷阱:您还需要从嵌入式扩展中替换配置文件。

                        就我而言,我的 iOS 应用的配置文件很好。我花了好几个小时才发现 我的小部件的配置文件(或 Today Extension)需要更新,因为要在新设备上进行测试。

                        确保检查所有相关和相关的目标,而不仅仅是您尝试执行的目标。

                        【讨论】:

                          【解决方案14】:

                          转到目标 -> 功能 -> 关联域

                          修复问题按钮

                          运行项目

                          【讨论】:

                            猜你喜欢
                            • 2019-03-21
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2017-03-15
                            • 2017-11-08
                            • 2016-08-29
                            • 1970-01-01
                            • 1970-01-01
                            相关资源
                            最近更新 更多