2009-01-17 10 views
8

Estoy desarrollando una aplicación para el iPhone, pero supongo que la pregunta es la misma en la Mac. ¿Cuál es su enfoque para depurar el estado de su aplicación una vez que ha sido iniciada por su esquema de URL?¿Cómo se puede depurar su aplicación si comenzaron a usar un esquema de URL personalizado?

+0

Especialmente Estoy hablando de llegar a un punto de ruptura dentro de las AppDelegates - (BOOL) aplicación:. (UIApplication *) handleOpenURL aplicación : (NSURL *) url método? – stigi

Respuesta

21

Hay una manera de depurar la aplicación cuando se lanza desde una URL externa:

  1. Establecer un punto de interrupción en la que desea que en application:handleOpenURL: o application:didFinishLaunchingWithOptions:
  2. En Xcode, editar la configuración del archivo ejecutable activo. En la pestaña Depuración, seleccione la casilla de verificación "Esperar el siguiente lanzamiento/notificación de inserción".
  3. Generar y depurar. La consola le enviará una alerta que diga "Esperando a que [AppName] se lance ... El depurador se adjuntará a [AppName] la próxima vez que se lance".
  4. Abra su aplicación invocando una URL personalizada o enviándola una notificación de inserción. El depurador se detendrá en su punto de interrupción.
+0

Gracias, encontré la respuesta yo mismo hace un mes, pero olvidé de publicarla aquí. Respuesta, ¡mira! – stigi

+0

Esta solución funciona para Xcode 3.x. Para Xcode 4.x, ver: http://stackoverflow.com/a/6451601/135712 –

2

En realidad, creo que sería bastante diferente en la Mac que en el iPhone ya que la aplicación puede abrirse en la Mac y llamar al esquema URL, mientras que en el iPhone debe salir de la aplicación para abrir otra para llamar al esquema de URL.

Lo que podría intentar es agregar un botón de depuración a su UI, que le permite llamar al esquema de URL desde dentro de la aplicación en ejecución (llamando a -openURL: en NSWorkspace). En teoría, esto debería funcionar igual si su aplicación está abierta o cerrada cuando se envía el esquema de URL.

+0

gracias, también creo que ese es el camino a seguir en ese momento ... – stigi

2

Estoy en Xcode 8.2.1 y la forma más rápida es simplemente ir a Producto -> Editar esquema y seleccionar "Esperar que se ejecute el ejecutable" como en la imagen siguiente. Cuando se inició la depuración, no se iniciará la aplicación, sino que se "espera" a que se abra la aplicación ". Cuando una acción (hacer clic en la notificación de inserción), el punto de interrupción se iniciará en

enter image description here

Cuestiones relacionadas