iOS 9涉及的新ATS导致许多与http相关的功能停止运行。我必须将所有http请求网址添加到白名单中,或者我可以通过将NSAllowsArbitraryLoads
设置为YES
来禁用ATS。
如果NSAllowsArbitraryLoads
设置为YES
,是否有人知道App Store是否拒绝提交?
答案 0 :(得分:18)
感谢大家的回答。
好消息是Apple Accepted
我的应用NSAllowsArbitraryLoads
设置为YES
。
UPDATE(谢谢@Vijayts): Apple将在2016年12月底之后拒绝不符合ATS的应用程序。
但是,如果只需要在web(UIWebView / WKWebView / SafariViewController)中加载http://资源,则以下内容就足够了。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
答案 1 :(得分:14)
更新:Apple将在2016年12月底之后拒绝不符合ATS的应用程序。
但是,如果只需要在web(UIWebView / WKWebView / SafariViewController)中加载http://
资源,则以下内容就足够了。
注意:此密钥仅适用于iOS 10。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
答案 2 :(得分:7)
Apple似乎已经改变了计划:
支持应用传输安全性
为了给你额外的准备时间,这个截止日期已经过去了 延长,我们将在新的截止日期后提供另一次更新 证实。 https://developer.apple.com/news/?id=12212016b
答案 3 :(得分:4)
最近我们从Apple获悉NSAllowsArbitraryLoads
是在2016年12月。
https://developer.apple.com/news/?id=12212016b
Apple仍在接受新的应用和更新。我的新应用已于2017年4月获得批准,NSAllowsArbitraryLoads
设置为YES
。我最近也提交了更新,没有问题没有拒绝。
答案 4 :(得分:2)
使用NSURLConnection,CFURL或NSURLSession API的所有连接都在为iOS 9.0或更高版本以及OS X 10.11或更高版本构建的应用程序中使用App Transport Security默认行为。不符合要求的连接将失败。
但是,您可以在应用或扩展程序的Info.plist文件中指定默认行为的例外。使用属性列表中的键进行特定例外或关闭App Transport Security。表1-1显示了键及其类型,并使用缩进来表示结构。
答案 5 :(得分:0)
我有一个应用程序,允许用户指定在执行期间在Web视图中显示的URL。此网址可能是HTTP
网址。出于这个原因,我将NSAllowsArbitraryLoads
设置为是。
我已在2016年12月之后提交了此应用的更新,并且没有任何问题。
我的plist还指定了NSAllowsArbitraryLoadsInWebContent
,并指定了激活TLS的例外,以便我的应用在支持TLS的情况下使用已知的Web服务。
我只是添加了一条评论说明,解释说NSAllowsArbitraryLoadsInWebContent
是不够的,因为iOS 9支持我的应用。
我从来没有在应用评论中提出过这个问题。