Podczas korzystania z Xcode 8+ i tworzenia nowego pustego projektu podczas uruchamiania aplikacji pojawiają się następujące dzienniki:
2016-06-13 16:33:34.406093 TestiOS10[8209:100611] bundleid: com.appc.TestiOS10, enable_level: 0, persist_level: 0, propagate_with_activity: 0
2016-06-13 16:33:34.406323 TestiOS10[8209:100607] Created DB, header sequence number = 248
2016-06-13 16:33:34.409564 TestiOS10[8209:100611] subsystem: com.apple.UIKit, category: HIDEvents, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
2016-06-13 16:33:34.504117 TestiOS10[8209:100607] Created DB, header sequence number = 248
2016-06-13 16:33:34.548023 TestiOS10[8209:100607] subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
2016-06-13 16:33:34.568458 TestiOS10[8209:100608] subsystem: com.apple.FrontBoard, category: Common, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
Może ktoś już znalazł konfigurację do obsługi?
Odpowiedzi:
Spróbuj tego:
1- Z menu Xcode otwórz: Produkt> Schemat> Edytuj schemat
2- W twoim środowisku Zmienne ustawione
OS_ACTIVITY_MODE
=disable
źródło
NSLog
dla mnie wszystkie elementy przed prawdziwym urządzeniem ...Opierając się na oryginalnej tweet od @rustyshelf i zilustrowanym odpowiedź od iDevzilla, oto rozwiązanie, które wycisza hałas z symulatora bez wyłączania wyjścia NSLog z urządzenia.
źródło
disable
zdefault
.OS_ACTIVITY_MODE nie działało dla mnie (być może dlatego, że napisałem
disable
jakodisabled
, ale czy nie jest to bardziej naturalne?!?), A przynajmniej nie zapobiegło wielu wiadomościom. Oto prawdziwa okazja do zmiennych środowiskowych.https://llvm.org/svn/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
Tak więc ustawienie
OS_ACTIVITY_DT_MODE
na „NIE” w zmiennych środowiskowych (metoda GUI wyjaśniona na zrzucie schematu w głównej odpowiedzi) sprawia, że to działa dla mnie.Jeśli chodzi
NSLog
o zrzucanie komunikatów systemowych, błędów i własnego debugowania: prawdopodobnie konieczne jest prawdziwe logowanie, np . Https://github.com/fpillet/NSLogger .LUB
Wypij nową Kool-Aid: http://asciiwwdc.com/2016/sessions/721 https://developer.apple.com/videos/play/wwdc2016/721/ Nic dziwnego, że po przeróbce są pewne problemy logowanie API.
UZUPEŁNIENIE
W każdym razie
NSLog
to tylko shim:https://developer.apple.com/library/content/releasenotes/Miscellaneous/RN-Foundation-OSX10.12/
Teraz ma sens tylko cytowanie źródła innej zmiennej env. Całkiem odmienne miejsce, tym razem od wewnętrznych elementów Apple. Nie jestem pewien, dlaczego się pokrywają. [Niepoprawny komentarz do
NSLog
usuniętego][Edytowano 22 września]: Zastanawiam się, co „wydanie” i „stream” robią inaczej niż „debugowanie”. Za mało źródła.
https://github.com/macosforge/libdispatch/blob/8e63547ea4e5abbfe55c0c3064181c4950a791d3/src/voucher.c
źródło
os_log
Nieformalnie nazywam nową pomoc Kool.Tweet miał dla mnie odpowiedź - https://twitter.com/rustyshelf/status/775505191160328194
Aby zatrzymać logowanie Xcode 8 iOS Simulator jak szalone, ustaw zmienną środowiskową OS_ACTIVITY_MODE = wyłącz w schemacie debugowania.
Zadziałało.
źródło
disable
zdefault
.Znajdź poniższe kroki.
CMD + <
Run
opcję z lewej strony.Aby uzyskać więcej informacji, zapoznaj się z poniższą reprezentacją GIF.
źródło
disable
zdefault
.Dla mnie nadal nie jest to poprawione w Xcode w wersji 8.0 beta 2 (8S162m), a dodatkowe logi pojawiają się również w konsoli Xcode** EDYCJA 8/1/16: Potwierdzono to w uwagach do wydania dla Xcode 8 Beta 4 (8S188o) jako wciąż występujący problem .
Prawdopodobnie zostanie to rozwiązane przez wydanie GM. Do tego czasu cierpliwość i choć nie idealne, ale obejście, którego używam, jest poniżej ...
Podobnie jak w poprzedniej odpowiedzi muszę:
poprzedź moje dzienniki wydruku jakimś specjalnym znakiem (np. * lub ^ lub! itd. itp.)
Następnie użyj pola wyszukiwania w prawym dolnym rogu okienka konsoli, aby odfiltrować dzienniki konsoli, wprowadzając wybrany znak specjalny, aby konsola wyświetlała moje dzienniki wydruku zgodnie z przeznaczeniem
źródło
Moje rozwiązanie polega na użyciu polecenia debuggera i / lub komunikatu dziennika w punktach przerwania.
I zmień wyjście konsoli z All Output na Output Debugger jak
źródło
W porządku. Wydaje się, że jest dużo zamieszania w tym, więc dam wam wszystkim sposób na utrzymanie go bez użycia tej sztuczki. Zwrócę się konkretnie do symulatora iOS, ale może to również wymagać zastosowania do TV Sim, który znajduje się w innym katalogu.
Problemem, który powoduje wszystkie te rzeczy, są listy znajdujące się w katalogu Xcode. Uruchomiony zostaje proces o nazwie configd_sim uruchamiania Sima uruchamiany który odczytuje listy i wyświetla informacje o debugowaniu, jeśli listy te określają, że powinny one zostać zarejestrowane.
Plists znajdują się tutaj:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Preferences/Logging/Subsystems
Jeśli grasz z wersją beta, pamiętaj, że katalog będzie inny.
W tym katalogu zobaczysz wiele list. Teraz skompiluj i uruchom aplikację i obserwuj dzienniki. Szukasz treści bezpośrednio po podsystemie: część. Jest to nazwa bezpośrednio po tym, która reprezentuje odpowiedni problematyczny plist.
Stamtąd zmodyfikuj plist, aby wyeliminować klucz / wartość debugowania [Poziom], który jest słownikiem zawierającym
"Enable" => "Default"
klucz / wartość ... lub po prostu usuń plist. Pamiętaj, że musisz wykonać root, aby wykonać jedną z tych czynności, ponieważ znajdują się one w aplikacji Xcode.plutil -p
komenda może być użyteczna dla Ciebie. to znaczyTo dało mi jedną z problematycznych list, które zawierały:
{ "DEFAULT-OPTIONS" => { "Level" => { "Enable" => "Default" }}}
Powodzenia :]
źródło
2016-09-23 15:09:21.354686 ProductName[8823:191206][] tcp_connection_start 3 starting
Jest to związane ze znanym problemem związanym z rejestrowaniem w Notatkach do wydania Xcode 8 Beta (również zapytany inżynier z WWDC).
Obecnie nie jest dostępne obejście tego problemu, musisz poczekać na nową wersję Xcode.
EDYCJA 7/5/16: To jest prawdopodobnie naprawione od Xcode 8 Beta 2:
Informacje o wersji Xcode 8 Beta 2
źródło
Nie jest to już problemem w xcode 8.1 (testowana wersja 8.1 beta (8T46g)) . Możesz usunąć
OS_ACTIVITY_MODE
zmienną środowiskową ze swojego schematu.https://developer.apple.com/go/?id=xcode-8.1-beta-rn
źródło
[MC] Reading from private effective user settings.
z pustego, nowego projektu fikcyjnego Plik> Nowy> Projekt.W Xcode 10
OS_ACTIVITY_MODE
zmiennądisable
(lubdefault
wartości) wyłącza równieżNSLog
nie wiem co.Więc jeśli chcesz pozbyć się hałasu konsoli, ale nie własnych dzienników, możesz wypróbować stary dobry
printf("")
zamiast NSLog, ponieważ nie ma na niego wpływuOS_ACTIVITY_MODE
=disable
.Ale lepiej sprawdź tutaj nowy
os_log
interfejs API .źródło
To rozwiązanie działa dla mnie:
⌘
+/
)Spowoduje to zrzucenie wszystkich danych debugowania, a także twoich NSLogów.
Aby filtrować tylko instrukcje NSLog:
NSLog(@"^ Test Log")
Oto, co powinieneś otrzymać:
źródło