Czy istnieje sposób przeglądania dziennika konsoli w czasie rzeczywistym, aby wyświetlić NSLog i inne komunikaty debugowania w czasie rzeczywistym, takie jak adb logcat?
Czy istnieje sposób przeglądania dziennika konsoli w czasie rzeczywistym, aby wyświetlić NSLog i inne komunikaty debugowania w czasie rzeczywistym, takie jak adb logcat?
Odpowiedzi:
Rozwiązanie udokumentowane przez Apple w pytaniach technicznych i odpowiedziach QA1747 Debugowanie wdrożonych aplikacji iOS dla Xcode 6 to:
print
oświadczenia nie przechodzą do dziennika, tylko do stdout
. Użyj NSLog
zamiast tego. Lub może być możliwe przekierowanie stdout
do pliku z dodanym kodem. Awarie są rejestrowane i można uzyskać do nich dostęp za pomocą przycisku „Wyświetl dzienniki urządzeń”.
EDYCJA: Użyj rozwiązania @cbowns - deviceconsole jest kompatybilne z iOS9 i znacznie łatwiejsze w użyciu.
Jest to program typu open source, który wyświetla dziennik systemowy urządzenia iDevice w Terminalu (w sposób podobny do tail -F). Nie jest wymagane żadne jailbreak, a wyjście jest w pełni grepowalne, więc możesz filtrować, aby zobaczyć tylko wyjście z twojego programu. Szczególnie dobre w tym rozwiązaniu jest to, że możesz wyświetlić dziennik, czy aplikacja została uruchomiona w trybie debugowania z XCode.
Oto jak:
Pobierz plik binarny libimobiledevice dla systemu Mac OS X z mojego konta github pod adresem https://github.com/benvium/libimobiledevice-macosx/zipball/master
Postępuj zgodnie z instrukcjami instalacji tutaj: https://github.com/benvium/libimobiledevice-macosx/blob/master/README.md
Podłącz urządzenie, otwórz Terminal.app i wpisz:
idevicesyslog
W górę wyskakuje wyświetlanie dziennika systemowego urządzenia w czasie rzeczywistym.
Ponieważ jest to aplikacja konsolowa, możesz filtrować dziennik za pomocą poleceń unix, takich jak grep
Na przykład zobacz wszystkie komunikaty dziennika z określonej aplikacji:
idevicesyslog | grep myappname
Zaczerpnięte z mojego bloga pod adresem http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html
No device found, is it plugged in?
brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Dwie opcje:
libimobiledevice można zainstalować przez homebrew i działa świetnie. Jego idevicesyslog
narzędzie działa podobnie dodeviceconsole
(poniżej) i obsługuje bezprzewodowe przeglądanie syslog urządzenia (!)
Więcej o tym napisałem na Tumblr tl; dr:
brew install libimobiledevice
idevice_id --list // list available device UDIDs
idevicesyslog -u <device udid>
z urządzeniem podłączonym przez USB lub dostępnym w lokalnej sieci bezprzewodowej.
Od 2013 roku: deviceconsole od rpetrich jest znacznie mniej oszukanym rozwiązaniem niż ideviceconsole powyżej. Moje rozwidlenie kompiluje się i działa w Xcode 5 po wyjęciu z pudełka, a akcja Build zainstaluje plik binarny w /usr/local/bin
celu ułatwienia użytkowania.
Jako dodatkowa pomocna informacja, używam jej w następującym stylu, który ułatwia znalezienie urządzenia, które chcę w mojej historii powłoki i usuwa niepotrzebne >
linie, które są deviceconsole
drukowane.
deviceconsole -d -u <device UDID> | uniq -u && echo "<device name>"
libimobiledevice
. (Przewodowe i bezprzewodowe przeglądanie dziennika działa na moim Macu w wersji 10.11 i moim iPhonie na iOS 10.2)
brew install --HEAD libimobiledevice
. Pracował dla mnie.
Po prostu otwórz aplikację Console.app
na Mac OSX.
Można go znaleźć pod Applications
> Utilities
> Console
.
Po lewej stronie aplikacji są wymienione wszystkie podłączone urządzenia.
Wypróbuj bezpłatną konsolę iOS . Wystarczy pobrać, uruchomić, podłączyć swoje urządzenie - i voila!
Console.app
[który jest dostarczany natywnie na macOS]?
To może być to, czego szukasz: Xcode Organizer
urządzenie> wyjście terminala znajduje się w aplikacji konfiguracyjnej iPhone'a
Masz trzy możliwości:
Tak więc, aby uzyskać 2º, wystarczy zainstalować syslogd i OpenSSH z Cydii, po ponownym uruchomieniu wymagane jest uruchomienie syslogd; teraz po prostu otwórz sesję ssh na swoim urządzeniu (przez terminal lub putty w systemie Windows) i wpisz „tail -f / var / log / syslog”. I gotowe, bezprzewodowy dziennik systemu w czasie rzeczywistym.
Jeśli chcesz wypróbować 3º, po prostu wyszukaj „dup2” w Internecie, jest to wywołanie systemowe.
Aby wyświetlić konsolę urządzenia iOS w Safari na komputerze Mac (tylko najwyraźniej Mac):
Pojawi się Inspektor Safari, pokazujący konsolę dla twojego urządzenia iOS.
Alternatywnie możesz użyć narzędzia do rejestrowania na ekranie , takiego jak ticker-log, aby wyświetlić dzienniki bez (wygodnego) dostępu do konsoli.
Utilities/Console.app
?