Answers:
从ADC上的该线程:
get-task-allow,在登录到应用程序后,允许其他进程(例如调试器)连接到您的应用程序。分发配置文件要求关闭此值,而开发配置文件要求打开此值(否则Xcode将永远无法启动并附加到您的应用程序)。
在iPhone上调试应用程序的能力。
尽管您的答案是正确的,但我只是想对此更加具体,以便希望知道确切get_task_allow
含义的人可以。
get_task_allow
是一项权利,允许其他应用程序获取您应用程序的任务端口。这意味着,如果任何其他应用程序task_for_pid()
使用您的应用程序进程ID 运行,它们将获得您应用程序的任务端口,因此它们可以执行诸如在内存上写入和读取内容之类的操作,从而能够修补这些内容并修改其行为。您的应用。
如果你看看怎么越狱的作品,你会发现他们做的第一件事就是让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需要触摸应用程序的内存并对其进行调试,因此您需要启用该功能进行调试,但是需要禁用此功能才能分发您的应用程序,否则任何应用程序都可以获取您的应用程序任务端口。