iOS10 ATS問題方案

iOS 9中默認非 http 的網(wǎng)絡是被禁止的,我們當時的做法是把App Transport Security Settings下的NSAllowsArbitraryLoads設置為 YES來禁用 ATS。雖有效 ,但過于粗暴,直接禁用了 ATS,違背了蘋果爸爸的初衷,這估計也是蘋果爸爸當時說要在17年元旦起不允許我們通過這個方法跳過 ATS 的原因。
雖然后來發(fā)文推遲執(zhí)行這一決策,但是蘋果爸爸的態(tài)度,卻是比較明朗了。

雖然不能直接禁用 ATS,但是我們可以通過 NSExceptionDomains 來針對特定的域名開放 http 權限。
具體方案:

  1. 在項目中的info.plist中添加 Key:App Transport Security Settings,類型為字典類型。
  2. 然后給它添加一個 Exception Domains,類型為字典類型。
  3. 把需要支持的域添加到 Exception Domains 下,其中域作為 key,類型為字典類型。
  4. 每個域下設置三個屬性:NSIncludesSubdomains(設置域下對應的子域名是否可用)、NSExceptionRequiresForwardSecrecy、NSExceptionAllowsInsecureHTTPLoads(設置是否允許不安全的 http)。
1.png

提示:系統(tǒng)中用到的所有非 https 的網(wǎng)絡請求,都要進行設置。比如網(wǎng)絡圖片可能是放在三方托管服務器,只提供 http 訪問,那么這個域也是必須要設置才能獲取到圖片的。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,659評論 19 139
  • 很可能你的應用是與一個支持HTTPS傳輸數(shù)據(jù)的服務器交互,但是并沒有使用TLS 1.2或更高。在這種情況下,你定義...
    Www劉閱讀 3,272評論 0 5
  • 因為要結局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細...
    uniapp閱讀 4,875評論 0 12
  • 我們都缺失一場好好的告別,總想著還會馬上見面的啊,特別是在高速便捷交通時代。想見你一張車票,一張機票,隨時到。 昨...
    燕子塢閱讀 239評論 0 1
  • “噢,宮瑟呢?,我找他有事?!?在會場中的各位孩子們和他們的父母聽得一愣一愣的,什么月殿認識?還認識宮瑟!那都是兮...
    籬柵未年閱讀 238評論 0 0

友情鏈接更多精彩內(nèi)容