【发布时间】:2017-03-09 22:06:21
【问题描述】:
Apple 已宣布NSAllowArbitraryLoads 很快将无法使用。因此,在 iOS 10 中,我的 info.plist 中有这个:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>myAPIdomain</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
这适用于我的 API 请求和 UIWebView 中的内容。但是,在 iOS9 中,不支持 NSAllowsArbitraryLoadsInWebContent,建议包含 NSAllowsArbitraryLoads 以支持 iOS 9。但我认为这会覆盖我的NSExceptionDomains 设置?如何让我的 API 和 UIWebView 的 HTTP 请求同时在 iOS 9 和 iOS 10 上工作并且仍然遵循 Apple 的规则?
编辑
为了支持 iOS 9 和 iOS 10:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>myAPIdomain</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
【问题讨论】:
-
如果您支持比 iOS 10 更早的版本,那么您需要使用
NSAllowsArbitraryLoads,是的,这将适用于 iOS 9 和 10。您只需在评论说明中包含为什么需要 @ 987654328@ 如果您有特定域知道 https 可以工作,您可以为这些域添加例外以启用 https -
@Paulw11感谢您的快速回复。这意味着我只需要将
NSAllowsArbitraryLoadsInWebContent和NSAllowsArbitraryLoads添加到我的info.plist 中? -
是的,没错
-
@Paulw11我已经编辑了帖子。我认为在 iOS10 上,密钥
NSAllowsArbitraryLoadsInWebContent和NSExceptionDomains将起作用。在 iOS 9 上,NSAllowsArbitraryLoads可以工作。我说的对吗? -
我相信
NSAllowsArbitraryLoads即使在 iOS 10 上也会覆盖NSAllowsArbitraryLoadsInWebContent,因此 ATS 在 iOS 9 和 iOS 10 设备上实际上会“关闭”
标签: ios