我有一个客户端 - 服务器应用程序,为了使用模拟器测试它我在虚拟机上有一台服务器而且我更改了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 =与安全Web代理服务器通信时出现问题 (HTTPS)。,_ kCFStreamErrorDomainKey = 4,NSLocalizedRecoverySuggestion =请检查你的 代理设置。有关此问题的帮助,请与系统管理员联系。
当然可以通过键入https://xxx.yyy.zzz从Safari访问服务器,它可以解决ping问题,如果我打开XCode 5,它仍然有效。
我认为模拟器忽略了mac主机文件的更改,或者它可能使用它自己的私有主机文件。
如果我输入一些"硬编码解析" (在代码中将xxx.yyy.zzz翻译成它的IP地址)可以到达服务器。
任何人都知道如何解决这个问题?
答案 0 :(得分:14)
确保在不同的行上添加每个主机别名:
# 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相同的问题。
OSX中与/etc/hosts
相关的错误或行为更改。
如果我在OSX的/etc/hosts
文件中的同一行添加更多主机别名,iOS模拟器会给我同样的错误。
但是如果我在它自己的行上添加每个主机别名,iOS模拟器就像我期望的那样工作。
答案 1 :(得分:3)
您是否尝试使用命令
刷新DNS缓存sudo dscacheutil -flushcache
退出并重新启动iOS模拟器之前?