Xcode 11 beta 3, iOS 13 in plist 我有:
<key>NSAllowsArbitraryLoads</key>
<true/>
所有 http 请求在 iOS 13 之前都有效。在iOS 13中,我在控制台中看到:
无法启动任务<...>.<1>的加载,因为它不符合ATS 策略任务 <...>.<1> 已完成,但出现错误 [-1022] 错误 域=NSURLError域代码=-1022"无法加载资源 因为应用传输安全策略要求使用安全 连接。UserInfo={NSLocalizedDescription=资源无法 加载,因为应用传输安全策略需要使用 的安全连接。
iOS 13 中的 ATS 政策是否已更改?我找不到任何关于它的信息
根据当前的文档,仍然可以使用此键,但是可能会要求您在App Store审查期间提供一些解释。
由于这是一个测试版,因此这可能也是工具中的问题,而不是明确的更改。
请注意:
在 iOS 10 及更高版本以及 macOS 10.12 及更高版本中,如果应用的信息属性列表文件中存在以下任何键,则会忽略 NSAllowsArbitraryLoads 键的值,而改用默认值 NO : NSAllowsArbitraryLoadsForMedia NSAllowsArbitraryLoadsInWebContent NSAllowsLocalNetworking
同时,您是否会考虑使用 NSDomainExceptions 作为解决方法?无论如何,最好为特定域添加例外,而不仅仅是允许跨应用加载不安全的负载。例外域文档供您参考