Meiner Meinung nach ist dies die einfachste Lösung.
Bart van Kuik
In Xcode 6.4 wird eine Schaltfläche mit der Aufschrift "Geräteprotokolle anzeigen" angezeigt, die mir jedoch Absturzprotokolle liefert. Ich sehe keine Möglichkeit, das Konsolenprotokoll abzurufen.
Chris Prince
4
Ich habe einen Screenshot mit dem Up-Triangle-Symbol hinzugefügt.
Marián Černý
1
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.
Marián Černý
3
Diese Schaltfläche wurde in xCode 9.3 deaktiviert. Es hat jetzt eine "Console.app" -Button, was viel sinnvoller ist.
Rusty Magnet
79
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.
Es scheint, dass dies mit dem iOS-Simulator nicht funktioniert. Schade. No device found, is it plugged in?
Asche999
Es kann nicht unter iOS10 funktionieren. "usbmuxd_send: Fehler -1 beim Senden: Rohrbruch" Wie kann ich das Problem beheben?
Victor Choy
2
Wenn ich idevicesys ohne sudo ausführe, wird der kryptische Fehler "Dienst com.apple.syslog_relay konnte nicht gestartet werden" angezeigt. Vielleicht hängt es davon ab, wie Sie es installieren oder so.
Björn Roche
Tun Sie dies, wenn es für Sie nicht funktioniert ...brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Akshet
77
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.
Danke für diesen Beitrag. Es ist genau das, wonach ich gesucht habe. Ich kann es kaum erwarten, iOS zu meinem GUI Mobile LogCat-Tool hinzuzufügen: github.com/yepher/LogCat
Yepher
2
Das ist großartig - das Kompilieren und Ausführen dauerte 2 Minuten. Dies sollte die akzeptierte Antwort sein.
Nick Farina
Dies ist eine schöne Lösung. Und wollte nur hinzufügen, dass die Sammlung immer noch für iOS8 funktioniert (wie es sollte!)
Kelly
1
@BugaBuga Stellen Sie sicher, dass Sie die neueste verwenden libimobiledevice. (Kabelgebundene und drahtlose Protokollanzeige funktionieren mit meinem Mac unter 10.11 und meinem iPhone unter iOS 10.2)
Es ist interessant, aber ich kann nicht auswählen, auf welchem Gerät das Konsolenprotokoll angezeigt werden soll, wenn mehrere Geräte mit dem Mac verbunden sind.
Leolobato
So einfach und funktioniert unter iOS 12, dass ich frustriert bin, zu wissen, wie einfach die Protokollierung für einen Entwickler sein sollte, und hier lande. Vielen Dank, dass Sie Peter
FreeAppl3
warum nicht Console.app[was wird nativ unter macOS ausgeliefert]?
Ja ... aber aus irgendeinem Grund ist die Konsole im Xcode Organizer weniger in Echtzeit, da sie sich in einem GUI-Fenster befindet. Ich hatte gehofft, die Shell auf dem Gerät direkt auf tail -f <logfilename>
Arunabh Das
Sie können eine Shell nur dann auf dem Gerät installieren, wenn sie einen Jailbreak aufweist.
Programm
Danke Progrmr. Ich möchte Ihre Antwort als die richtige Antwort akzeptieren. Könnten Sie bitte auch Links für HowTo zum Abrufen einer Shell auf einem Gerät mit Jailbreak veröffentlichen? Vielen Dank!!
Arunabh Das
@ArunabhDas Bitte erwägen Sie, die akzeptierte Antwort in die idevicesyslog-Antwort von Ben Clayton zu ändern. Seine Lösung war genau das, wonach ich gesucht hatte, um In-App-Käufe mit einer iOS-App unter Verwendung der CoronaSDK-Plattform zu debuggen. Der Xcode Organizer war langsam und umständlich beim Anzeigen von Protokollinformationen.
Anthony F
5
Gerät> Terminalausgabe erfolgt über die iPhone-Konfigurations-App
@ThomasW: Leider scheint der Apple Configurator nicht in der Lage zu sein, Geräteprotokolle anzuzeigen, wie dies das iPhone Configuration Utility tut / tat.
Newenglander
1
Es tut. Installieren Sie einfach die Automatisierungstools aus dem Menü. krypted.com/iphone/…
Sune Kjærgård
2
Sie haben drei Möglichkeiten:
Xcode Organizer
Gerät mit Jailbreak mit syslogd + openSSH
Verwenden Sie dup2, um alle STDERR und STDOUT in eine Datei umzuleiten, und "tail -f" diese Datei (diese letzte ist eher eine Simulatorsache, da Sie das gleiche Problem haben, eine Datei auf dem Gerät zu verfolgen).
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):
Gehen Sie auf Ihrem iOS-Gerät zu Einstellungen> Safari> Erweitert und aktivieren Sie Web Inspector
Laden Sie auf Ihrem iOS-Gerät Ihre Webseite in Safari
Schließen Sie Ihr Gerät direkt an Ihren Mac an
Wenn Sie auf Ihrem Mac das Entwicklermenü von Safari noch nicht aktiviert haben, gehen Sie zu Einstellungen> Erweitert und wählen Sie "Menü" Entwickeln "in der Menüleiste anzeigen".
Gehen Sie auf Ihrem Mac zu Entwickeln> [Ihr iOS-Gerätename]> [Ihre Webseite]
Der Inspektor von Safari zeigt eine Konsole für Ihr iOS-Gerät an.
Wir können das Safari-Konsolenprotokoll sehen, nicht das App-Protokoll.
Gamma-Punkt
Dies funktioniert für den Emulator ... Ich habe es nicht mit einem tatsächlichen Gerät versucht.
Skizze, dass
0
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
?Antworten:
Die von Apple in den technischen Fragen und Antworten QA1747 Debugging von bereitgestellten iOS-Apps für Xcode 6 dokumentierte Lösung lautet:
quelle
print
Anweisungen werden nicht protokolliert, sondern nur anstdout
. Verwenden SieNSLog
stattdessen. Oder es ist möglich,stdout
mit 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:
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:
Entnommen aus meinem Blog unter http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html
quelle
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
idevicesyslog
Tool funktioniert ähnlich wiedeviceconsole
(unten) und unterstützt das drahtlose Anzeigen des Syslogs Ihres Geräts (!).Ich habe mehr darüber auf Tumblr tl geschrieben; dr:
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/bin
um 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 , diedeviceconsole
ausgedruckt werden.quelle
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.app
auf Mac OSX.Sie können es finden Sie unter
Applications
>Utilities
>Console
.Auf der linken Seite der Anwendung werden alle angeschlossenen Geräte aufgelistet.
quelle
Probieren Sie die Freeware- iOS-Konsole aus . Einfach herunterladen, starten, Gerät anschließen - et voila!
quelle
Console.app
[was wird nativ unter macOS ausgeliefert]?Dies könnte das sein, wonach Sie suchen: Xcode Organizer
quelle
Gerät> Terminalausgabe erfolgt über die iPhone-Konfigurations-App
hier: http://support.apple.com/kb/DL1465
quelle
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.
quelle
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.
quelle
Alternativ können Sie ein Protokollierungstool auf dem Bildschirm wie Ticker-Log verwenden , um Protokolle anzuzeigen, ohne (bequemen) Zugriff auf die Konsole zu haben.
quelle