不同的行为NSAllowsArbitraryLoadsInWebContent IOS 10.1和10.2

时间:2016-12-27 13:39:13

标签: ios iphone app-transport-security

在IOS 10.1 中加载UIWebView中的某个网址时,它会失败

  

错误域= NSURLErrorDomain代码= -1200“发生SSL错误,无法与服务器建立安全连接”

然而,相同的webview在iOS 10.2中加载

如果我使用NSAllowsArbitraryLoads = YES,我可以在10.1和10.2中加载网址,但只能在10.2中加载NSAllowsArbitraryLoadsInWebContent = YES

我使用nscurl --ats-diagnostics测试了网址,并通过了所有测试

我认为这个问题可能与网页中的ip位置验证有关。

在处理应用传输安全设置时,10.1和10.2之间是否存在差异?这些记录了吗?

----编辑-----

我设法通过查看didFailLoadWithError中的错误来解决我的问题。这告诉我究竟是什么导致失败的网址。我使用 NSExceptionRequiresForwardSecrecy = NO(使用ats诊断确定)将此网址添加到我的异常域

这解决了我的问题,但我仍然想了解两个版本10.1& 10.2。

1 个答案:

答案 0 :(得分:3)

是的,即使使用NSAllowsArbitraryLoadsInWebContent密钥,早期版本的iOS 10仍然会在Web视图中强制实施应用传输安全性的前向保密要求。这是一个错误,由Apple修复。问题是早期版本的iOS附带了这个bug,所以你必须能够处理它,如果你不知道你可以导航到的Web的所有可能的URL,这是不可能的。这可能是Apple延长启用应用传输安全性和提交到App Store的所有应用的截止日期的部分原因。