Actualmente estoy desarrollando una aplicación que recibe notificaciones push. Todo esto funciona 100% a través de una página PHP. Hay varios tipos diferentes de notificaciones push que mi aplicación puede recibir. El PHP maneja esto y envía diferentes paquetes de información a mi aplicación que se reciben todos muy bien.
Sin embargo, cuando los usuarios "ven" la notificación y se inicia mi aplicación, obviamente quiero tomar una acción diferente a la que haría si el usuario acaba de iniciar la aplicación manualmente, y además, diferentes acciones dependiendo del tipo de notificación push. Tengo esto funcionando bien ... estructuralmente.
Se supone que uno de mis tipos de inserción abre una UIView que realiza varias conexiones a varios servidores diferentes y negocia datos de un lado a otro. Esta UIView funciona bien cuando, por ejemplo, se activa desde el menú principal; sin embargo, cuando mi notificación de inserción activa esta UIView, las conexiones de socket no están actuando como se esperaba.
Ahora mi pregunta no es acerca de los enchufes, sino más aún: ¿cómo se depura ese problema? Por lo que puedo decir (soy relativamente nuevo) cuando la aplicación se inició desde una notificación automática, no hay forma de vincular esa ejecución al depurador / consola / etc ... Me está costando mucho tratar de depurar el código usando UIAlertViews, ya que hay muchas líneas de comunicación entre los distintos servidores.
Cualquier consejo que tengas para mí sería muy apreciado.
fuente
Para Xcode 4 tienes que:
Más aquí en la sección "Personalizar ejecutables en el editor de esquemas".
EDITAR:
en caso de que pierda registros en GDB, vea el comentario de Louis Gerbarg a su respuesta.
fuente
Para XCode 10, 9, 8, 7 y 6:
Ahora puede depurar al iniciar desde una notificación, una URL personalizada o tocando el icono de la aplicación.
fuente
No estoy trabajando con notificaciones push, así que no sé el funcionamiento exacto de las notificaciones push. Sin embargo, trataría de imitar la recepción de una notificación push dejando que el método principal de su programa pretenda que se haya publicado una notificación si es posible, o llamando a la aplicación: didFinishLaunchingWithOptions: UIApplicationDelegate desde dentro del método applicationDidFinishLaunching: método.
HTH - Saludos, Daan
fuente
En Xcode 6:
Debug
>Attach to Process
> Escoja su Aplicaciónfuente
Para XCode 11 y 10, puede hacer lo siguiente:
Elija Editar esquema.
Seleccione la opción Ejecutar desde el panel izquierdo
En la parte de inicio, seleccione esperar a que se ejecute el ejecutable , luego cierre el cuadro de diálogo.
Construye y ejecuta el proyecto. Ahora puede iniciar la aplicación tocando el ícono de la aplicación o tocando el mensaje de notificación.
fuente