Я пробовал все предыдущие ответы раньше, но ни один не работал для меня. Возможно, я знаю проблему, и ошибка вводит в заблуждение, я думаю.
Я пытаюсь сделать запрос API на сервер, который является https, но не имеет SSL. Также apis работает только через VPN. Поэтому я отключаю проверку SSL, и она отлично работает везде (в симуляторе, почтальоне, Android, Mac), за исключением реального устройства iOS.
То, что я веду так далеко, это:
- Загрязнение DNS - я пытался много раз на многих устройствах, он никогда не работает. Если это DNS, как он работает на других Android и Mac.
- VPN-туннелирование - я видел журналы выпуска программного обеспечения VPN, эта точная ошибка была ошибкой, но которая сейчас исправлена. Тем не менее я использую их приложение, я попробовал мой Mac Интернет с VPN на iPhone, все та же ошибка.
Мне буквально кажется, что ошибка связана с моим кодом или чем-то логичным, что нужно сделать на iOS, чтобы реально работать на реальном устройстве в целях безопасности (если оно есть).
Здесь я поделюсь реализацией, которая до сих пор работала на симуляторе (до этого я получал ту же ошибку на симуляторе).
Я реализовал URLSessionDelegate для моего класса маршрутизатора и разрешил произвольную загрузку в info.plist. Так что все в порядке URL, запрос и т. Д.
Делегат не вызывается на реальном устройстве.
func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
completionHandler(.useCredential, URLCredential(trust: challenge.protectionSpace.serverTrust!))
}
Перед выполнением запроса:
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config, delegate: self, delegateQueue: .main)
Содержимое Info plist файла
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>*my.domain*.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
</dict>
</dict>
</dict>
Ошибки консоли:
[] nw_proxy_resolver_create_parsed_array PAC evaluation error:
NSURLErrorDomain: -1003
2018-06-26 20:12:08.646042+0530 MyApp[806:161960] TIC TCP Conn Failed [1:0x1c416f000]: 12:8 Err(-65554)
2018-06-26 20:12:08.646740+0530 MyApp[806:161964] Task <DCE45907-5758-4CC0-91A1-9EFD53FFDA0A>.<1> HTTP load failed (error code: -1003 [12:8])
2018-06-26 20:12:08.646971+0530 MyApp[806:161964] Task <DCE45907-5758-4CC0-91A1-9EFD53FFDA0A>.<1> finished with error - code: -1003
Error Domain=NSURLErrorDomain Code=-1003 "A server with the specified hostname could not be found." UserInfo={NSUnderlyingError=0x1c044cfc0 {Error Domain=kCFErrorDomainCFNetwork Code=-1003 "(null)" UserInfo={_kCFStreamErrorCodeKey=8, _kCFStreamErrorDomainKey=12}}, NSErrorFailingURLStringKey=https://my.domain.com/myurl/public/api, NSErrorFailingURLKey=https://my.domain.com/myurl/public/api, _kCFStreamErrorDomainKey=12, _kCFStreamErrorCodeKey=8, NSLocalizedDescription=A server with the specified hostname could not be found.}
2018-06-26 20:14:17.727091+0530 MyApp[806:161970] Received XPC error Connection interrupted for message type 3 kCFNetworkAgentXPCMessageTypePACQuery
2018-06-26 20:14:17.727533+0530 MyApp[806:161970] Received XPC error Connection invalid for message type 3 kCFNetworkAgentXPCMessageTypePACQuery