Xcode 9 iOS 11 BoringSSL SSL_ERROR_ZERO_RETURN
(4)
¿Hay alguna forma en que pueda depurar por qué aparece el mensaje?
Sí , lo hay , y estoy un poco sorprendido de que aún no se haya mencionado.
CFNetwork
maneja el núcleo de las clases de redes de la
Foundation
. También tiene la capacidad (a menudo pasada por alto) de registro detallado a través de la variable de entorno
CFNETWORK_DIAGNOSTICS
.
CFNetwork
registro de diagnóstico de
CFNetwork
:
setenv("CFNETWORK_DIAGNOSTICS", "3", 1);
Debe establecerse en un valor entero de 0 a 3, donde 0 está desactivado y los números más altos proporcionan progresivamente más registros.
Durante el desarrollo normal, puede configurar esta variable de entorno a través del editor de esquemas de Xcode.
Cuando la aplicación se ejecuta desde Xcode, las entradas del registro de
CFNetwork
aparecerán en el área de la consola de depuración (si no está visible, elija
View
>
Debug Area
>
Show Debug Area
).
La variable de entorno debe colocarse justo al comienzo de la secuencia de inicio de la aplicación.
Normalmente, poner esto al comienzo de main es suficiente, pero si tiene inicializadores estáticos de C ++ que usan
CFNetwork
, tendrá que ponerlo antes.
Nota: en Swift este código iría en
main.swift
. Por defecto, las aplicaciones Swift no tienenmain.swift
; "El lenguaje de programación Swift" explica cómo agregar uno.
* También tenga en cuenta que en Swift elimine el punto y coma al final delsetenv
.
Definir la variable de entorno anterior definitivamente debería ayudar a determinar dónde está el problema, o al menos darle un punto de partida para comenzar a diagnosticar un mensaje de error algo vago.
Tengo un programa simple HelloWorld ejecutándose en iOS. El mismo código ha estado funcionando bien durante mucho tiempo. Recientemente, noté que recibo el siguiente error BoringSSL cuando el programa se ejecuta en mi ipad conectado a Xcode 9 en mi Macbook. No veo este error cuando ejecuto el programa en el simulador. El iOS es 11.2. Xcode es 9.2.
Mi código no tiene referencia a BoringSSL. Sin embargo, sí utiliza NSMutableURLRequest para realizar llamadas https a un servidor. La llamada funciona bien y todo parece funcionar bien, excepto los mensajes BoringSSL.
¿Hay alguna forma en que pueda depurar por qué aparece el mensaje? HellowWorld [466: 85961], ¿qué significan esos 2 números?
¿Qué significa el mensaje y cómo evitarlo?
2017-12-13 15:41:13.486047-0500 HellowWorld[466:85961] [BoringSSL] Function boringssl_session_errorlog: line 2871 [boringssl_session_read] SSL_ERROR_ZERO_RETURN(6): operation failed because the connection was cleanly shut down with a close_notify alert
2017-12-13 15:41:13.486363-0500 HellowWorld[466:85961] [BoringSSL] Function boringssl_session_errorlog: line 2871 [boringssl_session_read] SSL_ERROR_ZERO_RETURN(6): operation failed because the connection was cleanly shut down with a close_notify alert
Me las arreglé para solucionar el problema agregando la clave "Configuración de seguridad de transporte de aplicaciones" a la lista de información. Asegúrese de que "Permitir cargas arbitrarias" esté configurado en "Sí".
Para aquellos de ustedes para quienes los métodos anteriores no funcionaron, este es el problema en mi caso:
Estaba enviando una solicitud
GET
con un
cuerpo de solicitud
JSON usando
Alamofire
.
Lo cambié a una solicitud
GET
que contiene los parámetros como parámetros de consulta en la URL (en la línea de
GET https://your-api.com/v1/request?param=value
).
Luego funcionó a la perfección.
Recibí un mensaje similar al intentar usar NSLog para publicar una lista muy larga, ya que publicaría la lista durante mucho tiempo en la consola de depuración y luego enumeraría parte de la lista seguida de algunas
...
para mostrar que había más que no se imprimió en la consola, arreglé esto (usando OBJ-C) y agregué este #define a mi VC.m
#define NSLog(FORMAT, ...) printf("%s/n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
quizás puedas usar algo similar a tu proyecto veloz.