蘋果在 iOS 9 中引入了應用傳輸安全功能,它默認需要所有的應用使用 HTTPS 協議。由于不是所有的服務都由 HTTPS 提供,因此蘋果還提供了一個禁用 ATS 的方式,既可選擇性的使用也可全局應用。
如果您的應用需要能夠加載所有的 URL(比如說在 UIWebview中),那么您可能需要通過設置NSAllowsArbitraryLoads鍵值為YES來全局禁用 ATS。這完全是可以的,但是一旦您全局禁用了 ATS 功能,那么您需要在重要區域啟用ATS 服務。您需要使用NSExceptionDomains鍵來完成此項功能。比如說,這是xcode工程 的 Info.plist 文件的一部分內容:
您可以看到,我們支持用戶通過 HTTP 下載文件,但是我們同樣也支持通過 HTTPS 來連接jianshu.com。
還需要注意的是,每一個包都需要應用 ATS 功能。這意味著您不僅需要給您主應用的 Info.plist 文件添加 ATS 字典,而且還要同時給擴展的 Info.plist 文件添加。