¿Cómo puedes depurar un problema con una compilation de modo de lanzamiento en iOS?

Estoy trabajando en una aplicación de iOS y noté un error que solo se puede reproducir cuando la aplicación está integrada en modo de liberación. La única manera que he encontrado de ejecutar una aplicación de modo de lanzamiento que he creado es creando un file, firmándolo con mi perfil de debugging y haciendo una implementación ad-hoc en mi dispositivo. Usando este método, sin embargo, no puedo conectarlo con un depurador, y ni siquiera estoy seguro de si podría adjuntarlo si funcionaría bien después de que la compilation de versión ejecutara el optimizador en el código.

¿Alguien sabe de una buena manera de depurar un problema que solo se puede reproducir cuando una aplicación se genera en modo de lanzamiento?

Normalmente, las comstackciones de debugging tienen optimization deshabilitada ( -O0 ) para facilitar la debugging, mientras que las comstackciones de versión tienen habilitada la optimization ( -Os u -Os ), lo que hace que el código se ejecute mucho más rápido, pero también hace que la debugging sea más difícil (pero no imposible). Puede ingresar a la configuration de compilation en Xcode en la configuration de Depuración y upload temporalmente el nivel de optimization, esto mantendrá todos los demás errores de debugging (símbolos, etc.) pero, con suerte, también eliminará el error del modo de liberación. (¡No olvide restablecer el nivel de optimization a -O0 en la configuration de Depuración cuando haya terminado!)

  1. Vaya al command "Proyecto" en el menu de la aplicación Xcode y select "Editar esquema" (Atajo: ⌘ <)
  2. Seleccione "Ejecutar nombre del proyecto" en el panel izquierdo.
  3. En el panel derecho, en la pestaña "Información" cambie "Generar configuration" a "Liberar"

No puedes ejecutar una aplicación en modo de liberación mientras tienes habilitada la debugging. Eso no es una intención.

Cuando ejecute una aplicación en modo de liberación, deberá encontrar una forma diferente de observar el comportamiento de su aplicación (por ejemplo, mediante alertas).

Desmarca <code> Debug executable </ code> ejecuta tu aplicación en modo de lanzamiento

Además, deberá confiar en el perfil de distribución en su dispositivo. Xcode le notificará y le guiará con un post de alerta en la primera ejecución.