Chcę zobaczyć, co się stanie w symulatorze iOS, jeśli nie testuję aplikacji w Xcode.
Na przykład, jeśli otworzę łącze w symulatorze Safari, zobaczę, co się stanie w konsoli lub jeśli zainstaluję aplikację internetową, zobacz łącza, które naciskam w konsoli.
W jaki sposób mogę to zrobić?
Chcę zobaczyć to w Xcode lub Terminalu, ale to nie jest problem, jeśli muszę użyć innego oprogramowania.
ios
console
ios-simulator
użytkownik1335015
źródło
źródło
Odpowiedzi:
Symulator iOS> Pasek menu> Debugowanie> Otwórz dziennik systemu
Stare sposoby:
Symulator iOS drukuje swoje dzienniki bezpośrednio na standardowe wyjście, dzięki czemu możesz zobaczyć dzienniki pomieszane z dziennikami systemowymi.
Otwórz terminal i wpisz:
tail -f /var/log/system.log
Następnie uruchom symulator.
EDYTOWAĆ:
To przestało działać na Mavericks / Xcode 5. Teraz możesz uzyskać dostęp do dzienników symulatora we własnym folderze:
~/Library/Logs/iOS Simulator/<sim-version>/system.log
Aby to zobaczyć, możesz użyć Console.app lub po prostu wykonać ogon (na przykład 64-bitowy system iOS 7.0.3):
tail -f ~/Library/Logs/iOS\ Simulator/7.0.3-64/system.log
EDYCJA 2:
Znajdują się teraz w
~/Library/Logs/CoreSimulator/<simulator-hash>/system.log
tail -f ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log
źródło
console.log
w tych logach przy użyciutail
lubConsole.app
Możesz wyświetlić konsolę dla symulatora iOS za pomocą Safari na komputerze. Jest to podobne do sposobu, w jaki używasz Safari do przeglądania konsoli na fizycznych urządzeniach z iOS.
Za każdym razem, gdy symulator jest uruchomiony, a strona internetowa jest otwarta, pod menu rozwijanym w Safari na pulpicie pojawi się opcja, która pozwala zobaczyć konsolę symulatora iOS:
Rozwiń -> iPhone Simulator -> nazwa strony
źródło
W Symulatorze jest opcja otwarcia
console
lub użyj
keyboard shortcut: ⌘/
źródło
iOS 8 i iOS 9
W iOS 8 i iOS 9 ta lokalizacja to teraz:
Tak więc będą działać:
DEVICE_CODE
Wartość można znaleźć za pomocą następującego polecenia konsoli:źródło
instruments -s devices
w konsolixcrun simctl spawn booted log stream --level=debug | grep App_Debug_String
pracowałNie powinieneś polegać
instruments -s
. Oficjalnie obsługiwane narzędzie do pracy z Symulatorami z wiersza poleceń toxcrun 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 zmieni się lokalizacja.Teraz, gdy wszystko się zmienia
os_log
, łatwiej jest otworzyć Console.app na komputerze Mac. Uruchomione symulatory powinny pojawiać się jako źródło dziennika po lewej stronie, podobnie jak urządzenia fizyczne. Możesz także uruchomić polecenia dziennika w uruchomionym symulatorze:Jeśli chcesz używać narzędzi Safari Developer (w tym konsoli JS) ze stroną internetową w Symulatorze : Uruchom jeden z symulatorów, otwórz Safari, a następnie przejdź do Safari na Macu 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 także użyć
xcrun simctl openurl booted <url>
.źródło
log help predicates
zapewni więcej informacji. Format predykatu jest zgodny z NSPredicate.Jeśli używasz Swift , pamiętaj, że
println
zostanie wydrukowany tylko w dzienniku debugowania (który pojawia się w obszarze debugowania xCode). Jeśli chcesz drukować na system.log, musisz używaćNSLog
jak za dawnych czasów.Następnie możesz wyświetlić dziennik symulatora za pomocą jego menu, Debuguj> Otwórz dziennik systemu ... (cmd + /)
źródło
tailing
/var/log/system.log
nie działało dla mnie. Znalazłem moje dzienniki za pomocąConsole.app
. Byli w~/Library/Logs/iOS Simulator/{version}/system.log
źródło
Możesz użyć
Console
aplikacji (wybierz urządzenie w Urządzenia) na komputerze Mac, aby zobaczyć komunikat dziennika, który został wysłany za pomocąNSLog
(nie zobaczysz dzienników zprint
funkcji).Pamiętaj, że jeśli chcesz zobaczyć dziennik
WebView
, powinieneś użyćSafary -> Develop -> device
[Znajdź dziennik awarii]
źródło
cmd
then
space bar
Wpisz „Console
” naciśnijenter
. Btw. to powinna być poprawna odpowiedź dzisiaj.XCode> 6.0 AND iOS> 8.0 Poniższy skrypt działa, jeśli masz wersję XCode> 8.0
Używam poniższego małego skryptu, aby dopasować dzienniki symulatora do konsoli systemowej.
Jako argument możesz przekazać typ symulatora używany w Grep. Jak wspomniano w powyższych postach, istnieje polecenie simctl i instrumentów, aby wyświetlić typ dostępnych symulatorów w zależności od wersji Xcode. Aby wyświetlić listę dostępnych urządzeń / symulatorów.
LUB
Teraz możesz podać kod urządzenia LUB typ symulatora jako argument skryptu i zastąpić „iPhone 6 (symulator 8.2)” w grep na 1 $
źródło
Mogę otworzyć dziennik bezpośrednio za pomocą symulatora iOS:
Debug -> Open System Log...
Nie jestem pewien, kiedy został wprowadzony, więc może nie być dostępny we wcześniejszych wersjach.źródło
Możesz wyświetlić okno konsoli symulatora, w tym Safari Web Inspector i wszystkie narzędzia programistyczne, korzystając z aplikacji Safari Technology Preview. Otwórz stronę w przeglądarce Safari na symulatorze, a następnie przejdź do Przegląd technologii Safari> Opracuj> Symulator.
źródło
Nie
NSLog
bądźprint
zawartość będzie pisaćsystem.log
, które mogą być otwarte przez SelectSimulator -> Debug -> Open System log
na Xcode 11.Wymyślam sposób, piszę logi do pliku i otwieram za
xx.log
pomocą.Terminal.app
Następnie logi prezentują się wTerminal.app
żywym tempie.Używam CocoaLumberjack, aby to osiągnąć.
KROK 1:
Dodaj
DDFileLogger
DDOSLogger
i wydrukuj ścieżkę do dzienników.config()
należy zadzwonić, gdy lunch App.KROK 2:
Wymienić
print
lubNSLog
zDDLogXXX
.KROK 3:
Tutaj wiadomość będzie prezentowana w Terminal.app na żywo.
źródło