排除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.
我做错了什么?
答案 0 :(得分:7)
您需要将NSAppTransportSecurity
字典添加到info.plist
。然后加
该字典的NSAllowsArbitraryLoads
键,并将布尔值设置为YES
。
<强>更新强>
从2017年1月起,如果您使用上述方法从ATS选择退出,则需要在向AppStore提交应用时向Apple提供理由。
答案 1 :(得分: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>
在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