NSAllowsArbitraryLoads无法正常工作
我有一个工作的应用程序,从http域下载一些信息。 但是在Swift 2.0和Xcode 7更新之后,我的应用程序无法连接到服务器并下载json数据,因为它是不安全的,所以我得到了“应用程序传输安全性阻止了明文HTTP(http://)资源加载。临时的exception可以通过你的应用程序的Info.plist文件来configuration。 错误。
我试图把这些行放在我的info.plist中:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
但是我得到了同样的错误,它不工作。 我总是从下载方法得到零数据。 任何人都有这个相同的错误? 谢谢!
编辑:这是从我的info.plist文件中的图片:
我觉得很愚蠢 我在错误的Info.plist上添加了禁用ATS的按键。 我没有将它添加到支持文件/ Info.plist文件中,而是将它添加到MyAppTests / Supporting Files / Info.plist文件中。 Xcode中并不是一个错误,而是我脑中的一个bug。 谢谢大家的答案!
你可以尝试使用
nscurl --ats-diagnostics <your-URL>
在terminal。 这可以帮助您find允许您的应用连接到您的url的设置。 这只适用于OSX El Capitan。 看看苹果技术 。
但是,如果您已经在您的info.plist文件中尝试了NSArbitraryLoads,则此诊断工具可能无法帮助您。 我想你可能find了一个错误。
我有同样的问题,我试着添加NSExceptionMinimumTLSVersion
,它的工作原理。
<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionMinimumTLSVersion</key> <string>TLSv1.0</string> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
我不知道为什么这有帮助,但是…它! 我希望这对那里的人也有帮助
以前的解决scheme都没有为我工作,我有NSAllowsArbitraryLoads设置为true,但仍然HTP不会工作,环顾四周后我注意到info.plist文件有NSExceptionDomains部分,所以我删除它进行testing,一切正常。
所以看来有NSExceptionDomains取消NSAllowsArbitraryLoads,希望这是有帮助的。
在我的情况下,我需要删除所有其他键,如“允许任意加载在Web内容”或“例外域”,以便“允许任意加载”工作,因为它设置为“信息中的应用程序传输安全设置”的.plist。
使用XCode 8.2.1,iOS 10.2进行testing。
你有没有尝试添加你的域名? 您应该将其添加到NSAppTransportSecurity
字典中。
<key>NSExceptionDomains</key> <dict> <key>abcde.com</key> <dict> <key>NSExceptionRequiresForwardSecrecy</key> <true/> <key>NSIncludesSubdomains</key> <true/> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> </dict>
我有一个类似的问题,过了一段时间,我发现info.plist文件已损坏。 我只能build议直接检查xml,而不是xcode中的plist编辑器。
如果你只需要在web(UIWebView / WKWebView / SafariViewController)中加载一个http://
资源,那么以下就足够了。
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoadsInWebContent</key> <true/> </dict>
我在Xcode 8.3.2(8E2002)和iOS 10.3中遇到同样的问题。 删除“允许任意加载Web内容”或“例外域”之类的所有键后,“允许任意加载”键按预期工作。 谢谢@dariukas。
- HTTP实时streamencryption
- POSIX错误12(“不能分配内存”),而从iPhone上传文件
- 使stringWithContentsOfURLasynchronous – 是否安全?
- iOSmultithreading – NSURLSession和UI更新
- 如何让NSURLSession从服务器返回Content-Length(http头)。 Objective-c,ios
- 如何有效地设置HTTP身体请求?
- 如何在UIWebView请求中添加自定义HTTP头,我的UIWebView基于Cordova项目?
- 我可以从NSHTTPURLResponse中的HTTP状态行访问“Reason Phrase”(原因短语)吗?
- 从Swift访问Azure表存储