Entonces, cuando configuro mis derechos en mi proyecto de aplicación de iPhone, creo un nuevo Entitlements.plist y establezco el valor de get-task-allow en falso. ¿Pero por qué? ¿Qué representa esta clave?
EDITAR
Tenga en cuenta que esto está relacionado con esta pregunta : descubrí que cambiar el valor de esta clave a verdadero me permitió instalar la aplicación en mi dispositivo)
fuente
La capacidad de depurar su aplicación en el iPhone.
fuente
Si bien su respuesta es correcta, solo quiero ser más específico sobre esto para que las personas que quieran saber qué significa exactamente
get_task_allow
, puedan.get_task_allow
es un derecho que permite a otras aplicaciones obtener el puerto de tareas de su aplicación. Esto significa que si cualquier otra aplicación se ejecutatask_for_pid()
con su ID de proceso de aplicación, obtendrán el puerto de tareas de su aplicación para que puedan hacer cosas como, por ejemplo, escribir y leer cosas en la memoria, por lo tanto, podrán parchear cosas y modificar el comportamiento de tu aplicación.Si se echa un vistazo a cómo funciona una fuga de la cárcel, se dará cuenta de una de las primeras cosas que hacen es conseguir
task_for_pid(mach_task_self(),0,&kernel_task);
siendo quekernel_task
es unamach_port_t
con el valor0
, por lo que son capaces de tocar la memoria del kernel.Como los derechos del kernel no tienen
get_task_allow
derechos, y Apple incluso ha eliminado la posibilidad de hacertfp0
(task_for_pid 0
), necesitan un parche.Entonces, básicamente, como Xcode necesita tocar la memoria de su aplicación y trabajar con ella para depurarla, deberá habilitar esto para la depuración, pero deberá deshabilitar esto para distribuir su aplicación o, de lo contrario, cualquier aplicación podría obtener su puerto de tareas.
fuente
Para xcode 4: debe crear un archivo Entitlements.plist a partir de un archivo nuevo. and Targets-> build Settings-> Code Signing Entitlements debe escribir aquí "Entitlements.plist"
Hice esto y xcode no recibe más errores
fuente