【问题标题】:What does get-task-allow do in Xcode?get-task-allow 在 Xcode 中有什么作用?
【发布时间】:2010-11-03 10:27:24
【问题描述】:

当我在我的 iPhone 应用项目中设置我的权利时,我创建了一个新的 Entitlements.plist,并将 get-task-allow 的值设置为 false。但为什么?这个键代表什么?

请注意,这与 Application could not be verified error when building app for iPhone device 有关 - 我发现将此键的值翻转为 true 允许我在我的设备上安装应用程序)

【问题讨论】:

    标签: ios xcode debugging code-signing entitlements


    【解决方案1】:

    来自this thread on ADC

    get-task-allow 登录到应用程序后,允许其他进程(如调试器)附加到您的应用程序。分发配置文件要求关闭此值,而开发配置文件要求打开此值(否则 Xcode 将永远无法启动并附加到您的应用程序)。

    【讨论】:

    • 项目是否需要有两个 Entitlements.plist 文件,其中一个将此值设置为 YES 以针对 Debug 配置文件,另一个指定 NO 以针对 Distribution 配置文件?
    • 没关系,解决了我自己的问题。如果您将 Entitlements.plist 从 Debug 构建设置中省略,则没有问题。
    • 但是,即使 Entitlements.plist 未包含在带有开发人员配置文件的调试模式下的项目中,我也可以进行调试。有人可以解释一下吗?
    • debug 的默认值为 true,release 的默认值为 false。将其设置为 false 将禁用调试。
    • 但是分发配置通常来自“发布”。这不应该意味着您不需要为 AdHoc 指定 FALSE 吗? (或者就此而言,有一个权利文件吗?)
    【解决方案2】:

    能够在 iPhone 上调试您的应用程序。

    【讨论】:

    • 有趣!如果仅此而已,那么我想知道为什么将值翻转为 false 会阻止我在设备上安装应用程序? (相关 SO 问题:stackoverflow.com/questions/997884/…
    • 这就是它的作用......但它究竟做了什么让你这样做?
    • 如果包含更多信息,如 Codebeef 的,这个答案可能会大大改善。
    • @Codebeef 我相信这是 Xcode 施加的限制,而不是固有的限制。
    【解决方案3】:

    虽然您的 answer 是正确的,但我只想更具体地说明这一点,以便那些想知道 get_task_allow 到底是什么意思的人可以。

    get_task_allow 是一项允许其他应用获取您应用的任务端口的权利。这意味着,如果任何其他应用程序使用您的应用程序进程 ID 运行 task_for_pid(),他们将获得您应用程序的任务端口,以便他们可以执行诸如在内存中写入和读取内容等操作,从而能够修补和修改内容您的应用的行为。

    如果你看看越狱是如何工作的,你会注意到他们做的第一件事就是得到task_for_pid(mach_task_self(),0,&kernel_task);,因为kernel_task是一个mach_port_t,其值为0,所以他们能够触摸内核的内存。

    由于内核授权没有get_task_allow 授权,Apple 甚至已经排除了使用tfp0(task_for_pid 0) 的可能性,因此他们需要一个补丁。

    所以基本上,由于 Xcode 需要访问您的应用程序的内存并使用它来调试它,您需要启用它进行调试,但您需要禁用它来分发您的应用程序,否则任何应用程序都可以获取您的任务端口。

    【讨论】:

    【解决方案4】:

    对于 xcode 4:您必须从新文件创建 Entitlements.plist 文件。和 Targets->build Settings->Code Signing Entitlements you have to write here "Entitlements.plist"

    我这样做了,xcode 不再出现错误

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-09
      • 2012-07-01
      相关资源
      最近更新 更多