这个问题在这里已有答案:
因此,昨晚发布的iOS新测试版SDK具有“App Transport Security”,鼓励开发人员使用https而不是http . 原则上,这是一个好主意,我已经在我们的临时/ 生产环境 环境中使用https . 但是,当iOS应用程序连接到我在笔记本电脑上运行的Web服务时,我在本地开发环境中没有设置https .
从今天早上的一些游戏中可以看出,URL加载系统即使您将其设为http URL,也会决定使用https . 有谁知道如何禁用此行为 - 即使只是针对特定的URL?
8 回答
我已解决为plist文件 .
添加NSAppTransportSecurity:Dictionary .
将名为" NSAllowsArbitraryLoads "的子项添加为布尔值:是
有关详细信息,请参阅Apple的Info.plist reference(感谢@ gnasher729) .
您可以在Info.plist中为特定域添加例外:
每个例外域的所有密钥都是可选的 . 发言者没有详细说明任何一个键,但我认为它们都是相当明显的 .
(来源:WWDC 2015 session 703, “Privacy and Your App”,30:18)
如果您的应用有充分的理由,您还可以使用单个密钥忽略所有应用传输安全限制:
如果您的应用没有充分的理由,您可能会有拒绝的风险:
已接受的答案提供了所需信息,以及有关使用和disabling App Transport Security one can find more on this的更多信息 .
对于Per-Domain Exceptions,将这些添加到 Info.plist :
But What If I Don’t Know All the Insecure Domains I Need to Use? 在 Info.plist 中使用以下键
For more detail you can get from this link.
关注this .
我通过在info.plist中添加一些键来解决它 . 我遵循的步骤是:
打开我的Projects
info.plist
文件添加了一个名为
NSAppTransportSecurity
的密钥作为Dictionary
.添加了一个名为
NSAllowsArbitraryLoads
的子键为Boolean
,并将其值设置为YES
,如下图所示 .清理项目,现在一切正常,就像以前一样 .
参考Link .
如果您只想为本地开发服务器禁用应用传输策略,则以下解决方案可以正常运行 . 当您无法或无法设置HTTPS时(例如,在使用Google App Engine开发服务器时),此功能非常有用 .
正如其他人所说的,对于 生产环境 应用程序,绝对不能关闭ATP .
1)使用不同的plist进行调试
复制您的Plist文件和NSAllowsArbitraryLoads . 使用此Plist进行调试 .
2)排除本地服务器
或者,您可以使用单个plist文件并排除特定服务器 . 但是,it doesn't look like you can exclude IP 4 addresses因此您可能需要使用服务器名称(可在系统首选项 - >共享中找到,或在本地DNS中配置) .
上面的配置对我不起作用 . 我尝试了很多键组合,这个工作正常:
编译@adurdin和@User给出的答案
将以下内容添加到您的info.plist并使用相应的域名更改
localhost.com
,您也可以添加多个域:你info.plist必须如下所示:
这对我有用:
我只是想添加它来帮助别人并节省一些时间:
如果您正在使用:
CFStreamCreatePairWithSocketToHost
. 确保你的host
与_689857中的内容相同,或者如果你有单独的socket域,只需将其添加到那里 .希望这有用 . 干杯 . :)