2017年開始強制https的問題

iOS9 中默認非HTTPS的協議是被禁止的,我們為了能正常發起http請求,在info.plist文件中添加AppTransportSecuritySettings字典,將NSAllowsArbitraryLoads設置為YES來禁止ATS。

iOS10 從2017年1月1日起蘋果提出所有新提交的App默認不允許使用NSAllowsArbitraryLoads來繞過ATS的限制,也就是說強制我們用HTTPS,否則我們提交App可能會被拒絕。

解決方案

通過NSExceptionDomains設置白名單的方式來針對特定的域名開放HTTP內容來通過審核。可以簡單理解成,把不支持https協議的接口添加到白名單。

操作步驟

  1. 在項目info.plist中添加一個Key:App Transport Security Settings,類型為Dictionary
  2. 在第一步添加的字典內添加一個Key: Exception Domains,類型為Dictionary
  3. 在Exception Domains內添加要支持的域,其中域作為Key,類型為Dictionary
  4. 每個域下面需要設置3個屬性:類型為Boolean
NSIncludesSubdomains  YES
NSExceptionRequiresForwardSecrecy  NO
NSExceptionAllowsInsecureHTTPLoads  YES

應用場景

  1. 第三方不支持https請求的接口
  2. 不支持https協議的圖片地址
  3. 不支持https協議的h5網址

玩的開心......

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 因為要結局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細...
    uniapp閱讀 4,500評論 0 12
  • 1.在iOS 9的時候,默認非HTTS的網絡是被禁止的,我們可以在info.plist文件中添加NSAppTran...
    CrystalZhu閱讀 15,810評論 5 10
  • 蘋果文檔翻譯 iOS10 NSAppTransportSecurity 原文鏈接 原文版本:2016-09-07 ...
    fever105閱讀 12,502評論 8 12
  • 筆者自語:令人頭疼的https配置終于告一段落,回顧之前的遇到各種沒有概念的問題,是一個即心酸有蛋疼的過程。終于有...
    商鞅福澤諭吉閱讀 6,327評論 1 5
  • 一直想找一個地方可以寫寫東西,就像自己的日記一樣,不求深刻,只想是可以記錄下自己的很多想法和感受。今天在微博上看到...
    海兒1990閱讀 172評論 0 2