descargar - ¿Qué es TIC Read Status 1:57 en iOS11/Xcode 9?
xcode 9.0 download (6)
Después de actualizar a Xcode 9, usando Swift 3 y el simulador de iPhone X, mi consola está llena de:
TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
...
¿Qué es eso y cómo lo soluciono? La ayuda es muy apreciada.
PD: Prefiero no solo "silenciarlo" con una
Environment Variable
en el esquema de compilación.
Así es como se
TIC Read Status [11:0x0]: 1:57
:
TIC
expande a "conexión de E / S TCP", que es un subsistema dentro de CFNetwork que ejecuta una conexión TCP
11
es un número de ID de conexión dentro de TIC
0x0
es un puntero al objeto TIC en sí
1
y
57
son el dominio y el código CFStreamError, respectivamente;
un dominio de 1 es kCFStreamErrorDomainPOSIX y, dentro de ese dominio, 57 es ENOTCONN
El personal de Apple dio la siguiente respuesta:
TIC
expande a "conexión de E / S TCP", que es un subsistema dentro de CFNetwork que ejecuta una conexión TCP
1
y
57
son el dominio y el código CFStreamError, respectivamente;
un dominio de 1 es kCFStreamErrorDomainPOSIX y, dentro de ese dominio,
57
es ENOTCONN
En resumen, una lectura TCP ha fallado con ENOTCONN.
Como el subsistema de conexión TCP I / O no tiene una API pública, necesariamente debe usarlo a través de algún contenedor de alto nivel (como NSURLSession).
fuente: https://forums.developer.apple.com/thread/66058
EDITAR / ACTUALIZAR:
Como todavía tenemos estos registros molestos, le pregunté al mismo especialista de Apple desde el enlace anterior sobre nuestra situación , que ahora es específica para Xcode 9 y Swift 4. Aquí está:
Mucha gente se queja de estos registros, que también tengo en todas mis aplicaciones desde que actualicé a Xcode 9 / iOS 11.
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
Su respuesta:
Es importante darse cuenta de que este ENOTCONN no significa necesariamente que algo haya salido mal. Se esperan conexiones TCP cerradas en todas las versiones de HTTP. Entonces, a menos que haya algún otro síntoma asociado con este error, mi recomendación es que lo ignore.
fuente: https://forums.developer.apple.com/message/272678#272678
SOLUCIÓN: solo espere las nuevas versiones / actualizaciones de Xcode 9.
Estaba teniendo el mismo problema cuando obtenía ''}'' en respuesta a un servicio REST (GET).
Utilizando:
URLCache.shared.removeCachedResponse(for: request as URLRequest)
después de hacer mi solicitud de URL y restablecer mi objeto URLSession después de obtener la respuesta como:
session.reset(completionHandler: {
// print(/(data))
})
Resuelto mi problema
La mejor manera que encontré, con respecto a este mensaje de registro y algunos otros (como los errores de NSURLSession que no son necesariamente errores) es tener mis propias funciones de registro.
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")
}
}
Luego simplemente escribo [MyProject] en el filtro inferior derecho del panel de la consola, y eso es todo.
Tenga en cuenta que al llamar a print en la cola principal, permite que su registrador se use desde hilos sin mezclar su consola.
Listo para ser mejorado y ajustado para sus necesidades :)
Logramos resolver este problema de registro deshabilitando HTTP / 2 en el servidor web, en nuestro caso hemos migrado de ELB clásico a ELB de aplicaciones que agregaron soporte a HTTP / 2 en AWS y comenzamos a obtener "Estado de lectura de TIC [11: 0x0 ]: 1:57 "en la consola XCode 10.1 / iOS 12. Esto parece una solución temporal hasta que Apple solucione el problema con HTTP / 2, si lo hay. Es posible que esta solución no funcione para todos, especialmente si está utilizando API de terceros, pero le brinda algunas ideas sobre el problema.
Nota: Al igual que lo que @David mencionó en el comentario, es una forma de ocultar las advertencias, así que use este argumento de inicio para evitar recibir muchos mensajes repetitivos y tener una consola limpia.
Una vez finalizada la depuración, manténgala deshabilitada ya que la consola no proporciona información útil cuando está habilitada.
Por ejemplo,
libc++abi.dylib: terminating with uncaught exception of type NSException
.
Para las personas que se preguntan cómo silenciar la advertencia y hasta que esté disponible una solución mejor, puede seguir la variable a mano y alternar según sea necesario.
Use
OS_ACTIVITY_MODE = disable
la variable de entorno en Argumentos en los esquemas del producto para evitar que la consola se inunde con tales advertencias.
Nota B: habilítelo para ver el efecto.
Fuente: https://medium.com/@adinugroho/disable-os-logging-in-xcode-8-ec6d38502532