Jak Mogę uzyskać logi konsoli z symulatora iOS?
Chcę zobaczyć, co się dzieje w symulatorze iOS, jeśli nie testuję aplikacji w Xcode.
Na przykład, jeśli otworzę link w symulatorze Safari, zobaczę co się stanie w konsoli, jeśli instaluję aplikację internetową, Zobacz łącza, które naciskam w konsoli.
Jak mogę to zrobić?
Chcę go zobaczyć w Xcode lub terminalu, ale to nie problem, jeśli muszę użyć innego kawałka oprogramowania.
9 answers
Symulator IOS > Pasek Menu > Debugowanie > Otwórz dziennik systemowy
Stare sposoby:
Symulator IOS drukuje dzienniki bezpośrednio na stdout, dzięki czemu można zobaczyć dzienniki pomieszane z dziennikami systemowymi.
Otwórz Terminal i wpisz: tail -f /var/log/system.log
Następnie uruchom symulator.
EDIT:
To przestało działać na Mavericks / Xcode 5. Teraz możesz uzyskać dostęp do logów symulatora w jego własnym folderze: ~/Library/Logs/iOS Simulator/<sim-version>/system.log
Możesz użyć konsoli.aplikacja, aby to zobaczyć, lub po prostu zrobić ogon (iOS 7.0.3 64 bity na przykład):
tail -f ~/Library/Logs/iOS\ Simulator/7.0.3-64/system.log
EDIT 2:
Znajdują się obecnie w ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log
tail -f ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-04 23:36:36
Możesz wyświetlić konsolę symulatora iOS za pomocą desktopowego Safari. Jest to podobne do sposobu, w jaki używasz desktop Safari do wyświetlania konsoli na fizycznych urządzeniach z systemem iOS.
Gdy symulator jest uruchomiony i jest otwarta strona internetowa, w menu Rozwijaj w przeglądarce Safari na pulpicie pojawi się opcja, która pozwoli Ci zobaczyć konsolę symulatora iOS:
Develop - > iPhone Simulator - > Nazwa strony
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-16 21:10:10
Jest opcja w symulatorze, aby otworzyć console
Debug > Open System Log
Lub użyć keyboard shortcut: ⌘/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-10 20:56:41
IOS 8 i iOS 9
Pod iOS 8 i iOS 9 ta lokalizacja jest teraz:
~/Library/Logs/CoreSimulator/<DEVICE_CODE>
Więc, następujące będą działać:
tail -f ~/Library/Logs/CoreSimulator/<DEVICE_CODE>/system.log
Wartość DEVICE_CODE
można znaleźć za pomocą następującego polecenia konsoli:
instruments -s devices
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-15 23:19:25
Jeśli używasz Swift , pamiętaj, że println
będzie drukować tylko do dziennika debugowania (który pojawia się w obszarze debugowania xCode). Jeśli chcesz wydrukować do systemu.log, musisz użyć NSLog
Jak za dawnych czasów.
Następnie możesz wyświetlić Dziennik symulatora za pomocą jego menu, Debug > Otwórz dziennik systemowy... (cmd +/)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-20 12:48:30
Nie powinieneś polegać na instruments -s
. Oficjalnie wspieranym narzędziem do pracy z symulatorami z linii poleceń jest xcrun simctl
.
Katalog dziennika urządzenia można znaleźć za pomocą xcrun simctl getenv booted SIMULATOR_LOG_ROOT
. To zawsze będzie poprawne, nawet jeśli Lokalizacja się zmieni.
Teraz, gdy rzeczy przenoszą się na os_log
, łatwiej jest otworzyć konsolę.aplikacja na komputerze Mac. Uruchamiane symulatory powinny być wyświetlane jako źródło dziennika po lewej stronie, podobnie jak urządzenia fizyczne. Możesz także uruchomić polecenia dziennika w uruchomionym symulator:
# 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`
Jeśli chcesz używać narzędzi programistycznych Safari (w tym konsoli JS) ze stroną internetową w symulatorze : Uruchom jeden z symulatorów, otwórz Safari, a następnie przejdź do Safari na komputerze mac i powinieneś zobaczyć symulator w menu.
Możesz otworzyć adres URL w symulatorze, przeciągając go z paska adresu Safari i upuszczając w oknie symulatora. Możesz również użyć xcrun simctl openurl booted <url>
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-29 23:32:23
Śledzenie mnie nie zadziałało. Znalazłem moje logi używając Console.app
. Byli w~/Library/Logs/iOS Simulator/{version}/system.log
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-16 11:57:31
XCode > 6.0 i iOS > 8.0 Poniższy skrypt działa, jeśli masz wersję XCode > 8.0
Używam poniższego małego skryptu do śledzenia logów symulatora na konsoli systemowej.
#!/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
Jako argument można podać typ symulatora używany w Grepie. Jak wspomniano w powyższych postach, istnieją polecenia simctl i instruments, aby wyświetlić typ symulatorów dostępnych do użycia w zależności od wersji Xcode. Aby wyświetlić listę dostępnych urządzenia / symulatory.
xcrun instruments -s
Lub
xcrun simctl list
Teraz możesz przekazać kod urządzenia lub typ symulatora jako argument do skryptu i zastąpić" iPhone 6 (8.2 Simulator) " wewnątrz grepa na $1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-22 23:16:52
Mogę otworzyć dziennik bezpośrednio przez symulator iOS: Debug -> Open System Log...
Nie wiem, kiedy to zostało wprowadzone, więc może nie być dostępne dla wcześniejszych wersji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-07 17:27:15