我目前正在开发一个需要连接到用户提供的应用程序,也可能还有用户托管服务。这些服务并非都支持HTTPS。在过去,NSAllowsArbitraryLoads
将使用户能够连接到这些服务,尽管App Transport Security。据我了解,NSAllowsArbitraryLoads
很快就会被弃用,而不会直接替换。
我有两个关于App Transport Security的问题:
NSAllowsArbitraryLoads
?沿着这条线,我的应用程序还应该支持不受信任的TLS证书。目前,我计划在URL urlSession(_ session: URLSession, task: URLSessionTask, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void)
的URLSessionTaskDelegate中实现它。
这是处理这种情况的有效且允许的方式吗?
干杯!
答案 0 :(得分:3)
NSAllowsArbitraryLoads
不会被弃用。你仍然可以使用它。但是从2017年1月开始,将有一个新的限制:当您没有充分理由时,在info.plist
中定义了具有ATS例外的应用将不再被批准。 (这仅适用于新版本。目前AppStore上现有的任何版本都不会受到影响。)
有关详细信息,请参阅WWDC 2016的Session 706。开发人员论坛中的This thread也可能包含一些有用的信息。
使用URLSession
仍然有效。您不必更改任何代码。但是,如果没有ATS例外,您需要可信赖的TLS证书。