Для некоторых пользователей наше приложение выдает NSError при попытке вызвать API защищенного сервера с помощью задачи данных URLSession. Ниже подробно об ошибке:
error-domain: NSURLErrorDomain
nserror-code: -1202
NSErrorPeerCertificateChainKey: ( "<cert(0x10a086200) s: wifisignon.shaw.ca i: DigiCert SHA2 Secure Server CA>", "<cert(0x10a04f600) s: DigiCert SHA2 Secure Server CA i: DigiCert Global Root CA>" )
NSLocalizedDescription: The certificate for this server is invalid. You might be connecting to a server that is pretending to be “abc.xyz.net” which could put your confidential information at risk.
NSUnderlyingError: Error Domain=kCFErrorDomainCFNetwork Code=-1202 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, kCFStreamPropertySSLPeerTrust=<SecTrustRef: 0x282498240>, _kCFNetworkCFStreamSSLErrorOriginalValue=-9843, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9843, kCFStreamPropertySSLPeerCertificates=( "<cert(0x10a086200) s: wifisignon.shaw.ca i: DigiCert SHA2 Secure Server CA>", "<cert(0x10a04f600) s: DigiCert SHA2 Secure Server CA i: DigiCert Global Root CA>" )}
Мы используем URLSession.shared.dataTask
для этого вызова GET API. Проблема в том, что эта ошибка возникает только на нескольких пользовательских устройствах (300 пользователей из 5000). Поскольку мы не можем воспроизвести проблему на наших устройствах, ее сложно отладить и найти правильное решение. Если это проблема с сертификатом сервера, то почему она не возникает на всех устройствах с одинаковой моделью и версией ОС?