NSExceptionAllowsInsecureHTTPLoads不适用于IP地址

Boa*_*oaz 2 https ios

在iOS 9上排除ATS不适合我.

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

尝试:

<key>52.24.145.252</key>
<dict>
    <key>NSExceptionAllowsInsecureHTTPLoads</key>
    <true/>
    <key>NSIncludesSubdomains</key>
    <true/>
</dict>
Run Code Online (Sandbox Code Playgroud)

但我仍然得到错误:

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.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Mid*_* MP 7

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

ATS选择退出

更新

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

应用运输安全需要2017年1月

  • 截至 2017 年 3 月 20 日,`NSAllowsArbitraryLoads` 不起作用 (3认同)

Arj*_*jan 5

尝试这个:

在此处输入图片说明

或者,作为源代码:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>domain.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>
Run Code Online (Sandbox Code Playgroud)

这样就可以在iOS 9.1中正常工作(只要您的域正确)。