iOS 9 “App Transport Security has blocked a cleartext HTTP (http://) resource load” 的解決方法

當使用 Xcode 7 編譯 Base SDK 為 iOS 9 的 iOS App 時,出現錯誤:

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file.

原因是 iOS 9 預設了一項限制,所有網絡連接都必須使用 HTTPS 加密協議,雖然 HTTPS 整體來說都比 HTTP 要好(無論是保安性或 SEO 方面),但由於 HTTPS 需要在伺服器端安裝證書,而證書往往需要付費購買,以及 HTTPS 的傳輸速度要比 HTTP 慢一點點等因素,使用 HTTP 無疑是最方便快捷的做法。

但筆者建議長遠來說還是使用 HTTPS 協議較好,因為好多時 App 的網絡連接是 API 相關的,使用 HTTPS 能提高安全性。

而臨時的解決方案如下:

  1. 開啟 info.plist
  2. 新增一個 Dictionary,名為 NSAppTransportSecurity
  3. 在這個 Dictionary 下新增一個 Boolean 名為 NSAllowsArbitraryLoads,值為 YES

具體可參考下圖:
Screen Shot 2015-10-03 at 01.26.20

然後重新 Build 過 Project 即可。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *