iOS (iPhone, iPad, iPodTouch) visualizza il terminale di registro della console in tempo reale


Risposte:


155

La soluzione documentata da Apple in Domande e risposte tecniche QA1747 Debug delle app iOS distribuite per Xcode 6 è:

  1. Scegli Finestra -> Dispositivi dal menu Xcode.
  2. Scegli il dispositivo nella colonna di sinistra.
  3. Fare clic sul triangolo in alto nella parte inferiore sinistra del pannello di destra per visualizzare la console del dispositivo.

Screenshot con triangolo in alto


4
Secondo me, questa è la soluzione più semplice.
Bart van Kuik

In Xcode 6.4, vedo un pulsante che dice "Visualizza registri dispositivo", ma che mi fornisce i registri dei crash. Non vedo un modo per ottenere il registro della console.
Chris Prince

4
Ho aggiunto uno screenshot con l'icona del triangolo in alto.
Marián Černý

1
printdichiarazioni non vanno al registro, solo a stdout. Usa NSLoginvece. Oppure potrebbe essere possibile reindirizzare stdouta un file con del codice aggiunto. Gli arresti anomali vengono registrati ed è possibile accedervi utilizzando il pulsante "Visualizza registri dispositivo".
Marián Černý

3
Questo pulsante è stato ritirato in xCode 9.3. Ora ha un pulsante "Console.app", che ha molto più senso.
rustyMagnet

79

MODIFICA: utilizza la soluzione @cbowns: deviceconsole è compatibile con iOS9 e molto più facile da usare.

Questo è un programma open source che mostra il registro di sistema di iDevice in Terminal (in un modo simile a tail -F). Non è richiesto alcun jailbreak e l'output è completamente grep'able in modo da poter filtrare per vedere solo l'output dal programma. La cosa particolarmente positiva di questa soluzione è che puoi visualizzare il registro indipendentemente dal fatto che l'app sia stata avviata in modalità debug da XCode.

Ecco come:

Prendi il binario libimobiledevice per Mac OS X dal mio account github su https://github.com/benvium/libimobiledevice-macosx/zipball/master

Segui le istruzioni di installazione qui: https://github.com/benvium/libimobiledevice-macosx/blob/master/README.md

Collega il tuo dispositivo, apri Terminal.app e digita:

idevicesyslog

Viene visualizzata una visualizzazione in tempo reale del registro di sistema del dispositivo.

Essendo un'app per console, puoi filtrare il registro utilizzando i comandi unix, come grep

Ad esempio, vedi tutti i messaggi di registro da una particolare app:

idevicesyslog | grep myappname

Tratto dal mio blog all'indirizzo http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html


4
Sembra che questo non funzioni con il simulatore iOS. Bummer. No device found, is it plugged in?
ceneri999

Non può funzionare su iOS10. "usbmuxd_send: Errore -1 durante l'invio: tubo rotto" Come risolverlo?
Victor Choy

2
Quando eseguo idevicesys senza sudo, ottengo un errore criptico su "Impossibile avviare il servizio com.apple.syslog_relay". Forse dipende da come lo installi o qualcosa del genere.
Bjorn Roche

Fallo se non funziona per te ...brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Akshet

77

Due opzioni:

libimobiledevice è installabile tramite homebrew e funziona alla grande. Il suo idevicesyslogstrumento funziona in modo simile a deviceconsole(sotto) e supporta la visualizzazione in modalità wireless del syslog del dispositivo (!)

Ho scritto di più su questo su Tumblr tl; dr:

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

con il dispositivo connesso tramite USB o disponibile sulla rete wireless locale.

Dal 2013: deviceconsole di rpetrich è una soluzione molto meno stravagante di ideviceconsole sopra. Il mio fork viene compilato ed eseguito in Xcode 5 fuori dalla scatola e l'azione Build installerà il binario in /usr/local/binper facilità d'uso.

Come ulteriore utile informazione, lo uso nel seguente stile che rende facile trovare il dispositivo che voglio nella mia cronologia della shell e rimuove le >righe non necessarie che vengono deviceconsolestampate.

deviceconsole -d -u <device UDID> | uniq -u && echo "<device name>"

Grazie per questo post. È esattamente quello che stavo cercando. Non vedo l'ora di aggiungere iOS allo strumento LogCat mobile della mia GUI: github.com/yepher/LogCat
Yepher

2
È fantastico: ci sono voluti 2 minuti per compilare ed eseguire. Questa dovrebbe essere la risposta accettata.
Nick Farina

Questa è una bella soluzione. E volevo solo aggiungere che la raccolta funziona ancora per iOS8 (come dovrebbe!)
Kelly

1
@BugaBuga Assicurati di utilizzare l'ultima versione libimobiledevice. (La visualizzazione dei registri cablata e wireless funziona con il mio Mac su 10.11 e il mio iPhone su iOS 10.2)
Cbown

1
github.com/libimobiledevice/libimobiledevice/issues/356 . Usa: brew install --HEAD libimobiledevice. Ha funzionato per me.
rustyMagnet

21

Basta aprire l'applicazione Console.appsu mac osX.

Lo si può trovare sotto Applications> Utilities> Console.

Sul lato sinistro dell'applicazione sono elencati tutti i dispositivi collegati.


2
Questa è un'ottima soluzione. Posso usare la funzione di ricerca per "grep" fondamentalmente i log live / "Now" per il mio dispositivo.
Rob

14

Prova la console iOS gratuita . Basta scaricare, avviare, connettere il tuo dispositivo - et voilà!


1
è interessante, ma non mi consente di scegliere quale dispositivo visualizzare il registro della console se ho più dispositivi collegati al Mac.
leolobato

così semplice e funziona alla grande su iOS 12, mi sento frustrato nel sapere quanto dovrebbe essere semplice la registrazione per uno sviluppatore e finisco qui. Grazie Peter
App gratuita3

perché no Console.app[che viene fornito in modo nativo su macOS]?
rustyMagnet

6

Questo potrebbe essere quello che stai cercando: Xcode Organizer


Sì ... ma per qualche motivo, la console su Xcode Organizer è meno in tempo reale perché si trova all'interno di una finestra della GUI. Speravo in un modo per invocare la shell sul dispositivo direttamente su tail -f <
logfilename

È possibile ottenere una shell sul dispositivo solo se è jailbroken.
programma

Grazie progrmr. Vorrei accettare la tua risposta come risposta corretta. Potresti anche pubblicare dei link per HowTo su come ottenere una shell su un dispositivo jailbroken? Grazie!!
Arunabh Das

@ArunabhDas Per favore considera la possibilità di cambiare la risposta accettata alla risposta idevicesyslog di Ben Clayton. La sua soluzione era esattamente quello che stavo cercando per eseguire il debug degli acquisti in-app con un'app iOS utilizzando la piattaforma CoronaSDK. Xcode Organizer era lento e macchinoso per la visualizzazione delle informazioni di registro.
Anthony F

5

dispositivo> l'uscita del terminale è sull'app di configurazione per iPhone

qui: http://support.apple.com/kb/DL1465


1
Quel collegamento non è più valido. Credo che il nome aggiornato dell'app sia Apple Configurator ed è disponibile qui: itunes.apple.com/us/app/apple-configurator/id434433123?mt=12 Tuttavia, è OS X 10.10+.
ThomasW

1
@ThomasW: Sfortunatamente l'Apple Configurator non sembra avere la capacità di visualizzare i registri del dispositivo come fa / ha fatto l'utilità di configurazione iPhone.
newenglander

1
Lo fa. Basta installare gli strumenti di automazione dal menu. krypted.com/iphone/…
Sune Kjærgård,

2

Hai tre opzioni:

  • Organizer Xcode
  • Dispositivo jailbroken con syslogd + openSSH
  • Usa dup2 per reindirizzare tutti gli STDERR e STDOUT in un file e poi "tail -f" quel file (quest'ultimo è più un simulatore, dal momento che sei bloccato con lo stesso problema di coda di un file sul dispositivo).

Quindi, per ottenere il secondo è sufficiente installare syslogd e OpenSSH da Cydia, riavvio necessario dopo per avviare syslogd; ora apri una sessione ssh sul tuo dispositivo (tramite terminale o putty su Windows) e digita "tail -f / var / log / syslog". Ed ecco fatto, registro di sistema in tempo reale wireless.

Se vuoi provare il 3º cerca "dup2" online, è una chiamata di sistema.


0

Per visualizzare la console del tuo dispositivo iOS in Safari sul tuo Mac (solo apparentemente Mac):

  1. Sul tuo dispositivo iOS, vai su Impostazioni> Safari> Avanzate e attiva Web Inspector
  2. Sul tuo dispositivo iOS, carica la tua pagina web in Safari
  3. Collega il tuo dispositivo direttamente al tuo Mac
  4. Sul Mac, se non hai già attivato il menu sviluppatore di Safari, vai in Preferenze> Avanzate e seleziona "Mostra menu Sviluppo nella barra dei menu"
  5. Sul tuo Mac, vai su Sviluppo> [il nome del tuo dispositivo iOS]> [la tua pagina web]

L'Inspector di Safari apparirà mostrando una console per il tuo dispositivo iOS.


3
possiamo vedere il registro della console di Safari e non quello dell'app.
Gamma-Point

Questo funziona per l'emulatore ... Non l'ho provato con un dispositivo reale.
schizzo che il

0

In alternativa, puoi utilizzare uno strumento di registrazione su schermo come ticker-log per visualizzare i log senza avere (comodo) accesso alla console.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.