Ошибка, записанная с Сторонние решения для регистрации ошибок, которые работают в разных доменах конечных точек:
Код: Выделить всё
NSUnderlyingError": Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9816, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9816, _NSURLErrorNWPathKey=satisfied (Path is satisfied), viable, interface: pdp_ip0[lte], ipv4, dns, expensive, uses cell}, "_NSURLErrorFailingURLSessionTaskErrorKey": LocalDataTask ., "_kCFStreamErrorDomainKey": 3, "_NSURLErrorRelatedURLSessionTaskErrorKey": ( LocalDataTask . )
Код: Выделить всё
"NSLocalizedDescription": An SSL error has occurred and a secure connection to the server cannot be made., "NSLocalizedRecoverySuggestion": Would you like to connect to the server anyway?
---
Характеристики:
- Мы считаем, что этим приложением управляет операционная система iOS, поскольку единственными способами надежного выхода из заблокированного состояния являются:
удалить и переустановить приложение или - после обновления приложения и новой установки
< /li>
подождем несколько дней
[*]Наш домен работает для других приложений, в то время как экземпляры нашего приложения сообщают о ошибка зависает, возвращая одни и те же ошибки -9816 для любого последующего запроса к нашему домену.
[*]В основном это происходит с мобильными/сотовыми данными. Переключение на данные WIFI может решить проблему, но как только данные мобильного/сотового телефона снова используются, проблема немедленно возвращается. Мы думаем, что бывают случаи с данными WIFI.
[*]Ошибка SSL чаще всего возникает после сбоя сервера. Несмотря на все усилия наших серверных инженеров, мы не можем воспроизвести проблему по требованию. Поскольку мы не можем воспроизвести проблему, мы не можем отправить запрос на поддержку на уровне кода в Apple из-за вопроса «Есть ли у вас конкретный тестовый проект, демонстрирующий вашу проблему?» требование.
Примечания по реализации:
У нас есть один общий экземпляр URLSession в приложении для его работы в сети, чтобы избежать проблем с несколькими экземплярами URLSession.
Конфигурация URLSession:
Код: Выделить всё
let config = URLSessionConfiguration.default
config.timeoutIntervalForResource = 22
config.timeoutIntervalForRequest = 20
config.requestCachePolicy = .reloadIgnoringLocalCacheData
config.urlCache = nil
Мы также попробовали следующее по предложению инженера Apple:
Код: Выделить всё
urlRequest.cachePolicy = .reloadIgnoringLocalAndRemoteCacheData
Подробнее здесь: https://stackoverflow.com/questions/791 ... -ssl-error