關於 iOS 10 中 ATS 的問題

2021-07-27 06:01:37 字數 1860 閱讀 1666

現在 (2016-11-28),這方面的相關規定和幾個事實如下:

相比於使用nsallowsarbitraryloads將全部 http 內容開放,選擇使用n***ceptiondomains來針對特定的網域名稱,通過設定該網域名稱下的n***ceptionallowsinsecurehttploads來開放 http 應該要相對容易過審核。「需要訪問的網域名稱是第三方伺服器,他們沒有進行 https 對應」會是審核時的乙個可選理由,但是這應該只需要針對特定網域名稱,而非全面開放。如果訪問的是自己的伺服器的話,可能這個理由會無法通過。

總結一下就是以下兩點:

對於 api 請求,基本上是必須使用 https 的,特別是如果你們自己可以管理伺服器的話。可能需要後端的同學盡快公升級到 https (不過話說雖然是用 let's encrypt 的,我乙個個人部落格都啟用 https 了,作為 api 的使用者伺服器,還不開 https 真有點說不過去)。如果使用的是第三方的 api,而他們沒有提供 https 支援的話,需要在n***ceptiondomains中進行新增。

如果你需要使用內網,可以設定nsallowslocalnetworking,而不必擔心 ssl 連線的問題。

ats 設定

使用的元件

備註nsallowsarbitraryloads: no

webview❌❌

預設行為

urlsession❌❌

nsallowsarbitraryloads: yes

webview✅✅

徹底禁用 ats

urlsession✅✅

審核時需要說明理由

nsallowsarbitraryloads: no & nsallowsarbitraryloadsinwebcontent: yes

webview❌✅

只對網頁內容禁用 ats

urlsession❌❌

保證 api 的安全性

nsallowsarbitraryloads: no & nsallowsarbitraryloadsinwebcontent: no

webview❌❌

urlsession❌❌

nsallowsarbitraryloads: yes & nsallowsarbitraryloadsinwebcontent: no

webview✅❌

對於 ios 10,nsallowsarbitraryloadsinwebcontent 存在時忽略 nsallowsarbitraryloads 的設定

urlsession✅❌

ios 9 將繼續使用 nsallowsarbitraryloads

nsallowsarbitraryloads: yes & nsallowsarbitraryloadsinwebcontent: yes

webview✅✅

對於 ios 10,nsallowsarbitraryloadsinwebcontent 存在時忽略 nsallowsarbitraryloads 的設定

urlsession✅❌

ios 9 將繼續使用 nsallowsarbitraryloads

nsallowsarbitraryloads : boolean

nsallowsarbitraryloadsformedia : boolean

nsallowsarbitraryloadsinwebcontent : boolean

nsallowslocalnetworking : boolean

n***ceptiondomains : dictionary }}

關於 iOS 10 中 ATS 的問題

相比於使用nsallowsarbitraryloads將全部 http 內容開放,選擇使用n ceptiondomains來針對特定的網域名稱開放 http 應該要相對容易過審核。需要訪問的網域名稱是第三方伺服器,他們沒有進行 https 對應 會是審核時的乙個可選理由,但是這應該只需要針對特定網域...

關於 iOS 10 中 ATS 的問題

相比於使用nsallowsarbitraryloads將全部 http 內容開放,選擇使用n ceptiondomains來針對特定的網域名稱開放 http 應該要相對容易過審核。需要訪問的網域名稱是第三方伺服器,他們沒有進行 https 對應 會是審核時的乙個可選理由,但是這應該只需要針對特定網域...

關於 iOS 10 中 ATS 的問題

相比於使用nsallowsarbitraryloads將全部 http 內容開放,選擇使用n ceptiondomains來針對特定的網域名稱開放 http 應該要相對容易過審核。需要訪問的網域名稱是第三方伺服器,他們沒有進行 https 對應 會是審核時的乙個可選理由,但是這應該只需要針對特定網域...