¿Cómo puedo obtener los registros de la consola desde el simulador de iOS?

Quiero ver qué sucede en el simulador de iOS si no estoy probando la aplicación en Xcode.

Por ejemplo, si abro un enlace en el simulador de Safari, vea qué sucede en la consola, o si instalo una aplicación web, vea los enlaces que estoy presionando en la consola.

¿Cómo puedo hacer esto?

Quiero verlo en Xcode o Terminal, pero no es un problema si necesito usar otro poco de software.

Simulador de iOS> Barra de menús> Depurar> Abrir registro del sistema


Maneras viejas:

iOS Simulator imprime sus registros directamente en stdout, por lo que puede ver los registros mezclados con los registros del sistema.

Abra la Terminal y escriba: tail -f /var/log/system.log

Luego ejecuta el simulador.

EDITAR:

Esto dejó de funcionar en Mavericks / Xcode 5. Ahora puede acceder a los registros del simulador en su propia carpeta: ~/Library/Logs/iOS Simulator//system.log

Puede usar Console.app para ver esto, o simplemente hacer una cola (iOS 7.0.3 64 bits por ejemplo):

tail -f ~/Library/Logs/iOS\ Simulator/7.0.3-64/system.log

EDICION 2:

Ahora se encuentran en ~/Library/Logs/CoreSimulator//system.log

tail -f ~/Library/Logs/CoreSimulator//system.log

Puede ver la consola del simulador de iOS a través del escritorio Safari. Es similar a la forma en que usa Safari de escritorio para ver la consola de dispositivos iOS físicos.

Cada vez que se ejecuta el simulador y hay una página web abierta, habrá una opción en el menú Desarrollo en Safari de escritorio que le permite ver la consola del simulador de iOS:

Desarrollar -> iPhone Simulator -> nombre del sitio

Hay una opción en el simulador para abrir la console

 Debug > Open System Log 

o usa el

keyboard shortcut: ⌘/

Captura de pantalla del menú del simulador

iOS 8 e iOS 9

En iOS 8 y iOS 9, esta ubicación ahora es:

 ~/Library/Logs/CoreSimulator/ 

Por lo tanto, lo siguiente funcionará:

 tail -f ~/Library/Logs/CoreSimulator//system.log 

El valor DEVICE_CODE se puede encontrar a través del siguiente comando de consola:

 instruments -s devices 

Si está utilizando Swift , recuerde que println solo se imprimirá en el registro de depuración (que aparece en el área de depuración de xCode). Si desea imprimir en system.log, debe usar NSLog como en los viejos tiempos.

Luego puede ver el registro del simulador a través de su menú, Depurar> Abrir registro del sistema … (cmd + /)

rastreando /var/log/system.log no funcionó para mí. Encontré mis registros usando Console.app . Ellos estaban en

~/Library/Logs/iOS Simulator/{version}/system.log

No debe confiar en los instruments -s . La herramienta oficialmente compatible para trabajar con simuladores desde la línea de comandos es xcrun simctl .

El directorio de registro para un dispositivo se puede encontrar con xcrun simctl getenv booted SIMULATOR_LOG_ROOT . Esto siempre será correcto incluso si la ubicación cambia.

Ahora que las cosas se están moviendo a os_log es más fácil abrir Console.app en el host de Mac. Los simuladores iniciados deberían aparecer como una fuente de registro a la izquierda, al igual que los dispositivos físicos. También puede ejecutar comandos de registro en el simulador arrancado:

 # os_log equivalent of tail -f xcrun simctl spawn booted log stream --level=debug # filter log output xcrun simctl spawn booted log stream --predicate 'processImagePath endswith "myapp"' xcrun simctl spawn booted log stream --predicate 'eventMessage contains "error" and messageType == info' # a log dump that Console.app can open xcrun simctl spawn booted log collect # open location where log collect will write the dump cd `xcrun simctl getenv booted SIMULATOR_SHARED_RESOURCES_DIRECTORY` 

Si desea usar las herramientas de desarrollo de Safari (incluida la consola JS) con una página web en el simulador : inicie uno de los simuladores, abra Safari, luego vaya a Safari en su Mac y debería ver el simulador en el menú.

Puede abrir una URL en el Simulador arrastrándola desde la barra de direcciones de Safari y soltando en la ventana del Simulador. También puede usar xcrun simctl openurl booted .

XCode> 6.0 AND iOS> 8.0 El siguiente script funciona si tiene XCode versión> 8.0

Utilizo el siguiente pequeño script para alinear los registros del simulador en la consola del sistema.

 #!/bin/sh sim_dir=`xcrun instruments -s | grep "iPhone 6 (8.2 Simulator)" | awk {'print $NF'} | tr -d '[]'` tail -f ~/Library/Logs/CoreSimulator/$sim_dir/system.log 

Puede pasar el tipo de simulador utilizado en Grep como argumento. Como se mencionó en las publicaciones anteriores, hay comandos simctl e instruments para ver el tipo de simuladores disponibles para su uso según la versión de Xcode. Para ver la lista de dispositivos / simuladores disponibles.

 xcrun instruments -s 

O

 xcrun simctl list 

Ahora puede pasar el código del Dispositivo o el tipo de Simulador como un argumento al script y reemplazar el “iPhone 6 (8.2 Simulator)” dentro de grep para que sea $ 1.

Puedo abrir el registro directamente a través del simulador de iOS: Debug -> Open System Log... No estoy seguro de cuándo se introdujo esto, por lo que podría no estar disponible para versiones anteriores.