У меня есть приложение IOS и API dot net, размещенные в одной сети. У меня есть IP w.x.y.z Я пытаюсь пропустить через info.plist, потому что у него нет SSL-сертификата. Я понимаю, что IP-адреса не поддерживаются, поэтому я использую xip.io для преобразования его в доменное имя.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>w.x.y.z.xip.io</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
Мой код Swift:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = URL(string: "https://w.x.y.z.xip.io:44328/api/values/1")!
print("START")
let task = URLSession.shared.dataTask(with: url) {(data, response, error) in
guard let data = data else { return }
print(String(data: data, encoding: .utf8)!)
}
print("DONE")
task.resume()
}
Переход к https://w.x.y.z.xip.io:44328/api/values/1 отлично работает в моем браузере. Когда я пытаюсь запустить его, я получаю
019-01-25 01:14:10.427331-0500 test_api[20555:3495649] ATS failed system trust
2019-01-25 01:14:10.427505-0500 test_api[20555:3495649] System Trust failed for [1:0x600000f8c900]
2019-01-25 01:14:10.427584-0500 test_api[20555:3495649] TIC SSL Trust Error [1:0x600000f8c900]: 3:0
2019-01-25 01:14:10.432453-0500 test_api[20555:3495649] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
2019-01-25 01:14:10.432601-0500 test_api[20555:3495649] Task <964CC4A4-C3C3-4349-80AA-E1DFC04920DA>.<1> HTTP load failed (error code: -1200 [3:-9802])
2019-01-25 01:14:10.433065-0500 test_api[20555:3495648] Task <964CC4A4-C3C3-4349-80AA-E1DFC04920DA>.<1> finished with error - code: -1200