¿Qué pasará con las declaraciones NSLog en producción?

Cuando presentamos la aplicación con declaraciones de NSLog ,

¿Cuál será el efecto de las declaraciones? ¿Seguirán ejecutándose? Si se ejecuta, ¿estos loggings se almacenarán en algún lugar como loggings de la aplicación / loggings del sistema? ¿Podemos verlos? ¿Está conectado a los informes de fallos de Apple en iTunesConnect?

Por favor aclara mis dudas.

Respuesta corta :-

  1. Sí, se ejecuta en la aplicación de producción.
  2. NSLog acaba de iniciar session en la console, no creo que esté almacenado en algún lugar.
  3. Solo podemos ver en la console.
  4. Cuando el locking de la aplicación NSLog no se imprime en los informes de envío de lockings.

NSLog llamadas NSLog se pueden dejar en el código de producción. Se registrará en el logging del sistema. Las aplicaciones que ensucian el logging del sistema son molestas y no son profesionales. Por lo tanto, intente utilizar Macros en el logging para que pueda eliminar la ejecución del código de logging en la producción

 #define DEBUG_MODE #ifdef DEBUG_MODE #define DebugLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] ) #else #define DebugLog( s, ... ) #endif 

Las declaraciones NSLog permanecerán en producción. Puede encontrarlos en su xCode-> windows-> Organizador (shift + cmd + 2) si ha conectado su dispositivo. Revise la console para poder verlos, así como otras personas que usan la aplicación.

introduzca la descripción de la imagen aquí

Las instrucciones de NSLog se almacenarán y ejecutarán en producción si no las va a eliminar. Lo cual no es una buena práctica. Si afecta el performance de la aplicación.

Hay un buen tutorial sobre cómo mostrar los loggings en MobileTuts +

Tutor de Mobile Tuts Plus NSlog

De todos modos, si desea almacenarlo, debe almacenarlo en algún lugar del directory de documentos, pero tampoco podrá get los files del directory de la aplicación del dispositivo. Para eso, puedes uploadlo a algún sitio en el webserver o algo así. Entonces puedes acceder a ellos.

Por favor, avíseme si tiene más dudas.

Sí, la statement se ejecuta si la dejaste en la versión de lanzamiento.

Por lo tanto, es una mejor práctica para comentar NSLog en la compilation de versiones o usar el MODO DE DESBLOQUEO como lo dijo @Lithu TV

Al hacer esto, el performance será mejor. Porque NSLog es bastante lento. NSLog hará dos cosas: 1) escribir posts de logging en Apple System Logging (ASL) 2) si la aplicación se ejecuta en xcode, también escribe en stderr.

El principal problema radica en el primero. Para lograr una security de subprocesss, cada vez que se llama a NSLog, abre una connection con la installation de ASL, envía un post y cierra la connection. La operación de connection es muy costosa. Otra razón es que NSLog gasta algo de time para registrar la date y hora.

ACTUALIZACIÓN: Además, no creo que haya una forma directa de verificar el logging desde el sistema, sin embargo, hay algunos softwares que ayudan a ver el logging de la console. Los siguientes podrían ayudarlo a mostrar el logging de la console: http://support.apple.com/kb/DL1465

Nunca lo he probado yo mismo. Entonces no puedo darte la garantía.