XCode 6 Simulator忽略主机文件更改

Yos*_*bab 9 ios ios-simulator xcode6

我有一个客户端 - 服务器应用程序,为了使用模拟器测试它我在虚拟机上有一个服务器,我更改了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的hosts文件的更改,或者它可能使用它自己的私有主机文件.

如果我输入一些"硬编码解析"(在代码中将xxx.yyy.zzz转换为它的IP地址),则可以访问服务器.

任何人都知道如何解决这个问题?

DUz*_*zun 16

解:

确保在不同的行上添加每个主机别名:

# Wrong!
  127.0.0.1 example.com www.example.com

# Good
  127.0.0.1 example.com
  127.0.0.1 www.example.com
Run Code Online (Sandbox Code Playgroud)

我的故事:

我对Xcode 6也有同样的问题.

OSX中存在与之相关的错误或行为更改/etc/hosts.

如果我在OSX /etc/hosts文件的同一行添加更多主机别名,iOS模拟器会给我同样的错误.但是如果我在它自己的行上添加每个主机别名,iOS模拟器就像我期望的那样工作.

  • 这**对我有用.哇......多么可怕的小问题.看起来像`hosts`文件解析器的错误实现. (2认同)

Cyr*_*lle 4

您是否尝试过使用以下命令刷新 DNS 缓存

sudo dscacheutil -flushcache
Run Code Online (Sandbox Code Playgroud)

在退出并重新启动 iOS 模拟器之前?