2012-03-15 10 views
71

Tengo un problema Estoy solucionando problemas que ocurre con muy poca frecuencia y no parece suceder cuando tengo cosas que se ejecutan bajo Xcode.Adjuntar depurador a la aplicación IOS después del lanzamiento

¿Es posible ejecutar una aplicación normalmente (es decir, desde Springboard) hasta que ocurra mi problema, y ​​luego adjuntar un depurador en ese punto?

Preferiría hacer esto sin jailbreak si es posible.

Respuesta

95

Con su dispositivo conectado a su Mac, seleccione Producto -> Adjuntar a proceso -> Por identificador de proceso (PID) o Nombre ... en Xcode. En la hoja de diálogo, ingrese el nombre de su aplicación tal como aparece en el navegador Debug cuando se inicia a través de Xcode.

Si la aplicación ya se está ejecutando, el depurador se adjuntará al proceso en ejecución. Si no se está ejecutando, esperará a que la aplicación se inicie y luego se adjuntará.

+0

Ole, gracias por la respuesta. Estaba buscando una manera de hacer esto. Cuando voy a adjuntar el depurador, parece que se adjunta pero luego aparece este mensaje: advertencia: no se pueden leer símbolos para/var/mobile/Applications/{GUID}/{APPNAME} .app/{APPNAME} (archivo no encontró). Cuando presiono el botón "detener" en XCode, la aplicación finaliza. Parece que no está encontrando los símbolos de depuración, aunque se está construyendo en modo de depuración. ¿Algunas ideas? – Brian

+2

Tengo un problema con ** Si no se está ejecutando, esperará a que la aplicación se inicie y luego adjunte. ** parte. No funciona Uso el nombre del proceso para esperar a que la aplicación llame. Lanzo la aplicación en el iPhone, pero el depurador nunca se da cuenta de que la aplicación ha comenzado. – Jonny

+1

@BrianV: debe asegurarse de estar compilando con -ggdb si desea poder adjuntarlo al proceso. – itfische

47

En Xcode 5.0.1 y 6 se encuentra en

Debug > Attach to Process > By Process Identifier (PID) or Name... in Xcode 
+1

También en Xcode 6. – Kevin

83

Voy a dejar esto aquí ya que ninguno de los otros 2 respuestas me dio suficiente detalle sin un poco de una lucha.

  1. ejecutar su aplicación en el simulador y tomar nota del nombre en el navegador de depuración enter image description here

  2. que conectar el dispositivo y no se olvide de seleccionar el dispositivo como el objetivo enter image description here

  3. Depurar> Adjuntar a proceso> Por identificador de proceso (PID) o Nombre enter image description here
  4. Ingrese el nombre del paso 1 y adjúntelo. Eso debería ser todo lo que tienes que hacer. enter image description here
+2

Deberías tener 1000 votaciones ascendentes. La depuración de cosas que comienzan a través de un esquema de URL de cutom puede ser un dolor en el culo sin este truco. ¡Muchas gracias! – txulu

+0

Me gustaría haber visto esta respuesta antes de dedicarme 20 minutos a resolver esto por mi cuenta :( –

+4

Esto funciona porque se adhiere al proceso, pero no puedo obtener ningún resultado de registro, que es lo que realmente necesito. ideas? – Orlando

5

en Xcode 7 es sólo: Test> Asociar al proceso por el PID o Nombre

Cuestiones relacionadas