iOS 9涉及的新的ATS導致許多http相關功能停止工作。我必須將所有http請求url添加到白名單中,或者我可以通過將NSAllowsArbitraryLoads
設置爲YES
來禁用ATS。如果NSAllowsArbitraryLoads設置爲YES,App Store是否拒絕提交?
有誰知道如果NSAllowsArbitraryLoads
已設置爲YES
,App Store是否會拒絕提交?
iOS 9涉及的新的ATS導致許多http相關功能停止工作。我必須將所有http請求url添加到白名單中,或者我可以通過將NSAllowsArbitraryLoads
設置爲YES
來禁用ATS。如果NSAllowsArbitraryLoads設置爲YES,App Store是否拒絕提交?
有誰知道如果NSAllowsArbitraryLoads
已設置爲YES
,App Store是否會拒絕提交?
更新:蘋果將12月底後拒絕應用程序不符合ATS 2016
但是,如果你只需要在網頁加載http://
資源(UIWebView的/ WKWebView/SafariViewController),那麼以下就足夠了。
注:此鍵只能從iOS的10
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
這是一個很大的影響。這是否僅影響iOS網絡API。第三方庫如curl如何? – jayatubi
我認爲已經加密的批量數據存在例外情況,例如媒體流。不知道捲曲,但。 –
@Vijayts也請提一下,這個密鑰只支持iOS 10.0+ –
所有使用NSURLConnection,CFURL或NSURLSession API的連接都在爲iOS 9.0或更高版本以及OS X 10.11或更高版本構建的應用程序中使用App Transport Security默認行爲。不符合要求的連接將失敗。
但是,您可以在應用程序或擴展的Info.plist文件中指定默認行爲的例外情況。使用屬性列表中的鍵以指定特例或關閉App Transport Security。表1-1顯示了鍵和它們的類型,並使用縮進來指示結構。
感謝大家的回答。
好消息是蘋果Accepted
我的應用程序NSAllowsArbitraryLoads
設置爲YES
。只有//資源:
UPDATE(感謝@Vijayts): 蘋果將拒絕十二月結束後應用程序不符合ATS 2016
但是,如果你需要加載一個HTTP在網頁(UIWebView/WKWebView/SafariViewController)中,以下內容就足夠了。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
因此,在2016年12月之後將NSAllowsArbitraryLoads設置爲YES將不起作用?這不是ATS規範的一部分嗎? – Henning
@亨寧似乎是真的。 –
將接受的答案改爲@ Vijayts的答案不是更好嗎? –
它似乎蘋果已經改變了計劃:
支持應用程序傳輸安全
舉你有額外的時間準備,這個截止日期已經延長了 ,我們將提供一個其他更新當新的截止日期是 確認。 https://developer.apple.com/news/?id=12212016b
我們從蘋果公司的最新聽到有關NSAllowsArbitraryLoads
在2016年12月。 https://developer.apple.com/news/?id=12212016b
蘋果仍在接受新的應用程序和更新。我的新應用於2017年4月獲得批准,其中NSAllowsArbitraryLoads
設置爲YES
。我最近也提交了更新,沒有問題沒有拒絕。
感謝您的回答。希望我的應用能夠通過... – sajaz
我有一個應用程序,允許用戶指定一個URL在執行過程中顯示在Web視圖中。該網址可能是HTTP
網址。爲此,我將NSAllowsArbitraryLoads
設置爲yes。
我已於2016年12月後提交了此應用的更新,並且沒有任何問題。
我的plist還指定了NSAllowsArbitraryLoadsInWebContent
,我指定了激活應用程序使用TLS的已知Web服務的TLS的例外。
我只是包括那個解釋說,由於我的應用程序支持iOS 9
我從未甚至不得不從這個應用程序審查問題NSAllowsArbitraryLoadsInWebContent
是不夠的檢討筆記。
沒有明顯的拒絕理由,因爲NSAllowsArbitraryLoads是公共API的一部分,並被記錄在案。如果您可以列出您的應用程序正在使用的所有主機,則最好將它們添加到plist文件而不是使用通配符異常。還要注意的是,在這種情況下,任何能夠讀取純文本的人都可以輕鬆訪問主機列表:) – Vladimir
我的猜測是,將來它會在應用安裝時向用戶發出可怕的消息。 – funkybro
任何人都知道這是否也適用於macOS應用程序? –