如果NSAllowsArbitraryLoads设置为YES, App Store会拒绝提交吗?



iOS 9中涉及的新ATS导致许多http相关功能停止工作。我必须将所有http请求url添加到白名单中,或者我可以通过将NSAllowsArbitraryLoads设置为YES来禁用ATS。

有谁知道如果NSAllowsArbitraryLoads被设置为YES, App Store是否会拒绝提交?

谢谢大家的回答。

好消息是苹果Accepted我的应用程序与NSAllowsArbitraryLoads设置为YES

更新(谢谢@Vijayts):2016年12月底后,苹果将拒绝不符合ATS的应用程序。

来源

然而,如果你需要加载一个http://资源只在web (UIWebView/WKWebView/SafariViewController),那么以下应该足够了。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
</dict>

更新:苹果将在2016年12月底后拒绝不符合ATS的应用程序。

来源

然而,如果你只需要在web (UIWebView/WKWebView/SafariViewController)中加载http://资源,那么以下应该足够了。

注意:此键仅在iOS 10中可用

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
</dict>

苹果似乎改变了计划:

支持应用程序传输安全

为了给你额外的准备时间,这个截止日期已经延长,我们将提供另一个更新时,一个新的截止日期证实。https://developer.apple.com/news/?id=12212016b

我们从苹果那里听到的关于NSAllowsArbitraryLoads的最新消息是在2016年12月。https://developer.apple.com/news/?id=12212016b

苹果仍然接受新的应用程序和更新。我的新应用程序在2017年4月获得批准,NSAllowsArbitraryLoads设置为YES。我最近也提交了更新,没有问题,没有被拒绝。

所有使用NSURLConnection、curl或NSURLSession api的连接在iOS 9.0及以上版本和OS X 10.11及以上版本的应用程序中使用应用程序传输安全默认行为。不符合要求的连接将失败。

但是,您可以在Info中指定默认行为的例外。Plist文件在您的应用程序或扩展。使用属性列表中的键来处理特定的异常,或者关闭应用传输安全。表1-1显示了键及其类型,并使用缩进来表示结构。

来源链接:https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html

我有一个应用程序,允许用户指定一个URL在执行期间显示在web视图。此URL可能是HTTP URL。因此,我将NSAllowsArbitraryLoads设置为yes。

我在2016年12月之后提交了这个app的更新,没有问题。

我的plist还指定了NSAllowsArbitraryLoadsInWebContent,我指定了为我的应用程序使用的已知web服务激活TLS的例外,其中支持TLS。

我只是附上了一个评论说明,解释NSAllowsArbitraryLoadsInWebContent是不够的,因为我的应用支持iOS 9。

我从来没有收到过来自app review的问题

最新更新