Nach dem Update auf Xcode 9 mit Swift 3 und dem iPhone X-Simulator ist meine Konsole voll mit:
TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
...
Was ist das und wie behebe ich es? Hilfe wird sehr geschätzt.
PS: Ich ziehe es vor, es nicht einfach mit einem Environment Variable
im Build-Schema "zum Schweigen zu bringen" .
xcode
ios-simulator
ios11
xcode9
David Seek
quelle
quelle
Antworten:
Apple-Mitarbeiter gaben die folgende Antwort:
TIC
wird zu "TCP-E / A-Verbindung" erweitert, einem Subsystem innerhalb von CFNetwork, das eine TCP-Verbindung ausführt1
und57
sind die CFStreamError-Domäne bzw. der Code; Eine Domäne von 1 ist kCFStreamErrorDomainPOSIX und innerhalb dieser Domäne57
ist ENOTCONNKurz gesagt, ein TCP-Lesevorgang ist mit ENOTCONN fehlgeschlagen.
Da das TCP-E / A-Verbindungssubsystem keine öffentliche API hat, müssen Sie es unbedingt über einen High-Level-Wrapper (wie NSURLSession) verwenden.
Quelle: https://forums.developer.apple.com/thread/66058
EDIT / UPDATE:
Da wir alle immer noch diese nervigen Protokolle haben, habe ich denselben Apple-Spezialisten über den obigen Link nach unserer Situation gefragt , die jetzt spezifisch für Xcode 9 und Swift 4 ist. Hier ist sie:
Viele Leute beschweren sich über diese Protokolle, die ich seit dem Upgrade auf Xcode 9 / iOS 11 auch in all meinen Apps habe.
Seine Antwort:
Quelle: https://forums.developer.apple.com/message/272678#272678
LÖSUNG: Warten Sie einfach auf neuere Versionen / Updates von Xcode 9.
quelle
So
TIC Read Status [11:0x0]: 1:57
bricht das zusammen:TIC
wird zu "TCP-E / A-Verbindung" erweitert, einem Subsystem innerhalb von CFNetwork, das eine TCP-Verbindung ausführt11
ist eine Verbindungs-ID-Nummer innerhalb von TIC0x0
ist ein Zeiger auf das TIC-Objekt selbst1
und57
sind die CFStreamError-Domäne bzw. der Code; Eine Domäne von 1 ist kCFStreamErrorDomainPOSIX und innerhalb dieser Domäne ist 57 ENOTCONNQuelle: https://forums.developer.apple.com/thread/66058
quelle
Hinweis: Wie bei @David im Kommentar erwähnt, können die Warnungen auf diese Weise ausgeblendet werden. Verwenden Sie dieses Startargument, um zu vermeiden, dass sich viele Nachrichten wiederholen, und verfügen Sie über eine saubere Konsole. Lassen Sie das Debugging nach dem Debuggen deaktiviert, da die Konsole bei Aktivierung keine nützlichen Informationen liefert. Zum Beispiel
libc++abi.dylib: terminating with uncaught exception of type NSException
.Für Leute, die sich fragen, wie sie die Warnung zum Schweigen bringen können und bis eine bessere Lösung verfügbar ist, können Sie die Variable weiterhin zur Hand haben und nach Bedarf umschalten.
Verwenden
OS_ACTIVITY_MODE = disable
Umgebungsvariable unter Argumente in den Produktschemata, um zu vermeiden, dass die Konsole mit solchen Warnungen überflutet wird.Hinweis B: Aktivieren Sie diese Option, um den Effekt anzuzeigen.
Quelle: https://medium.com/@adinugroho/disable-os-logging-in-xcode-8-ec6d38502532
quelle
Der beste Weg, den ich in Bezug auf diese Protokollnachricht und einige andere (wie NSURLSession-Fehler, die nicht unbedingt Fehler sind) gefunden habe, besteht darin, meine eigenen Protokollfunktionen zu haben.
Dann tippe ich einfach [MyProject] in den Filter unten rechts im Konsolenbereich und fertig .
Beachten Sie, dass durch Aufrufen von print in der Hauptwarteschlange Ihr Logger von Threads aus verwendet werden kann, ohne die Konsole zu verwechseln.
Bereit, verbessert und an Ihre Bedürfnisse angepasst zu werden :)
quelle
Ich hatte das gleiche Problem, bei dem ich als Antwort auf einen REST (GET) -Dienst '}' erhielt.
Verwenden von:
Nachdem Sie meine URL-Anfrage gestellt und mein URLSession-Objekt zurückgesetzt haben, nachdem Sie die Antwort erhalten haben:
Mein Problem gelöst.
quelle
Wir haben es geschafft, dieses Protokollierungsproblem durch Deaktivieren von HTTP / 2 auf dem Webserver zu lösen. In unserem Fall haben wir von der klassischen ELB zur Anwendungs-ELB migriert, die HTTP / 2 unter AWS unterstützt, und haben den Status "TIC-Lesestatus [11: 0x0" erhalten ]: 1:57 "auf der XCode 10.1 / iOS 12-Konsole. Dies scheint eine vorübergehende Lösung zu sein, bis Apple das Problem mit HTTP / 2 behoben hat, falls vorhanden. Diese Lösung funktioniert möglicherweise nicht für alle, insbesondere wenn Sie APIs von Drittanbietern verwenden, gibt Ihnen jedoch einige Einblicke in das Problem.
quelle
Es ist eine Protokollierung, die angibt, dass eine TCP-Verbindung verloren / geschlossen / nicht_valid oder was auch immer ist. Dies kann passieren, wenn Ihre App eine laufende TCP-Verbindung hat und die App für einige Zeit in den Hintergrund gestellt wird oder Sie den Bildschirm Ihres Telefons ausgeschaltet haben. Das Betriebssystem beschließt, so viele Ressourcen wie möglich zu stoppen, um den Batterieverbrauch zu verringern. Wenn Sie die App in den Vordergrund stellen, funktionieren die TCP-Verbindungen, die Sie zuvor hatten, nicht mehr. Sie müssen eine neue TCP-Verbindung neu erstellen.
Wenn es Sie nicht stört, ignorieren Sie es einfach.
quelle