¿Cómo depurar una aplicación que funciona bien en el simulador de iOS, pero falla en el iPhone X?

Actualmente estoy creando una aplicación con Cordova, y parece que en la última versión alfa, la aplicación solo funciona en el simulador de iOS. Cuando se ejecuta en un iPhone X, la aplicación se bloquea inmediatamente.

No estoy nada familiarizado con el desarrollo de software para la plataforma Apple, así que me preguntaba:

  • ¿Cuáles son mis opciones para entender lo que está mal?

  • ¿Hay algún tipo de cosas que deba tener en cuenta para evitar un choque silencioso?

Sé que podemos vincular un iPhone con el depurador de Safari, pero asumo que esto solo funcionará para la inspección del navegador, no para la depuración de aplicaciones.

Esto parece un poco fuera de alcance aquí. ¿Se preguntó esto en SO o hubo alguna objeción para migrarlo allí? Consulte el centro de ayuda y contáctenos en Ask Different Chat o Ask Different Meta si es necesario.
Empecé a hacerlo, pero creo que también está fuera del alcance de SO, ya que no está realmente relacionado con el código (bueno, mi problema es, pero solo solicito soporte de software).

Respuestas (1)

Puede depurar la aplicación ejecutándola en el dispositivo a través de Xcode.

Primero, tengamos los requisitos previos correctos. Necesitará acceso a una Mac con una versión reciente de macOS y Xcode instalada (preferiblemente la última para cada una, macOS High Sierra 10.13.6 y Xcode 9.4.1).

Una vez que tengas tu Mac lista, obtén acceso al código fuente de la aplicación. Abra el archivo xcodepoject para el archivo del proyecto con Xcode. El archivo de proyecto para un proyecto llamado Muestra se ve así en Finder:

ingrese la descripción de la imagen aquí

Una vez que tenga el proyecto abierto con Xcode, su próximo paso será construirlo con éxito. Hágalo presionando Shift++ o seleccionando Producto → Construir para → Ejecutar desde la barra de menú de Xcode Command. rUna compilación exitosa (sin errores de compilación) se indica mediante este HUD que se muestra en el escritorio:

ingrese la descripción de la imagen aquí

El siguiente paso sería ejecutar en el dispositivo. Conecta tu iPhone X a tu Mac usando el cable lightning. Verifique que el dispositivo esté conectado y que Xcode lo reconozca, como se mostrará en el menú desplegable de selección de destino de ejecución en la barra de herramientas de Xcode:

ingrese la descripción de la imagen aquí

Una vez que el dispositivo y el nombre de la aplicación se seleccionan en el menú desplegable como se muestra arriba, para ejecutar la aplicación, haga clic en el botón de reproducción en la barra de herramientas, o seleccione Producto → Ejecutar desde la barra de menú o use el atajo de teclado Command+ r.

Ahora la aplicación debería iniciarse en su iPhone. Asegúrese de que su iPhone esté desbloqueado y que tanto la Mac como el iPhone hayan confiado el uno en el otro. Deberá agregar su ID de desarrollador de Apple registrado en Xcode para poder depurar la aplicación en el dispositivo (si aún no lo ha hecho).

ingrese la descripción de la imagen aquí

Suponiendo que todo lo mencionado anteriormente esté configurado correctamente, debería poder iniciar la aplicación en su iPhone a través de Xcode y depurarla.

Detección de choque:

Como mencionó que su aplicación se bloquea al iniciarse, asumo que está obteniendo la compilación en el dispositivo y experimentándola. Para identificar el motivo del bloqueo en el código de su aplicación, puede seguir los siguientes pasos:

  1. Navegue hasta el navegador de puntos de interrupción en Xcode presionando Command+ 8o seleccionando Ver → Navegadores → Mostrar navegador de puntos de interrupción en la barra de menú.

  2. Haga clic en el botón Crear un punto de interrupción indicado por que +se muestra en el área de la barra de herramientas inferior.

ingrese la descripción de la imagen aquí

  1. Seleccionar punto de interrupción de excepción...

ingrese la descripción de la imagen aquí

  1. Haga clic fuera de la ventana emergente para descartar. Asegúrese de que el punto de interrupción esté habilitado para poder detectar el motivo del bloqueo.

¡Buena suerte!