iOS9 HTTP 不能正常使用的解決辦法

今天升級Xcode 7 之後,發現原有工程中所有的網絡訪問失敗。
輸出錯誤信息

The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

Google後查證,iOS9引入了新特性App Transport Security (ATS)。詳情:App Transport Security (ATS)

新特性要求App內訪問的網絡必須使用HTTPS協議。
但是現在公司的項目使用的是HTTP協議,使用私有加密方式保證數據安全。現在也不能馬上改成HTTPS協議傳輸。

最終找到以下解決辦法:

  1. 在Info.plist中添加App Transport Security Settings類型Dictionary

  2. App Transport Security Settings下添加Allow Arbitrary Loads類型Boolean,值設爲YES

看到很多同學修改後還是不能用添加一下截圖:

  1. 在Filter中搜索Info.plist,選擇Info.plist進行編輯
    圖片描述

  2. 按照上面提到的方式添加信息,正確的修改會看到下圖這個樣子,注意類型App Transport Security SettingsDictionaryApp Transport Security SettingsBoolean,複製粘貼的時候,不要多了空格.


  3. 注意,單元測試下面也有一個Info.plist,修改那個文件是沒有作用的!


參考:

總結:

蘋果正在加大應用安全的管控,這個舉措可以看出蘋果對信息安全的重視,也暴露出大部分應用傳輸數據時都是未經過加密的,或使用私有方式加密,以至於蘋果開始對開發者提出要求。
私有加密雖然一定程度上是安全的,但是終究不是一個長久之計。全世界這麼多安全專家在維護HTTPS安全,早日使用HTTPS確保信息安全才是王道!也省去了私有加密協議的安全隱患.

爲了更加安全的訪問, 早日使用HTTPS吧!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章