【问题标题】:Do I still need an Entitlements.plist file for an ad-hoc build?我还需要 Entitlements.plist 文件来进行临时构建吗?
【发布时间】:2011-06-19 19:03:30
【问题描述】:

iOS 配置门户上的Distribution 页面中给出的说明仍然清楚地描述了创建的过程,并将 Entitlements.plist 文件包含在构建中以用于临时分发。另一方面,iOS Development Guide's Distributing Applications page 没有提及 Entitlements.plist 文件。

当我尝试按照 iOS 开发指南中的说明“构建和存档”我们最新的应用程序时,由于权利问题,生成的 ad-hoc app.ipa 无法安装在我的开发设备上。当我使用 Entitlements.plist 文件重建时,新的 app.ipa 安装良好。

不幸的是,在 app.ipa 中包含 Entitlements.plist 意味着生成的构建不能简单地重新签名并提交到应用商店 - 对吧?相反,我必须在没有 Entitlements.plist 的情况下重建并将结果提交到应用商店。

我想我真的有几个相关的问题:

  1. 是否按照 iOS 开发指南(没有 Entitlements.plist,只需使用 ad-hoc 分发配置文件签名)中的指示生成的 app.ipa 是否可以在测试分发配置中正确识别的非开发设备上安装个人资料?
  2. 我有什么方法可以在我的开发机器上测试“构建和存档”的确切结果,以便我可以重新签名并从 Xcode 提交到 App Store?
  3. 如果我提交了明确包含 Entitlements.plist 文件的 app.ipa 是否会被拒绝?

谢谢!

【问题讨论】:

  • 如果您转到目标 > 构建设置 > 代码签名,则有一个代码签名权利部分会告诉您是否拥有。我的经验是,直到最近,我还不需要一个用于 Ad Hoc 构建,但最近(2012 年 7 月)没有它们,Ad Hoc 构建将无法工作。

标签: xcode ios adhoc entitlements


【解决方案1】:

我没有你所有问题的答案,但是当我最近使用临时分发进行一些测试时,我需要添加一个 Entitlements.plist。我认为文档仍然在讨论 .plist 中的“get-task-allow”设置,但是当我完全按照说明进行操作时,我在签署应用程序时遇到了问题。相反,我使用 Xcode 的模板创建了一个 Entitlements.plist。它有两个或三个设置,没有一个是 get-task-allow。我将它完全保留为创建时的状态,并且构建成功。

我过去的经验是,提交到应用商店且包含 Entitlements.plist 的应用未能通过验证步骤。

【讨论】:

    【解决方案2】:

    来自 iOS 开发者库:

    如果您正在进行 Ad Hoc 分发,则必须正确配置项目以包含 Entitlements.plist 文件并取消选中 get-task-allow 复选框(将其设置为 False)。 http://developer.apple.com/library/ios/#technotes/tn2242/_index.html

    在分发版本中保留 Entitlements.plist 文件没有问题,我已经提交了几个应用程序。 实际上,Entitlements.plist 也适用于您的应用可能使用的其他 iOS 功能:

    权利。这些文件定义 提供您的属性 应用程序访问 iOS 功能 (例如推送通知)和 安全数据(例如用户的 钥匙串)。

    http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iphone_development/115-Configuring_Applications/configuring_applications.html

    还要检查这个答案: The executable was signed with invalid entitlements

    【讨论】:

      【解决方案3】:

      如果您使用了现代化工具,Get-task-allow 现在在 Xcode 4.1 中称为“可以调试”

      【讨论】:

        【解决方案4】:

        我刚试过,不需要权限,只需要简单的 ad-hoc,只需使用 ad-hoc 配置文件存档和共享,就可以了。

        【讨论】:

          【解决方案5】:

          从 Xcode 4.2 开始,在创建不需要任何特殊权限即可运行的应用程序时,您不再需要创建 Entitlements.plist 文件。 get-task-allow 权利会自动设置为 true 或 false,具体取决于您使用哪种配置文件(开发人员、Ad Hoc 或 App Store)签署应用程序。

          参考:http://help.testflightapp.com/customer/portal/articles/535398-invalid-profile-distribution-build-entitlements-must-have-get-task-allow-set-to-false-

          【讨论】:

            猜你喜欢
            • 2022-11-03
            • 1970-01-01
            • 2011-09-09
            • 2021-06-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-07-23
            相关资源
            最近更新 更多