it-swarm.com.de

Wie kann ich die Konsolenprotokolle vom iOS-Simulator abrufen?

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, die Links, 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.

201
user1335015

iOS-Simulator> Menüleiste> Debuggen> Systemprotokoll öffnen


Alte Wege:

der iOS-Simulator druckt seine Protokolle direkt in stdout, sodass Sie die Protokolle mit Systemprotokollen vermischt sehen können. 

Öffnen Sie das Terminal und geben Sie Folgendes ein: tail -f /var/log/system.log

Dann den Simulator laufen lassen.

BEARBEITEN:

Die Arbeit mit Mavericks/Xcode 5 wurde beendet. Jetzt können Sie auf die Simulatorprotokolle in einem eigenen Ordner zugreifen: ~/Library/Logs/iOS Simulator/<sim-version>/system.log

Sie können entweder Console.app verwenden, um dies zu sehen, oder einfach nur einen Schwanz machen (iOS 7.0.3, 64 Bit zum Beispiel):

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

247
fbernardo

Sie können die Konsole für den iOS-Simulator über Desktop Safari anzeigen. Diese Vorgehensweise ähnelt der von Desktop Safari, um die Konsole für physische iOS-Geräte anzuzeigen.

Wenn der Simulator ausgeführt wird und eine Webseite geöffnet ist, wird in der Desktopsafari im Menü "Entwickeln" eine Option angezeigt, mit der Sie die iOS-Simulatorkonsole sehen können:

Entwickeln -> iPhone Simulator -> Site-Name

200
Ben Jackson

Es gibt eine Option im Simulator, um console zu öffnen.

Debug > Open System Log

oder benutze die 

keyboard shortcut: ⌘/

 Simulator menu screenshot

102
Mark Bridges

iOS 8 und iOS 9

Unter iOS 8 und iOS 9 ist dieser Ort jetzt:

~/Library/Logs/CoreSimulator/<DEVICE_CODE>

Also wird folgendes funktionieren:

tail -f ~/Library/Logs/CoreSimulator/<DEVICE_CODE>/system.log

Der DEVICE_CODE-Wert kann über den folgenden Konsolenbefehl ermittelt werden:

instruments -s devices
89
viteinfinite

Sie sollten sich nicht auf instruments -s verlassen. Das offiziell unterstützte Werkzeug für die Arbeit mit Simulatoren über die Befehlszeile ist xcrun simctl.

Das Protokollverzeichnis für ein Gerät kann mit xcrun simctl getenv booted SIMULATOR_LOG_ROOT gefunden werden. Dies ist immer korrekt, auch wenn sich der Standort ändert.

Jetzt, da sich Dinge auf os_log verschieben, ist es einfacher, Console.app auf dem Host-Mac zu öffnen. Gebootete Simulatoren sollten auf der linken Seite als Protokollquelle angezeigt werden, genau wie physische Geräte. Sie können auch Protokollbefehle im gebooteten Simulator ausführen:

# os_log equivalent of tail -f
xcrun simctl spawn booted log stream --level=debug

# filter log output
xcrun simctl spawn booted log stream --predicate 'processImagePath endswith "myapp"'
xcrun simctl spawn booted log stream --predicate 'eventMessage contains "error" and messageType == info'

# a log dump that Console.app can open
xcrun simctl spawn booted log collect

# open location where log collect will write the dump
cd `xcrun simctl getenv booted SIMULATOR_SHARED_RESOURCES_DIRECTORY`

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 zu Safari auf Ihrem Mac und Sie sollten Simulator im Menü sehen.

Sie können eine URL im Simulator öffnen, indem Sie sie aus der Adressleiste von Safari ziehen und im Simulatorfenster ablegen. Sie können auch xcrun simctl openurl booted <url> verwenden.

16
russbishop

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 NSLog wie früher verwenden.

Dann können Sie das Simulatorprotokoll über das Menü Debug> Open System Log ... (cmd + /) anzeigen.

15
cprcrack

tailing /var/log/system.log hat bei mir nicht funktioniert. Ich habe meine Protokolle mit Console.app gefunden. Sie waren in

~/Library/Logs/iOS Simulator/{version}/system.log

11
djibouti33

XCode> 6.0 UND iOS> 8.0 Das folgende Skript funktioniert, wenn Sie eine XCode-Version> 8.0 haben

Ich verwende das unten stehende kleine Skript, um die Protokolle des Simulators an die Systemkonsole anzulegen.

#!/bin/sh
sim_dir=`xcrun instruments -s | grep "iPhone 6 (8.2 Simulator)" | awk {'print $NF'} | tr -d '[]'`
tail -f ~/Library/Logs/CoreSimulator/$sim_dir/system.log

Sie können den im Grep verwendeten Simulatortyp als Argument übergeben. Wie in den obigen Beiträgen erwähnt, gibt es den Befehl simctl und instruments, um den Typ der zur Verwendung verfügbaren Simulatoren anzuzeigen, abhängig von der Xcode-Version.

xcrun instruments -s

ODER 

xcrun simctl list

Jetzt können Sie den Gerätecode OR Simulatortyp als Argument an das Skript übergeben und das "iPhone 6 (8.2 Simulator)" in grep durch $ 1 ersetzen

7
Gurubaran

Sie können eine Console-Systemanwendung auf Ihrem Mac verwenden. Wählen Sie einfach ein interessantes Gerät in den Geräten.

 enter image description here

0
yoAlex5

Ich kann das Protokoll direkt über den iOS-Simulator öffnen: Debug -> Open System Log... Nicht sicher, wann dies eingeführt wurde, daher ist es möglicherweise nicht für frühere Versionen verfügbar.

0
bompf