今天升級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
協議傳輸。
最終找到以下解決辦法:
在Info.plist中添加
App Transport Security Settings
類型Dictionary
。在
App Transport Security Settings
下添加Allow Arbitrary Loads
類型Boolean
,值設爲YES
看到很多同學修改後還是不能用添加一下截圖:
在Filter中搜索
Info.plist
,選擇Info.plist
進行編輯按照上面提到的方式添加信息,正確的修改會看到下圖這個樣子,注意類型
App Transport Security Settings
爲Dictionary
,App Transport Security Settings
爲Boolean
,複製粘貼的時候,不要多了空格.注意,單元測試下面也有一個
Info.plist
,修改那個文件是沒有作用的!
參考:
總結:
蘋果正在加大應用安全的管控,這個舉措可以看出蘋果對信息安全的重視,也暴露出大部分應用傳輸數據時都是未經過加密的,或使用私有方式加密,以至於蘋果開始對開發者提出要求。
私有加密雖然一定程度上是安全的,但是終究不是一個長久之計。全世界這麼多安全專家在維護HTTPS
安全,早日使用HTTPS
確保信息安全才是王道!也省去了私有加密協議的安全隱患.
爲了更加安全的訪問, 早日使用HTTPS吧!!!