wake-up-neo.com

Was ist der TIC-Lesestatus 1:57 in iOS11/Xcode 9?

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 kann ich es beheben? Hilfe wird sehr geschätzt. 

PS: Ich ziehe es vor, es nicht einfach mit einem Environment Variable im Build-Schema "stummzumachen". 

131
David Seek

Apple-Mitarbeiter gaben die folgende Antwort:

TIC wird zu "TCP-E/A-Verbindung" erweitert. Hierbei handelt es sich um ein Subsystem innerhalb von CFNetwork, das eine TCP) - Verbindung ausführt

1 und 57 sind die CFStreamError-Domäne bzw. der Code; Eine Domain von 1 ist kCFStreamErrorDomainPOSIX und innerhalb dieser Domain 57 ist ENOTCONN

Kurz gesagt, ein Lesen von TCP ist mit ENOTCONN fehlgeschlagen.

Da das TCP I/O-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 unsere Situation befragt, die jetzt spezifisch ist für Xcode 9 und Swift 4. Hier ist es:

Viele Leute beschweren sich über diese Protokolle, die ich seit dem Upgrade auf Xcode 9/iOS 11 auch in allen meinen Apps habe.

2017-10-24 15:26:49.120556-0300 MyApp[1092:314222] TIC Read Status [55:0x0]: 1:57  
2017-10-24 15:26:49.120668-0300 MyApp[1092:314222] TIC Read Status [55:0x0]: 1:57  
2017-10-24 15:26:49.626199-0300 MyApp[1092:314617] TIC Read Status [56:0x0]: 1:57

Seine Antwort:

Es ist wichtig zu wissen, dass diese ENOTCONN nicht unbedingt bedeutet, dass etwas schief gelaufen ist. Geschlossene TCP -Verbindungen werden in allen Versionen von HTTP erwartet. Daher empfehle ich, dass Sie diese ignorieren, es sei denn, mit diesem Fehler ist ein anderes Symptom verbunden.

quelle: https://forums.developer.Apple.com/message/272678#272678

LÖSUNG: Warten Sie einfach auf neuere Versionen/Updates von Xcode 9.

177
rgoncalv

So bricht TIC Read Status [11:0x0]: 1:57 zusammen: 

TIC wird zu "TCP-E/A-Verbindung" erweitert. Hierbei handelt es sich um ein Subsystem in CFNetwork, das eine TCP - Verbindung ausführt

11 ist eine Verbindungs-ID-Nummer in TIC

0x0 ist ein Zeiger auf das TIC-Objekt selbst

1 und 57 sind die CFStreamError-Domäne bzw. der Code. Eine Domäne von 1 ist kCFStreamErrorDomainPOSIX und in dieser Domäne ist 57 ENOTCONN

Quelle: https://forums.developer.Apple.com/thread/66058

39
0rt

Hinweis: Wie bei @David im Kommentar erwähnt, können Warnungen ausgeblendet werden. Verwenden Sie dieses Startargument, um zu vermeiden, dass sich wiederholende Meldungen erhalten, und verwenden Sie eine saubere Konsole. Wenn Sie mit dem Debuggen fertig sind, lassen Sie es 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 Personen, die sich fragen, wie sie die Warnung unterdrücken können, und bis eine bessere Lösung verfügbar ist, können Sie die Variablen immer griffbereit halten und bei Bedarf umschalten.

Verwenden Sie die Umgebungsvariable OS_ACTIVITY_MODE = disable unter Argumente in den Produktschemen, um zu verhindern, dass die Konsole mit solchen Warnungen überflutet wird.

Hinweis B: Aktivieren Sie es, um den Effekt zu sehen.

Quelle: https://medium.com/@adinugroho/disable-os-logging-in-xcode-8-ec6d38502532

 enter image description here

29
lal

Der beste Weg, den ich in Bezug auf diese Protokollnachricht und einige andere gefunden habe (wie NSURLSession-Fehler, die nicht unbedingt Fehler sind), besteht darin, meine eigenen Protokollfunktionen zu haben.

class Logger {
    static var project: String = "MyProject"

    static func log(_ string: String, label: String = "") {
        DispatchQueue.main.async {
            print("[\(Logger.project)] \(label) : \(string)")
        }
    }

    static func info(_ string: String) {
        Logger.log(string)
    }

    static func warning(_ string: String) {
        Logger.log(string, label: "WARNING")
    }

    static func error(_ string: String) {
        Logger.log(string, label: "ERROR")
    }
}

Dann tippe ich einfach [MyProject] in den Konsolenbereich unten rechts, und das ist es.

Beachten Sie, dass durch den Aufruf von print in der Hauptwarteschlange Ihr Logger von Threads verwendet werden kann, ohne die Konsole zu verwechseln.

Bereit, für Ihre Bedürfnisse verbessert und optimiert zu werden :)

3
Moose

Ich hatte das gleiche Problem, wo ich als Antwort auf einen REST (GET) -Dienst '}' bekam.

Mit: 

URLCache.shared.removeCachedResponse(for: request as URLRequest)

nachdem Sie meine URL-Anfrage gemacht und mein URLSession-Objekt zurückgesetzt haben, nachdem Sie die Antwort erhalten haben:

session.reset(completionHandler: {
  // print(\(data))                          
})

Mein Problem gelöst.

0
Anuj Nigam

Wir haben es geschafft, dieses Protokollierungsproblem durch Deaktivieren von HTTP/2 auf dem Webserver zu lösen. In unserem Fall haben wir von klassischem ELB zu Anwendungs-ELB migriert, das HTTP/2 unter AWS unterstützt, und wir haben begonnen, "TIC-Lesestatus [11: 0x0" zu 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. Diese Lösung funktioniert möglicherweise nicht für alle, insbesondere wenn Sie APIs von Drittanbietern verwenden, bietet Ihnen jedoch einige Einblicke in das Problem.

0
Starkode