Gibt es eine Möglichkeit, das Echtzeit-Konsolenprotokoll anzuzeigen, um NSLog und andere Debug-Meldungen in Echtzeit anzuzeigen, z. B. adb logcat?
Gibt es eine Möglichkeit, das Echtzeit-Konsolenprotokoll anzuzeigen, um NSLog und andere Debug-Meldungen in Echtzeit anzuzeigen, z. B. adb logcat?
Antworten:
Die von Apple in den technischen Fragen und Antworten QA1747 Debugging von bereitgestellten iOS-Apps für Xcode 6 dokumentierte Lösung lautet:
printAnweisungen werden nicht protokolliert, sondern nur an stdout. Verwenden Sie NSLogstattdessen. Oder es ist möglich, stdoutmit zusätzlichem Code zu einer Datei umzuleiten . Abstürze werden protokolliert und können über die Schaltfläche "Geräteprotokolle anzeigen" aufgerufen werden.
BEARBEITEN: Bitte verwenden Sie die @ cbowns-Lösung - die Gerätekonsole ist mit iOS9 kompatibel und viel einfacher zu verwenden.
Dies ist ein Open-Source-Programm, das das Systemprotokoll des iDevice im Terminal anzeigt (ähnlich wie tail -F). Es ist kein Jailbreak erforderlich, und die Ausgabe ist vollständig grep'able, sodass Sie filtern können, um nur die Ausgabe Ihres Programms anzuzeigen. Das Besondere an dieser Lösung ist, dass Sie im Protokoll anzeigen können, ob die App im Debug-Modus von XCode aus gestartet wurde oder nicht.
Hier ist wie:
Holen Sie sich die libimobiledevice-Binärdatei für Mac OS X aus meinem Github-Konto unter https://github.com/benvium/libimobiledevice-macosx/zipball/master
Befolgen Sie die Installationsanweisungen hier: https://github.com/benvium/libimobiledevice-macosx/blob/master/README.md
Schließen Sie Ihr Gerät an, öffnen Sie Terminal.app und geben Sie Folgendes ein:
idevicesyslog
Nach oben wird eine Echtzeitanzeige des Systemprotokolls des Geräts angezeigt.
Da es sich um eine Konsolen-App handelt, können Sie das Protokoll mit Unix-Befehlen wie grep filtern
Zeigen Sie beispielsweise alle Protokollnachrichten einer bestimmten App an:
idevicesyslog | grep myappname
Entnommen aus meinem Blog unter http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html
No device found, is it plugged in?
brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Zwei Optionen:
libimobiledevice kann über Homebrew installiert werden und funktioniert hervorragend. Das idevicesyslogTool funktioniert ähnlich wie deviceconsole(unten) und unterstützt das drahtlose Anzeigen des Syslogs Ihres Geräts (!).
Ich habe mehr darüber auf Tumblr tl geschrieben; dr:
brew install libimobiledevice
idevice_id --list // list available device UDIDs
idevicesyslog -u <device udid>
mit dem Gerät über USB verbunden oder im lokalen drahtlosen Netzwerk verfügbar.
Ab 2013: Die Gerätekonsole von rpetrich ist eine viel weniger ausgeflippte Lösung als die oben genannte ideviceconsole. Mein Zweig davon wird sofort in Xcode 5 erstellt und ausgeführt, und die Build-Aktion installiert die Binärdatei, /usr/local/binum die Verwendung zu vereinfachen.
Als zusätzliche hilfreiche Information verwende ich sie im folgenden Stil, der es einfach macht, das gewünschte Gerät in meinem Shell-Verlauf zu finden und unnötige >Zeilen zu entfernen , die deviceconsoleausgedruckt werden.
deviceconsole -d -u <device UDID> | uniq -u && echo "<device name>"
libimobiledevice. (Kabelgebundene und drahtlose Protokollanzeige funktionieren mit meinem Mac unter 10.11 und meinem iPhone unter iOS 10.2)
brew install --HEAD libimobiledevice. Hat für mich gearbeitet.
Öffnen Sie einfach die Anwendung Console.appauf Mac OSX.
Sie können es finden Sie unter Applications> Utilities> Console.
Auf der linken Seite der Anwendung werden alle angeschlossenen Geräte aufgelistet.
Probieren Sie die Freeware- iOS-Konsole aus . Einfach herunterladen, starten, Gerät anschließen - et voila!
Console.app[was wird nativ unter macOS ausgeliefert]?
Dies könnte das sein, wonach Sie suchen: Xcode Organizer
Gerät> Terminalausgabe erfolgt über die iPhone-Konfigurations-App
Sie haben drei Möglichkeiten:
Um die 2º zu erhalten, müssen Sie nur syslogd und OpenSSH von Cydia installieren. Starten Sie den Computer neu, nachdem Sie syslogd zum Laufen gebracht haben. Öffnen Sie jetzt einfach eine SSH-Sitzung auf Ihrem Gerät (über Terminal oder Putty unter Windows) und geben Sie "tail -f / var / log / syslog" ein. Und los geht's, drahtloses Echtzeit-Systemprotokoll.
Wenn Sie die 3º ausprobieren möchten, suchen Sie einfach online nach "dup2", es ist ein Systemaufruf.
So zeigen Sie die Konsole Ihres iOS-Geräts in Safari auf Ihrem Mac an (anscheinend nur Mac):
Der Inspektor von Safari zeigt eine Konsole für Ihr iOS-Gerät an.
Alternativ können Sie ein Protokollierungstool auf dem Bildschirm wie Ticker-Log verwenden , um Protokolle anzuzeigen, ohne (bequemen) Zugriff auf die Konsole zu haben.
Utilities/Console.app?