Portanto, quando configuro meus direitos no projeto do meu aplicativo para iPhone, crio um novo Entitlements.plist e defino o valor de get-task-allow como false. Mas por que? O que esta chave representa?
EDITAR
Observe que isso está relacionado a esta questão - descobri que virar o valor desta chave para true me permitiu instalar o aplicativo no meu dispositivo)
iphone
cocoa-touch
xcode
Codebeef
fonte
fonte
A capacidade de depurar seu aplicativo no iPhone.
fonte
Embora sua resposta esteja correta, eu só quero ser mais específico sobre isso para que as pessoas que desejam saber o que exatamente
get_task_allow
significa, possam.get_task_allow
é um direito que permite que outros aplicativos obtenham a porta de tarefas do seu aplicativo. Isso significa que se qualquer outro aplicativo for executadotask_for_pid()
com o ID do processo do seu aplicativo, eles obterão a porta de tarefas do seu aplicativo para que possam fazer coisas como, por exemplo, escrever e ler coisas na memória, podendo, portanto, corrigir coisas e modificar o comportamento de seu aplicativo.Se você der uma olhada em como funciona um jailbreak, você notará que uma das primeiras coisas que eles fazem é conseguir
task_for_pid(mach_task_self(),0,&kernel_task);
serkernel_task
ummach_port_t
com valor0
, para que possam tocar a memória do kernel.Como os direitos do kernel não têm
get_task_allow
direitos, e a Apple até removeu a possibilidade de fazertfp0
(task_for_pid 0
), eles precisam de um patch.Então, basicamente, como o Xcode precisa tocar a memória do seu aplicativo e trabalhar com ele para depurá-lo, você precisará habilitar isso para depuração, mas você precisará desabilitar isso para distribuir seu aplicativo ou então qualquer aplicativo seria capaz de obter seu porta de tarefas.
fonte
Para o xcode 4: você deve criar o arquivo Entitlements.plist a partir do novo arquivo. and Targets-> Build Settings-> Code Signing Entitlements você deve escrever aqui "Entitlements.plist"
Eu fiz isso e o xcode não recebe mais erro
fonte