在iOS 13中,ATS(App Transport Security)政策没有发生更改,但是Allow Arbitrary Loads选项的行为可能会有所不同。
在iOS 9及之前的版本中,我们可以在Info.plist文件中使用以下代码来禁用ATS:
NSAppTransportSecurity
NSAllowsArbitraryLoads
然而,在iOS 10及之后的版本中,使用上述代码将会被App Store审核拒绝。相反,我们应该针对特定的网络请求设置ATS规则。
以下是一个示例,展示如何在iOS 13中针对特定域名启用Allow Arbitrary Loads:
import Foundation
// 创建一个URLSessionConfiguration对象
let config = URLSessionConfiguration.default
// 创建一个字典来设置ATS规则
let dict = [
"NSExceptionDomains": [
"example.com": [
"NSExceptionAllowsInsecureHTTPLoads": true
]
]
]
// 将ATS规则字典设置到URLSessionConfiguration对象
config.setDictionary(dict, forKey: "NSAppTransportSecurity")
// 使用新的URLSessionConfiguration对象创建URLSession
let session = URLSession(configuration: config)
// 创建一个URL对象
let url = URL(string: "https://example.com")!
// 根据需要进行网络请求
let task = session.dataTask(with: url) { (data, response, error) in
// 处理响应或错误
}
task.resume()
在上面的示例中,我们创建了一个URLSessionConfiguration对象,并使用字典设置了ATS规则。我们将特定域名example.com设置为允许不安全的HTTP加载。然后,我们使用新的URLSessionConfiguration对象来创建一个URLSession,并使用该URLSession进行网络请求。
请注意,这只是一个示例,你需要根据自己的需求来设置正确的ATS规则。可以在苹果的官方文档中查找更多关于ATS的信息和规则设置:https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity