I cannot disable Application Transport Security (ATS) in Xcode 9.2. I (for many years) disabled ATS when starting builds against my local server environment.
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
In Xcode 9.2, a simple request (runs against a local Rails application in http mode):
let session = URLSession(configuration: .default) let url = URL(string: "http://store.dev/api/products.json")! let task = session.dataTask(with: url) { data, response, error in print(data) print(response) print(error) } task.resume()
with error message
Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={_kCFStreamErrorCodeKey=-9802, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, NSUnderlyingError=0x60c00024afb0 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9802, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9802}}, NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., NSErrorFailingURLKey=https://store.dev/api/products.json, NSErrorFailingURLStringKey=https://store.dev/api/products.json, _kCFStreamErrorDomainKey=3}
This exact request (the same project) succeeds in Xcode 9.1.
In both cases, I build against the goal of deploying iOS 11.1. You can see that Xcode is changing the URL from http to https, which I don't want.
Here is a link to a super base project that works in Xcode 9.1, but with an error in 9.2 ( https://github.com/chrismanderson/ats-sample ).
I also tried disabling ATS only for the local store.dev domain, and again it works on Xcode 9.1, but not on 9.2.