Pregunta

Actualmente estoy desarrollando una aplicación que recibe notificaciones Push. esto todo lo que he funcionando al 100% a través de una página PHP. Hay varios tipos diferentes de notificaciones push mi aplicación puede recibir. El PHP se encarga de esto y envía diferentes paquetes de información a mi aplicación, que están todos recibieron muy bien.

Sin embargo, cuando los usuarios "vistas" de la notificación y mis lanza una aplicación, que, obviamente, quieren tomar una acción diferente de lo que haría si el usuario acaba de lanzar la aplicación manualmente - y encima de eso, diferentes acciones dependiendo del empuje tipo de notificación. Tengo esta trabajando muy bien ... estructuralmente.

Uno de mis tipos de empuje se supone que abrir un UIView que hace varias conexiones a varios servidores diferentes y negocia los datos de ida y vuelta. Este UIView funciona bien cuando, por ejemplo, activa desde el menú principal -. Sin embargo, cuando mi notificación de inserción está provocando esta UIView a aparecer, las conexiones de socket no están actuando como era de esperar

Ahora mi pregunta no es acerca de las tomas de corriente, pero más aún - ¿Cómo depurar un problema ?? De lo que puedo decir (soy relativamente nuevo) cuando la aplicación lanzada desde una notificación de inserción no hay manera de ligar que la ejecución del depurador / consola / etc ... Estoy teniendo un momento muy difícil tratar de depurar el código utilizando UIAlertViews, ya que hay muchas líneas de comunicación de ida y vuelta entre los diversos servidores.

Cualquier consejo que tiene para mí sería muy apreciada.

¿Fue útil?

Solución

En XCode <4.0 (por XCode> = 4, véase la respuesta por debajo de delirus), ahora se puede configurar Xcode para adjuntar el depurador a la aplicación después de iniciar la aplicación, en lugar de lanzar la aplicación a través del depurador. Esto le permite depurar cosas que varían según el estado lanzamiento de su aplicación, tales como esquemas de URL, mesas de trabajo y notificaciones push.

  1. En Xcode mirada en la barra de Fuente, y debajo de los objetivos Habrá ejecutables.
  2. Abra el inspector para su aplicación en los ejecutables.
  3. Haga clic en la ficha ficha Depuración en el inspector.
  4. Desactive la opción "Start ejecutable después de comenzar depurador"
  5. Compruebe el "esperar para el próximo lanzamiento de notificación / push"

Ahora, cuando se hace clic depuración de Xcode en lugar de lanzar la aplicación aparecerá una ventana diciendo que está esperando a que la aplicación inicie. A continuación, inicie la aplicación normalmente en el teléfono y Xcode se adhiere a ella

Otros consejos

Para Xcode 4 tiene que:

  1. Editar su esquema activo a través desplegable "Esquemas". ( + <)
  2. Que elegir su producto - 'Run MyApp.app' a la izquierda.
  3. Seleccione la pestaña 'Info' a la derecha.
  4. Y finalmente, elegir la opción "Esperar MyApp.app para poner en marcha" opción.

aquí en "Personalizar ejecutables en el editor de esquemas de" sección.

EDIT:
En caso de que pierda en GDB registros, consulte comentario de Louis Gerbarg a su respuesta.

Para XCode 10, 9, 8, 7 y 6:

  1. seleccionar el esquema en la barra de herramientas (justo a la izquierda del dispositivo que va a depurar con)
  2. Selecciona Editar Esquema
  3. Seleccione Ejecutar en el panel de la izquierda
  4. Para la Iniciar , seleccione Esperar ejecutable que se lanzará
  5. Cierre el Editor y Esquema Ejecutar su proyecto XCode

Ahora puede depurar en el lanzamiento de una notificación, URL personalizada o tocando el icono de la aplicación.

No estoy trabajando con las notificaciones push, así que no sé el funcionamiento exacto de las notificaciones push. Sin embargo, me gustaría probar imitando la recepción de una notificación de inserción al permitir que el método principal de su programa de pretender una notificación fue publicado si es posible, o llamar a la aplicación: didFinishLaunchingWithOptions: Método UIApplicationDelegate desde dentro de la applicationDidFinishLaunching:. Método

HTH - Saludos, Daan

En Xcode 6:

  1. conectar el iPhone a MacBook con USB
  2. lanzar la aplicación en el iPhone tocando el icono
  3. En el menú de Xcode, Debug> Attach to Process> Escoja su aplicación
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top