Po aktualizacji do Xcode 9, używając Swift 3 i symulatora iPhone'a X, moja konsola jest pełna:
TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
...
Co to jest i jak to naprawić? Pomoc jest bardzo ceniona.
PS: Wolę nie tylko „wyciszać” go za pomocą Environment Variable
schematu kompilacji.
xcode
ios-simulator
ios11
xcode9
David Seek
źródło
źródło
Odpowiedzi:
Pracownicy Apple'a udzielili następującej odpowiedzi:
TIC
rozwija się do „połączenia TCP I / O”, czyli podsystemu w ramach CFNetwork, który uruchamia połączenie TCP1
i57
są odpowiednio domeną i kodem CFStreamError; domena 1 to kCFStreamErrorDomainPOSIX, aw ramach tej domeny57
to ENOTCONNKrótko mówiąc, odczyt TCP nie powiódł się z ENOTCONN.
Ponieważ podsystem połączeń TCP I / O nie ma publicznego interfejsu API, koniecznie trzeba go używać za pośrednictwem jakiegoś opakowania wysokiego poziomu (np. NSURLSession).
źródło: https://forums.developer.apple.com/thread/66058
EDYCJA / AKTUALIZACJA:
Ponieważ wszyscy nadal mamy te irytujące dzienniki, zapytałem tego samego specjalistę Apple z powyższego linku o naszą sytuację , która jest teraz specyficzna dla Xcode 9 i Swift 4. Oto ona:
Wiele osób narzeka na te dzienniki, które mam również we wszystkich moich aplikacjach od czasu aktualizacji do Xcode 9 / iOS 11.
Jego odpowiedź:
źródło: https://forums.developer.apple.com/message/272678#272678
ROZWIĄZANIE: Po prostu poczekaj na nowsze wersje / aktualizacje Xcode 9.
źródło
Oto, jak się
TIC Read Status [11:0x0]: 1:57
psuje:TIC
rozwija się do „połączenia TCP I / O”, czyli podsystemu w ramach CFNetwork, który uruchamia połączenie TCP11
to numer ID połączenia w TIC0x0
jest wskaźnikiem do samego obiektu TIC1
i57
są odpowiednio domeną i kodem CFStreamError; domena 1 to kCFStreamErrorDomainPOSIX, aw tej domenie 57 to ENOTCONNŹródło: https://forums.developer.apple.com/thread/66058
źródło
Uwaga: Podobnie jak @David wspomniał w komentarzu, jest to sposób na ukrycie ostrzeżeń, więc użyj tego argumentu uruchamiania, aby uniknąć wielu powtarzających się komunikatów i mieć czystą konsolę. Po zakończeniu debugowania wyłącz je, ponieważ konsola nie dostarcza przydatnych informacji, gdy jest włączona. Na przykład
libc++abi.dylib: terminating with uncaught exception of type NSException
.Dla osób, które zastanawiają się, jak wyciszyć ostrzeżenie i dopóki nie będzie dostępna lepsza poprawka, możesz podążać za zmienną i przełączać ją w razie potrzeby.
Użyj
OS_ACTIVITY_MODE = disable
zmiennej środowiskowej w obszarze Argumenty w schematach produktów, aby uniknąć zalewania konsoli takimi ostrzeżeniami.Uwaga B: Włącz, aby zobaczyć efekt.
Źródło: https://medium.com/@adinugroho/disable-os-logging-in-xcode-8-ec6d38502532
źródło
Najlepszym sposobem, jaki znalazłem, w odniesieniu do tego komunikatu dziennika i kilku innych (takich jak błędy NSURLSession, które niekoniecznie są błędami), jest posiadanie własnych funkcji dziennika.
Następnie po prostu wpisuję [MyProject] w prawym dolnym filtrze panelu konsoli i to wszystko.
Zauważ, że wywołując print w głównej kolejce, pozwala to na użycie twojego loggera z wątków bez mieszania konsoli.
Gotowy do ulepszenia i dostosowania do Twoich potrzeb :)
źródło
Miałem ten sam problem, w którym otrzymywałem znak „}” w odpowiedzi na usługę REST (GET).
Za pomocą:
po wysłaniu żądania adresu URL i zresetowaniu obiektu URLSession po otrzymaniu odpowiedzi jako:
Rozwiązał mój problem.
źródło
Udało nam się rozwiązać ten problem z logowaniem wyłączając HTTP / 2 na serwerze WWW, w naszym przypadku dokonaliśmy migracji z klasycznego ELB do aplikacji ELB, która dodała obsługę HTTP / 2 na AWS i zaczęliśmy otrzymywać "TIC Read Status [11: 0x0 ]: 1:57 "na konsoli XCode 10.1 / iOS 12. Wygląda to na tymczasowe rozwiązanie, dopóki Apple nie naprawi problemu z HTTP / 2, jeśli taki istnieje. To rozwiązanie może nie działać dla wszystkich, szczególnie jeśli korzystasz z interfejsów API innych firm, ale zapewnia wgląd w problem.
źródło
Jest to rejestracja wskazująca, że połączenie TCP zostało utracone / zamknięte / nieprawidłowe lub cokolwiek innego. Może się tak zdarzyć, jeśli Twoja aplikacja ma działające połączenie TCP i aplikacja jest na jakiś czas w tle lub gdy wyłączyłeś ekran telefonu. System operacyjny decyduje się zatrzymać jak najwięcej zasobów, aby zmniejszyć zużycie baterii. Jeśli przeniesiesz aplikację na pierwszy plan, połączenia TCP, które miałeś wcześniej, nie będą już działać. Musisz ponownie utworzyć nowe połączenie TCP.
Jeśli ci to nie przeszkadza, po prostu to zignoruj.
źródło