ios - Registrando datos en el dispositivo y recuperando el registro
xcode console (9)
Creo que en Xcode 9.3 la pantalla de registro del dispositivo se ha movido a una nueva ubicación. Por favor, consulte el siguiente enlace.
Obtener registros del dispositivo en tiempo de ejecución en Xcode
En una versión de depuración en Xcode, independientemente de si estoy utilizando el simulador o un dispositivo real, NSLog, printf, fprintf assert y NSAssert declaraciones salen en la consola
Si ahora ejecuto una compilación de lanzamiento en el dispositivo (digamos que envío una compilación de vuelo de prueba y lo amplío en mi iPhone, esta será una compilación de lanzamiento), ¿cuál de estos (si hay alguno) se está grabando?
¿Y cómo recupero el registro?
¿Realmente NSLog muestra algo en la versión de lanzamiento? ¿Cuál es el factor determinante? Si está escribiendo en stdout o stderr? ¿solo se escribe stderr en el registro del dispositivo? ¿Esto significa que tengo que usar fprintf? ¿Se ha escrito ALGO en el registro del dispositivo? ¿hay tal cosa? Si es así, ¿cómo recogerlo?
¿Alguien podría aclarar la situación?
En Xcode 6.1.1, puede ver la salida NSLog haciendo lo siguiente. Sin embargo, no estoy seguro de si te permite ver los registros desde demasiado atrás en el tiempo. Solo lo he visto retroceder hasta un par de horas.
En cualquier caso, aquí están los pasos:
- En Xcode, vaya a Ventana -> Dispositivos.
- Seleccione su dispositivo en el panel izquierdo.
- Haga clic en la pequeña flecha como se muestra en la captura de pantalla a continuación.
En swift 3.0, el código de Shyl cambiará a,
var paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]
let fileName = "/(Date()).log"
let logFilePath = (documentsDirectory as NSString).appendingPathComponent(fileName)
freopen(logFilePath.cString(using: String.Encoding.ascii)!, "a+", stderr)
todos los demás procesos son los mismos que explica Shyl
Simplemente agregue este bloque de código en la aplicación: método didFinishLaunchingWithOptions en el archivo de delegado de la aplicación y se creará un archivo de registro en el directorio de documentos de la aplicación en iPhone que registra todos los eventos de registro de la consola. Debe importar este archivo desde iTunes para ver todos los eventos de la consola.
Nota: en el archivo .plist, asegúrese de que la
Application supports iTunes file sharing
y esté configurado enYES
para que pueda acceder a través de iTunes.Para obtener archivos de registro: inicie iTunes, después de que su dispositivo se haya conectado seleccione Aplicaciones - seleccione su aplicación - en el documento de aumento obtendrá su archivo. Luego puede guardarlo en su disco
Encontré este enlace de APPLE muy informativo y completo. Te ofrece prácticamente todas las opciones para ver o acceder a los registros del dispositivo, estén o no conectados a tu máquina de desarrollo.
https://developer.apple.com/library/ios/qa/qa1747/_index.html
NSLog se escribe en el inicio de sesión del dispositivo en la versión de producción y puede verificarlo conectando su iPhone a su sistema y utilizando Organizer. Seleccione su iPhone en el organizador, haga clic en Registros de dispositivo. Vería todas las salidas NSLog en el registro.
Sé que este es un hilo viejo pero también puedes tener acceso a los registros del dispositivo que van a:
Configuración -> Privacidad -> Analítica -> Datos
Espero que esto ayude
Saludos
Sí, las salidas NSLog en el dispositivo. Puede ver sus salidas con su dispositivo conectado a su Mac y usando la herramienta Xcode Organizer.
Si usa Testflight SDK, puede capturar todos los registros con su función de Registro remoto .
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]];
NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
Simplemente agregue este bloque de código en la application:didFinishLaunchingWithOptions
método application:didFinishLaunchingWithOptions
en el archivo de delegado de la aplicación y se creará un archivo de registro en el directorio de documentos de la aplicación en iPhone que registra todos los eventos de registro de la consola. Debe importar este archivo desde iTunes para ver todos los eventos de la consola.
Nota: en el archivo .plist, asegúrese de que la Application supports iTunes file sharing
y que esté configurado en YES
para que pueda acceder a través de iTunes.
Para obtener archivos de registro: inicie iTunes, después de que su dispositivo se haya conectado seleccione Aplicaciones - seleccione su Aplicación - en el Documento de presupuesto obtendrá su archivo. Luego puede guardarlo en su disco