Существует ли надежный способ восстановления, когда URLSession обнаруживает ошибку SSL -9816?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Существует ли надежный способ восстановления, когда URLSession обнаруживает ошибку SSL -9816?

Сообщение Anonymous »

В течение ряда лет мы сталкивались с проблемой, когда наше приложение переходит в состояние, когда оно не может связаться с нашим доменом сервера после ошибки SSL -9816.
Ошибка, записанная с Сторонние решения для регистрации ошибок, которые работают в разных доменах конечных точек:

Код: Выделить всё

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?
Мы разместили проблему на форуме разработчиков Apple, но не получили дополнительного ответа после того, как попробовали предложение в ответе инженера Apple: https://forums.developer. apple.com/forums/thread/762158
---
Характеристики:
  • Мы считаем, что этим приложением управляет операционная система iOS, поскольку единственными способами надежного выхода из заблокированного состояния являются:

    удалить и переустановить приложение или
  • после обновления приложения и новой установки
    < /li>
    подождем несколько дней
< 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
Мы добавили условия для вызова метода URLSession await reset() при обнаружении ошибок SSL перед повторением запроса. Мы по-прежнему видим, что последующие запросы выдают ту же ошибку -9816.
Мы также попробовали следующее по предложению инженера Apple:

Код: Выделить всё

urlRequest.cachePolicy = .reloadIgnoringLocalAndRemoteCacheData
Похоже, что эта политика не повлияла на ошибку.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -ssl-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»