文章譯自 iOS Development Tips .
Apple 近期針對iOS9做了一個比較激進的決定,禁用iOS App中所有不安全的HTTP通信,并將其作為App 傳輸安全(App Tranport Security, 簡稱ATS)的一部分。
這有助于安全更好的得到執行,但在很多情況下,開發者是無法控制服務器的。或者你可以控制服務器,你想在App 瀏覽器中像任意鏈接那樣加載更多的外部內容。
如果你在ATS打開的情況下(使用NSURLSession
或者其他第三方庫 AFNetworking
)嘗試發送HTTP 請求,你就會看到以下錯誤:
Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo=0x12ed5bad0 {NSUnderlyingError=0x12ee495b0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1004.)"
下面向你展示如何完全禁用ATS。打開 Info.plist
,添加下面幾行:
這是你萬不得已采取的最后一招。當然,你的通信服務最好還是能支持HTTPS,了解更多細節。