NSExceptionAllowsInsecureHTTPLoads不适用于IP地址

时间:2015-09-21 12:17:27

标签: ios https

排除iOS 9上的ATS对我不起作用。

我有一个没有域名(仅限IP地址)且没有SSL证书的测试服务器(因此它是HTTP而不是HTTPS)

尝试:

<key>52.24.145.252</key>
<dict>
    <key>NSExceptionAllowsInsecureHTTPLoads</key>
    <true/>
    <key>NSIncludesSubdomains</key>
    <true/>
</dict>

但我仍然收到错误:

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

我做错了什么?

3 个答案:

答案 0 :(得分:7)

您需要将NSAppTransportSecurity字典添加到info.plist。然后加 该字典的NSAllowsArbitraryLoads键,并将布尔值设置为YES

ATS Opt-out

<强>更新

从2017年1月起,如果您使用上述方法从ATS选择退出,则需要在向AppStore提交应用时向Apple提供理由。

App Transport Security REQUIRED January 2017

答案 1 :(得分:5)

试试这个:

enter image description here

或者,作为源代码:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>domain.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>

在iOS 9.1中,它可以正常工作(鉴于您的域名是正确的)。

答案 2 :(得分:2)

实际上,真正的问题是在iOS 9中,ATS异常不适用于IP地址。它只适用于域名。完全关闭ATS是一个坏主意,如果您希望在2016年12月31日之后提交到​​应用程序商店,将​​会使您证明该决定是合理的。

不幸的是,没有一个很好的解决方案,试图获得您尝试连接的服务器的域名。

其他人已经成功使用xip.io服务来转换&#34;转换&#34;域名的本地IP地址。因此,您需要将xip.io添加到Exception域,将main/contacts的子值设置为true。然后,当您连接到您的域时,您将连接到NSIncludesSubdomains

,而不是连接到52.24.145.252