XCode 6 Simulator忽略主机文件更改

时间:2014-09-22 11:52:55

标签: 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主机文件的更改,或者它可能使用它自己的私有主机文件。

如果我输入一些"硬编码解析" (在代码中将xxx.yyy.zzz翻译成它的IP地址)可以到达服务器。

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

2 个答案:

答案 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模拟器之前