iOS (iPhone, iPad, iPodTouch) ver terminal de registro de consola en tiempo real

Respuestas:

155

La solución documentada por Apple en Preguntas y respuestas técnicas QA1747 Depuración de aplicaciones iOS implementadas para Xcode 6 es:

  1. Elija Ventana -> Dispositivos en el menú Xcode.
  2. Elija el dispositivo en la columna izquierda.
  3. Haga clic en el triángulo superior en la parte inferior izquierda del panel derecho para mostrar la consola del dispositivo.

Captura de pantalla con triángulo ascendente

Marián Černý
fuente
44
En mi opinión, esta es la solución más fácil.
Bart van Kuik
En Xcode 6.4, veo un botón que dice "Ver registros de dispositivos", pero que me da registros de fallas. No veo una manera de obtener el registro de la consola.
Chris Prince
44
He agregado una captura de pantalla con el ícono del triángulo ascendente.
Marián Černý
1
printlas declaraciones no van al registro, solo a stdout. Usar en su NSLoglugar. O podría ser posible redirigir stdouta un archivo con algún código agregado. Los bloqueos se registran y se puede acceder mediante el botón "Ver registros de dispositivos".
Marián Černý
3
Este botón ha sido retirado en xCode 9.3. Ahora tiene un botón "Console.app", que tiene mucho más sentido.
rustyMagnet
79

EDITAR: utilice la solución @cbowns: la consola del dispositivo es compatible con iOS9 y es mucho más fácil de usar.

Este es un programa de código abierto que muestra el registro del sistema del iDevice en la Terminal (de manera similar a tail -F). No se requiere jailbreak, y la salida es totalmente grep'able, por lo que puede filtrar para ver solo la salida de su programa. Lo que es particularmente bueno de esta solución es que puede ver el registro si la aplicación se inició o no en modo de depuración desde XCode.

Así es cómo:

Tome el binario libimobiledevice para Mac OS X de mi cuenta de github en https://github.com/benvium/libimobiledevice-macosx/zipball/master

Siga las instrucciones de instalación aquí: https://github.com/benvium/libimobiledevice-macosx/blob/master/README.md

Conecte su dispositivo, abra Terminal.app y escriba:

idevicesyslog

Arriba aparece una pantalla en tiempo real del registro del sistema del dispositivo.

Al ser una aplicación de consola, puede filtrar el registro utilizando comandos de Unix, como grep

Por ejemplo, vea todos los mensajes de registro de una aplicación en particular:

idevicesyslog | grep myappname

Tomado de mi blog en http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html

Ben Clayton
fuente
44
Parece que esto no funciona con el simulador de iOS. Gorrón. No device found, is it plugged in?
cenizas999
No puede funcionar en iOS10. "usbmuxd_send: error -1 al enviar: tubería rota" ¿Cómo solucionarlo?
Victor Choy
2
Cuando ejecuto idevicesys sin sudo, aparece un error críptico sobre "No se pudo iniciar el servicio com.apple.syslog_relay". Tal vez depende de cómo lo instales o algo así.
Bjorn Roche
Haga esto si no funciona para usted ...brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Akshet
77

Dos opciones:

libimobiledevice es instalable a través de homebrew y funciona muy bien. Su idevicesyslogherramienta funciona de manera similar a deviceconsole(a continuación), y admite la visualización inalámbrica del syslog de su dispositivo (!)

He escrito más sobre eso en Tumblr tl; dr:

brew install libimobiledevice
idevice_id --list // list available device UDIDs
idevicesyslog -u <device udid>

con el dispositivo conectado a través de USB o disponible en la red inalámbrica local.

Desde 2013: deviceconsole de rpetrich es una solución mucho menos descartada que ideviceconsole anterior. Mi bifurcación se compila y se ejecuta en Xcode 5 fuera de la caja, y la acción Construir instalará el binario /usr/local/binpara facilitar su uso.

Como información adicional útil, la uso en el siguiente estilo, lo que facilita encontrar el dispositivo que quiero en mi historial de shell y elimina las >líneas innecesarias que se deviceconsoleimprimen.

deviceconsole -d -u <device UDID> | uniq -u && echo "<device name>"
cbowns
fuente
Gracias por este post Es exactamente lo que estaba buscando. No puedo esperar para agregar iOS en mi herramienta de LogCat móvil GUI: github.com/yepher/LogCat
Sí,
2
Esto es increíble: tomó 2 minutos compilar y ejecutar. Esta debería ser la respuesta aceptada.
Nick Farina
Esta es una solución encantadora. Y solo quería agregar que la colección todavía funciona para iOS8 (¡como debería!)
Kelly
1
@BugaBuga Asegúrate de estar usando lo último libimobiledevice. (La visualización de registros con cable e inalámbrica funciona con mi Mac en 10.11 y mi iPhone en iOS 10.2)
acorta el
1
github.com/libimobiledevice/libimobiledevice/issues/356 . Uso: brew install --HEAD libimobiledevice. Trabajó para mi.
rustyMagnet
21

Simplemente abra la aplicación Console.appen mac osX.

Puede encontrarlo bajo Applications> Utilities> Console.

En el lado izquierdo de la aplicación, se enumeran todos sus dispositivos conectados.

einsA
fuente
2
Esta es una gran solución. Puedo usar la función de búsqueda para básicamente "grep" los registros en vivo / "Ahora" para mi dispositivo.
Rob
14

Pruebe la consola iOS gratuita . Simplemente descargue, inicie, conecte su dispositivo, ¡y listo!

Peter Gluck
fuente
1
es interesante, pero no me permite elegir qué dispositivo ver el registro de la consola si tengo varios conectados a la Mac.
leolobato
tan simple y funciona muy bien en iOS 12, me siento frustrado al saber cuán simple debería ser el registro para un desarrollador y terminar aquí. Gracias Peter
FreeAppl3
¿Por qué no Console.app[que se envía de forma nativa en macOS]?
rustyMagnet
6

Esto podría ser lo que estás buscando: Xcode Organizer

BryanH
fuente
Sí ... pero por alguna razón, la consola en Xcode Organizer es menos en tiempo real porque está dentro de una ventana GUI. Esperaba una forma de invocar el shell en el dispositivo directamente a la cola -f <nombre de archivo>
Arunabh Das
Solo puede obtener un shell en el dispositivo si está liberado.
programa el
Gracias programador. Me gustaría aceptar su respuesta como la respuesta correcta. ¿Podría también publicar algún enlace de HowTo para obtener un shell en un dispositivo liberado? ¡¡Gracias!!
Arunabh Das
@ArunabhDas Por favor considere cambiar la respuesta aceptada a la respuesta idevicesyslog de Ben Clayton. Su solución era exactamente lo que estaba buscando para depurar las compras en la aplicación con una aplicación de iOS que utiliza la plataforma CoronaSDK. El Xcode Organizer era lento y engorroso para ver la información del registro.
Anthony F
5

dispositivo> la salida del terminal está en la aplicación de configuración de iPhone

aquí: http://support.apple.com/kb/DL1465

cocina
fuente
1
Ese enlace ya no es válido. Creo que el nombre actualizado de la aplicación es Apple Configurator y está disponible aquí: itunes.apple.com/us/app/apple-configurator/id434433123?mt=12 Sin embargo, es OS X 10.10+.
ThomasW
1
@ThomasW: Desafortunadamente, el Configurador de Apple no parece tener la capacidad de ver los registros del dispositivo como lo hace la Utilidad de configuración de iPhone.
newenglander
1
Lo hace. Simplemente instale herramientas de automatización desde el menú. krypted.com/iphone/…
Sune Kjærgård
2

Tienes tres opciones:

  • Xcode Organizer
  • Dispositivo con jailbreak con syslogd + openSSH
  • Use dup2 para redirigir todo STDERR y STDOUT a un archivo y luego "tail -f" ese archivo (este último es más un simulador, ya que tiene el mismo problema de seguir un archivo en el dispositivo).

Por lo tanto, para obtener el 2º, solo necesita instalar syslogd y OpenSSH desde Cydia, reinicie el sistema luego de iniciar syslogd; ahora solo abra una sesión ssh en su dispositivo (a través de terminal o masilla en windows) y escriba "tail -f / var / log / syslog". Y ahí lo tienes, registro del sistema inalámbrico en tiempo real.

Si desea probar el 3º solo busque "dup2" en línea, es una llamada al sistema.

fbernardo
fuente
0

Para ver la consola de su dispositivo iOS en Safari en su Mac (Mac aparentemente solo):

  1. En su dispositivo iOS, vaya a Configuración> Safari> Avanzado y active Web Inspector
  2. En su dispositivo iOS, cargue su página web en Safari
  3. Conecte su dispositivo directamente a su Mac
  4. En su Mac, si aún no ha activado el menú de Desarrollador de Safari, vaya a Preferencias> Avanzado y seleccione "Mostrar menú de Desarrollo en la barra de menú"
  5. En su Mac, vaya a Desarrollar> [el nombre de su dispositivo iOS]> [su página web]

El Inspector de Safari aparecerá mostrando una consola para su dispositivo iOS.

mella
fuente
3
podemos ver el registro de la consola de safari, no el registro de la aplicación.
Gamma-Point
Esto funciona para el emulador ... No lo he probado con un dispositivo real.
bosquejoque el
0

Como alternativa, puede usar una herramienta de registro en pantalla como ticker-log para ver los registros sin tener acceso (conveniente) a la consola.

Jonathan.Brink
fuente