totalmente - ¿Hay alguna manera de capturar la salida de NSLog en un iPhone cuando no está conectado a un depurador?
olvide la contraseña de mi iphone 5s como lo desbloqueo (4)
Estoy registrando un montón de datos con NSLog()
. ¿Hay alguna forma de capturar los datos de registro cuando mi iPhone no está conectado a mi máquina de desarrollo y se ejecuta bajo un depurador?
Por ejemplo, ¿puedo redirigirlo a un archivo y luego volver a leer el archivo de registro a través de Xcode en un momento posterior? Necesito hacer esto para probar mi aplicación cuando el WiFi es pobre, lo que requiere que vaya lejos de mi escritorio.
Estoy bastante seguro de que las llamadas NSLog () se escribirán en el registro de la consola del sistema, por lo que si conecta su iPhone a su computadora después de estar desconectado, debería poder ver el registro de la consola en XCode Organizer. La única advertencia es que el registro de la consola tiene un tamaño limitado, por lo que las entradas más antiguas pueden ser eliminadas si realiza una gran cantidad de registros.
Marc Novakowski tiene razón. La salida de la consola se conecta al teléfono y cuando conecta su Mac a su teléfono, la salida de la consola está disponible en la ventana del organizador.
Simplemente seleccione su teléfono en el panel de dispositivos y seleccione la pestaña de la consola. La salida de la consola reciente estará ahí. Muy genial.
Me di cuenta de esto. Eso será muy útil en situaciones como describir dónde necesita estar lejos de su computadora.
Por cierto, tengo una solución a su necesidad de probar señales WiFi débiles. Simplemente envuelva su teléfono en papel de aluminio, con el cable USB sobresaliendo de la envoltura de aluminio. Si está ejecutando con él atado, puede pasar por el código en el depurador. No puede manipular la interfaz de usuario, pero puede degradar / eliminar señales de radio como 3D, WiFi y GPS. Si desea degradar la intensidad de la señal pero no cancelarla por completo, deberá experimentar cubriendo parcialmente el teléfono con papel de aluminio, colocando pequeños agujeros en la cubierta, etc.
Una advertencia: no deje el teléfono envuelto en papel de aluminio por más de unos pocos minutos a la vez. Es probable que se sobrecaliente.
El siguiente método creará un nombre de archivo "console.log" en la carpeta Documentos de su aplicación para que pueda leerlo más tarde.
Llame a este método al comienzo de su programa:
- (void) redirectConsoleLogToDocumentFolder
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"console.log"];
freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
}
El registro nunca se borrará, por lo tanto, úselo con precaución.
Una vez que haya probado su aplicación en el campo, vuelva a conectar su teléfono a su Mac, en Xcode, abra el Organizador. En el panel de Resumen, tiene la lista de todas las aplicaciones en su teléfono. Expanda el que está depurando y verá un paquete llamado "Datos de la aplicación".
Haga clic en la flecha a la derecha de su nombre y guárdelo. Finalizará con una carpeta con un nombre de su identificador de paquete seguido de una fecha.
Dentro de esta carpeta encontrará su carpeta de documentos, que debe contener la consola.log
También hay una aplicación de consola en la App Store, pero solo funciona para iOS 6 y versiones anteriores.
Cuando salió iOS 7, dejó de funcionar de manera efectiva . (Ahora solo puede leer sus propios registros de la Consola, no los de todo el sistema).