XCode 6模拟器忽略主机文件更改
我有一个客户端服务器应用程序,为了testing它与模拟器我有一台虚拟机上的服务器,我更改MAC的主机文件(/ etc / hosts),所以我可以到达那里。
在XCode 5中可以正常工作,但在XCode 6上无法访问服务器。 当试图打开一个NSURLConnection它时,我得到 –
错误域= kCFErrorDomainCFNetwork代码= 310“与安全Web代理服务器(HTTPS)通信时出现问题。 UserInfo = 0x78b3fc50 {_kCFStreamErrorCodeKey = -2096,
NSErrorFailingURLStringKey = https://xxx.yyy.zzz/mobile/login,NSErrorFailingURLKey = https://xxx.yyy.zzz/mobile/login,NSLocalizedDescription =与安全networking代理服务器(HTTPS)通信时出现问题。 _kCFStreamErrorDomainKey = 4,NSLocalizedRecoverySuggestion =请检查您的代理设置。 有关此问题的帮助,请联系您的系统pipe理员。
当然,通过键入https://xxx.yyy.zzz ,可以从Safari访问服务器,如果打开XCode 5,它仍然可以ping通,并且仍然可以工作。
我觉得模拟器会忽略mac主机文件的变化,或者使用它自己的私有主机文件。
如果我input一些“硬编码parsing”(在代码中翻译xxx.yyy.zzz到它的IP地址),可以到达服务器。
任何人有任何想法如何解决这个问题?
解:
确保在不同的行上添加每个主机别名:
# Wrong! 127.0.0.1 example.com www.example.com # Good 127.0.0.1 example.com 127.0.0.1 www.example.com
我的故事:
我有与Xcode 6相同的问题。
与/etc/hosts
相关的OSX中存在错误或行为更改。
如果我在OSX的/etc/hosts
文件的同一行添加更多的主机别名,iOS模拟器给我提供了同样的错误。 但是,如果我在自己的行上添加每个主机别名,iOS模拟器就像我期望的那样工作。
您是否尝试使用该命令刷新DNScaching?
sudo dscacheutil -flushcache
在退出和重新启动iOS模拟器之前?