Depuración de iPhone: ¿Cómo resolver 'no se pudo obtener la tarea para el proceso'?

158

Acabo de agregar un perfil de aprovisionamiento a XCode (necesario para admitir notificaciones y en la compra de aplicaciones), configurar según sea necesario la configuración de compilación para la distribución ad hoc e intenté ejecutar la aplicación en el dispositivo (lo he hecho varias veces en el pasado , Sin ningún problema).

La aplicación está instalada, pero no se inicia. En la consola, veo el siguiente mensaje:

Error launching remote program: failed to get the task for process 82.
Error launching remote program: failed to get the task for process 82.
The program being debugged is not being run.
The program being debugged is not being run.

Sin embargo, si inicio la aplicación en el dispositivo manualmente, funciona como se esperaba. Recientemente instalé el último XCode 3.2 para Snow Leopard. ¿Es este un error conocido de esta versión de XCode o estoy haciendo algo mal?

EDITAR: Funciona bien con la distribución de versiones utilizando el perfil de aprovisionamiento de desarrollo. He revisado nuevamente el perfil de aprovisionamiento ad hoc para asegurarme de que incluye el dispositivo que estoy usando.

Massimo Cafaro
fuente
También esto puede ayudar: vaya a Organizador -> Proyectos -> DerivedData delete and clean. Asegúrese de que todas las firmas en Project y Target estén configuradas de manera coherente y correcta. Esto ayudó en mi caso ...
user387184

Respuestas:

110

He tenido problemas para depurar binarios en el dispositivo a través de XCode cuando la aplicación incluye un archivo Entitlements.plist, que no es necesario instalar en el dispositivo para la depuración. En general, entonces, he incluido este archivo para compilaciones de lanzamiento (donde es necesario para la App Store) y lo eliminé para la depuración (para poder depurar la aplicación desde XCode). Ese puede ser tu problema aquí.

Actualización : a partir de (al menos) agosto de 2010 (iPhone 4.1 SDK), en muchos casos ya no es necesario incluir Entitlements.plist en su aplicación (por ejemplo, distribución a través de la App Store). Consulte aquí para obtener más información sobre los casos en que Se requiere Entitlements.plist:

IMPORTANTE: un archivo de derechos generalmente solo se necesita al compilar para la distribución ad hoc o al habilitar el intercambio de datos de llavero. Si ninguno de estos es verdadero, elimine la entrada en Derechos de firma de código. (énfasis mío)

fbrereto
fuente
Tiene razón, he verificado que, de hecho, es el valor booleano get-task-allow establecido en false en Entitlements.plist lo que impide la depuración. Gracias.
Massimo Cafaro
1
Para su información, tuve exactamente el mismo problema y lo que resolvió el problema fue AGREGAR el archivo de derechos con el conjunto get-task-allow establecido en SÍ ... así que si tiene el mismo problema y no tiene el archivo de derechos, intenta agregarlo ...: P
Alex Zak
A partir de iOS 8.1.3 titulos.plist se requiere también para las aplicaciones firmadas de la empresa.
Roy K
289

El perfil ad-hoc no admite depuración. Debe depurar con un perfil de Desarrollo y usar el perfil Ad-Hoc solo para distribuir copias no depurables.

cdespinosa
fuente
Que yo sepa, no he visto esta información en el portal del programa de desarrollo. Pero mi comentario a fbrereto explica por qué esto es así: no tenemos el archivo Entitlements.plist ni en configuraciones de depuración ni de lanzamiento.
Massimo Cafaro
55
Yo tenía el mismo problema después accidentalmente activo la identidad de firma de código para una distribución iPhone en Xcode 4
cpungaliya
1
¿Cómo puedo cambiar la parte posterior de perfil para la depuración si sólo clic en "Inicio"
spankmaster79
Solo otro de esos pequeños escollos que Apple te presentó. Acabo de pasar esto después de volver a hacer todos mis perfiles y certs gracias a un error del portal ... suspiro. Gracias por la información, solucioné mi problema.
n13
Esta fue la respuesta a mi problema. No tenía nada que ver con los derechos.
DOOManiac
37

Tuve el mismo problema, pero lo resolví siguiendo los siguientes pasos simples:

  1. Asegúrese de haber seleccionado depurar en lugar de liberar.
  2. En las configuraciones de depuración, en la configuración del proyecto, debe haber seleccionado el perfil del desarrollador y no es necesario especificar la lista de derechos.
  3. También hay la misma configuración en: Objetivos: si no es manual, cámbielos a lo anterior para la configuración de depuración. Funcionará.

Todo lo mejor.

Aks
fuente
La razón por la que esto funcionó es casi seguro que su configuración Debug tiene get-task-allow establecido en Entitlements.plist, mientras que Release uno no lo hace: esto es para evitar que las personas adjunten el depurador a las copias que obtienen de la App Store (ver- También la respuesta de Kai a continuación acerca de configurarlo en sí para que funcione ...)
dsmudger
Lo hizo por mi. De alguna manera, la compilación se configuró en 'lanzamiento' y los perfiles de lanzamiento no se configuraron correctamente.
KPK
19

Esto me llevó un tiempo darme cuenta.

Si está utilizando un perfil de distribución / ad hoc / no puede probarlo a través de xcode. Recibirá el error: el programa que se está depurando no se está ejecutando.

Puede compilar la aplicación, ir a la carpeta de productos en su aplicación en xcode, hacer clic en el archivo con el nombre de su proyecto y elegir revelar en el buscador. Puede arrastrar esta aplicación a iTunes y sincronizar y en ese momento puede probar su aplicación en su dispositivo.

Atma
fuente
Sí, este fue mi problema. No tenía ningún archivo de derechos, pero había cambiado mi configuración de compilación de depuración a un perfil de distribución. Cambiar a un perfil de desarrollo solucionó todo.
vocaro
1
Deseo que XCode sea más directo sobre esto. No es obvio en absoluto que no pueda probar una compilación de distribución en un dispositivo mientras está conectado a XCode. Es un caso de uso común.
user798719
13

Si recibe dicho error, la única razón podría ser que esté utilizando un perfil de Distribución en lugar de un perfil de desarrollo en Xcode o una propiedad de Titularidad faltante. Si no está utilizando Entitlements.plist, el único error posible podría ser que la aplicación se empaquete con un perfil de distribución. Puede verificar esto confirmando los registros de compilación. Para cambiar esto, vaya a Configuración de compilación del proyecto y verifique la configuración de Entidad de firma de código. Para que la depuración funcione, esta configuración debe ser un perfil de desarrollador para la configuración que está utilizando actualmente.

https://developer.apple.com/library/ios/#qa/qa1682/_index.html

Para obtener resultados instantáneos, elimine todos los perfiles de aprovisionamiento móvil de xcode e instale el perfil de desarrollador que desea utilizar.

Varun Bhatia
fuente
13

¡Casi 2 horas en este tema! Y finalmente lo resolví reemplazando el

Desarrollador de iPhone

a

Desarrollador de iPhone: Nombre de mi cuenta de desarrollador

para depuración CODE_SIGN_IDENTITY:

  1. Seleccionar objetivo del proyecto
  2. Configuración de compilación
  3. Búsqueda por "signo de código"
  4. Modifique la fila de depuración de la sección CODE_SIGN_IDENTITY con "iPhone Developer: My Dev Account Name" , no solo "iPhone Developer" .

No tengo idea de por qué funciona, ¡pero lo hace! ¡Al menos para mi!


Entorno: Xcode 5.0 (5A1412).

Kjuly
fuente
Esto también funcionó para mí, gracias. tuvo que jugar con exactamente qué identidades usar, pero finalmente le gustó un cierto combo. ¡Xcode 6 realmente necesita una función de "corrección automática" para este tipo de cosas, muchas tareas de limpieza para las que no tengo tiempo!
John Contarino
1
Solo para agregar a esto, lo que hice fue similar, pero diferente: cambié el perfil para que sea el perfil del equipo (que se usa para la depuración), que configuró el firmante de código para que sea "automático" - en XCode 5+ realmente debería ser seleccionando el perfil para una compilación y dejándolo decidir qué firmante usar en función de eso.
Kendall Helmstetter Gelner
@KendallHelmstetterGelner thx, ¡esto podría ser útil para otros! : D
Kjuly
También debería agregar que cambié el perfil del equipo para la compilación "Debug", que se utiliza para ejecutar en el dispositivo desde XCode (a menos que modifique la configuración del esquema)
Kendall Helmstetter Gelner
1
Esto resolvió mi problema con este problema sin hacer nada más que reconstruir con una identidad de firma de código diferente. ¡Gracias! En mi caso, estaba usando una identidad de distribución ad-hoc.
Sean Michael Dorian
12

Verifique su sección de firma de código. Asegúrese de que la firma de código sea la firma de código del desarrollador

usuario1770342
fuente
Esto hizo lo mío: por alguna razón en mi Target, el 'Equipo' había cambiado a 'Ninguno', al cambiarlo de nuevo lo ordenó. Saludos
Ralpharoo
9

Abra Entitlements.plist y establezca el valor booleano get-task-allow en YES: ¡el depurador puede adjuntarse ahora!

Kai
fuente
Ya lo he intentado muchas veces y no entiendo por qué no soluciona el problema. este sería el mejor método si todavía quisieras incorporar testflightapp
owen gerig
Mi esquema de ejecución está configurado para depurar. ¡Solo esta solución me lo arregló! Gracias.
Pieter
¡Gracias, realmente me ayuda!
Amir Hudani
4

Vaya a Editar esquemas y en Ejecutar -> Información -> Configuración de compilación, cambie de Ad-Hoc a Depurar. Haga clic en Aceptar para guardar.

Arunabh Das
fuente
1

Es posible que tenga un perfil de desarrollo vencido en su teléfono.

Mi perfil de aprovisionamiento de desarrollo expiró hace varios días y tuve que renovarlo. Instalé el nuevo perfil en mi teléfono y apareció el mismo mensaje de error cuando intenté ejecutar mi aplicación. Cuando miré la configuración del perfil en mi teléfono, noté el perfil caducado y lo eliminé. Eso despejó el error para mí.

hkatz
fuente
1

Recibí este error cuando intenté iniciar la aplicación desde Xcode porque pensé que había seleccionado solo el perfil de distribución. La compilación fue exitosa, así que creé el archivo .ipa. Usé testflightapp.com para ejecutar la aplicación. También puedes usar iTunes.

bugle
fuente
1

Según lo indicado por Buffernet, no puede utilizar un perfil de aprovisionamiento de distribución para depurar. Cuando cambié a un perfil de aprovisionamiento de desarrollador, recibí el error "No se encontró un perfil de aprovisionamiento válido para este ejecutable".

Un google rápido para esto me lleva al artículo que se detalla a continuación. A partir de ahí, me di cuenta de que no tenía un perfil de aprovisionamiento de desarrollo válido ya que mi iPhone no se había agregado al Portal de aprovisionamiento y todas las demás cosas involucradas.

¡Asegúrese de ejecutar un perfil de aprovisionamiento de desarrollador de iPhone y de que su dispositivo se haya agregado al portal de aprovisionamiento!

http://iosdevelopertips.com/xcode/a-valid-provisioning-profile-for-this-executable-was-not-found.html

Jarada
fuente
0

Sí, los perfiles de aprovisionamiento que tienen fines de distribución, es decir, los perfiles de aprovisionamiento de distribuciones no admiten la depuración y dan este error. Simplemente cree y use el perfil de aprovisionamiento de depuración (tenga cuidado al crear el perfil de aprovisionamiento desde la cuenta developer.apple.com).

Rakesh
fuente
0

Acabo de cambiar mi nombre de identificador de paquete, que parecía funcionar.

Joe Barbour
fuente
-1

Parcheé mi proyecto con JailCoder http://jailcoder.com/ y resolví el problema. Simplemente descárguelo y arrastre su proyecto xcode a él.

Andrés Canavesi
fuente