Ich möchte sehen, was im iOS-Simulator passiert, wenn ich die App nicht in Xcode teste.
Wenn ich beispielsweise einen Link im Safari-Simulator öffne, sehen Sie, was in der Konsole passiert, oder wenn ich eine Web-App installiere, sehen Sie sich die Links an, die ich in der Konsole drücke.
Wie kann ich das machen?
Ich möchte es in Xcode oder Terminal sehen, aber es ist kein Problem, wenn ich ein anderes Stück Software verwenden muss.
ios
console
ios-simulator
user1335015
quelle
quelle
Antworten:
iOS Simulator> Menüleiste> Debuggen> Systemprotokoll öffnen
Alte Wege:
iOS Simulator druckt seine Protokolle direkt in stdout, sodass Sie sehen können, dass die Protokolle mit den Systemprotokollen verwechselt werden.
Öffnen Sie das Terminal und geben Sie Folgendes ein:
tail -f /var/log/system.log
Führen Sie dann den Simulator aus.
BEARBEITEN:
Bei Mavericks / Xcode 5 funktioniert dies nicht mehr. Jetzt können Sie in einem eigenen Ordner auf die Simulatorprotokolle zugreifen:
~/Library/Logs/iOS Simulator/<sim-version>/system.log
Sie können entweder die Console.app verwenden, um dies zu sehen, oder einfach einen Tail erstellen (z. B. iOS 7.0.3 64 Bit):
tail -f ~/Library/Logs/iOS\ Simulator/7.0.3-64/system.log
EDIT 2:
Sie befinden sich jetzt in
~/Library/Logs/CoreSimulator/<simulator-hash>/system.log
tail -f ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log
quelle
console.log
in diesem Protokoll mittail
oderConsole.app
Sie können die Konsole für den iOS-Simulator über Desktop Safari anzeigen. Es ähnelt der Art und Weise, wie Sie Desktop-Safari verwenden, um die Konsole für physische iOS-Geräte anzuzeigen.
Immer wenn der Simulator ausgeführt wird und eine Webseite geöffnet ist, gibt es in der Desktopsafari im Menü "Entwickeln" eine Option, mit der Sie die iOS-Simulatorkonsole anzeigen können:
Entwickeln -> iPhone Simulator -> Site-Name
quelle
Im Simulator gibt es eine Option zum Öffnen des
console
oder verwenden Sie die
keyboard shortcut: ⌘/
quelle
iOS 8 und iOS 9
Unter iOS 8 und iOS 9 ist dieser Speicherort jetzt:
Folgendes wird also funktionieren:
Der
DEVICE_CODE
Wert kann über den folgenden Konsolenbefehl ermittelt werden:quelle
instruments -s devices
in der KonsoleSie sollten sich nicht darauf verlassen
instruments -s
. Das offiziell unterstützte Tool für die Arbeit mit Simulatoren über die Befehlszeile istxcrun simctl
.Das Protokollverzeichnis für ein Gerät finden Sie mit
xcrun simctl getenv booted SIMULATOR_LOG_ROOT
. Dies ist immer korrekt, auch wenn sich der Standort ändert.Jetzt, da sich die Dinge ändern, ist
os_log
es einfacher, Console.app auf dem Host-Mac zu öffnen. Gestartete Simulatoren sollten wie physische Geräte links als Protokollquelle angezeigt werden. Sie können auch Protokollbefehle im gebooteten Simulator ausführen:Wenn Sie Safari Developer-Tools (einschließlich der JS-Konsole) mit einer Webseite im Simulator verwenden möchten : Starten Sie einen der Simulatoren, öffnen Sie Safari, gehen Sie auf Ihrem Mac zu Safari, und im Menü sollte Simulator angezeigt werden.
Sie können eine URL im Simulator öffnen, indem Sie sie aus der Safari-Adressleiste ziehen und im Simulatorfenster ablegen. Sie können auch verwenden
xcrun simctl openurl booted <url>
.quelle
Wenn Sie Swift verwenden , denken Sie daran, dass
println
nur im Debug-Protokoll (das im Debug-Bereich von xCode angezeigt wird) gedruckt wird. Wenn Sie in system.log drucken möchten, müssen Sie wie früher verwendenNSLog
.Anschließend können Sie das Simulatorprotokoll über das Menü Debug> Systemprotokoll öffnen ... (cmd + /) anzeigen.
quelle
Tailing
/var/log/system.log
hat bei mir nicht funktioniert. Ich habe meine Protokolle mithilfe von gefundenConsole.app
. Sie waren in~/Library/Logs/iOS Simulator/{version}/system.log
quelle
Sie können die
Console
Anwendung (wählen Sie Ihr Gerät unter Geräte aus) auf Ihrem Mac verwenden, um eine Protokollnachricht anzuzeigen, die mit gesendet wurdeNSLog
(Sie sehen keine Protokolle von derprint
Funktion).Bitte beachten Sie, dass
WebView
Sie verwenden sollten , wenn Sie ein Protokoll von sehen möchtenSafary -> Develop -> device
[Absturzprotokoll suchen]
quelle
cmd
then
space bar
Typ "Console
"enter
. Übrigens. das sollte heute die richtige Antwort sein.XCode> 6.0 UND iOS> 8.0 Das folgende Skript funktioniert, wenn Sie über eine XCode-Version> 8.0 verfügen
Ich verwende das folgende kleine Skript, um die Simulatorprotokolle auf der Systemkonsole zu speichern.
Sie können den im Grep verwendeten Simulatortyp als Argument übergeben. Wie in den obigen Beiträgen erwähnt, gibt es simctl- und instrumente-Befehle, um den Typ der Simulatoren anzuzeigen, die je nach Xcode-Version zur Verwendung verfügbar sind. Anzeigen der Liste der verfügbaren Geräte / Simulatoren.
ODER
Jetzt können Sie den Gerätecode ODER den Simulatortyp als Argument an das Skript übergeben und das "iPhone 6 (8.2 Simulator)" in grep durch $ 1 ersetzen
quelle
Ich kann das Protokoll direkt über den iOS-Simulator öffnen: Ich bin
Debug -> Open System Log...
mir nicht sicher, wann dies eingeführt wurde, daher ist es möglicherweise für frühere Versionen nicht verfügbar.quelle
Sie können das Simulator-Konsolenfenster einschließlich Safari Web Inspector und aller Webentwicklungstools mithilfe der Safari Technology Preview-App anzeigen. Öffnen Sie Ihre Seite in Safari im Simulator und gehen Sie dann zu Safari Technology Preview> Develop> Simulator.
quelle
Es werden keine
NSLog
oderprint
Inhalte geschriebensystem.log
, die durch AuswahlSimulator -> Debug -> Open System log
auf Xcode 11 geöffnet werden können .Ich finde einen Weg, schreibe Protokolle in eine Datei und öffne die
xx.log
mit.Terminal.app
Dann werden die Protokolle in angezeigtTerminal.app
lebhaft präsentiert.Ich benutze CocoaLumberjack, um dies zu erreichen.
SCHRITT 1:
DDFileLogger
DDOSLogger
Protokollpfad hinzufügen und drucken.config()
sollte beim App-Mittagessen aufgerufen werden.SCHRITT 2:
Ersetzen
print
oderNSLog
durchDDLogXXX
.SCHRITT 3:
Hier wird die Nachricht in Terminal.app lebendig angezeigt.
quelle