ios-simulator - iOS 模拟器拒绝连接到本地。主机名

标签 ios-simulator local bonjour

我正在开发一个连接到网络服务的 iOS 应用程序。对于开发和测试,我们使用 Bonjour 来查找本地网络上的服务器,并且在登录过程中应用程序会提供连接到其中一个服务器而不是生产站点。

自升级到 El Capitan 后,我无法从模拟器连接到在同一台 Mac 上运行的 Web 服务器。我能够使用 Simulated Mobile Safari 和 OS X 中的 Python 附带的 Web 服务器重现此问题。

  1. 打开终端,启动网络服务器:python -m SimpleHTTPServer 8000
  2. 在模拟器中打开 Safari,输入 URL:http://my-computer-name.local.:8000/

模拟的 Mobile Safari 显示“Safari 无法打开页面,因为它无法连接到服务器。”

此外,每次我尝试加载 URL 时,控制台中都会出现以下消息:

assertiond[____]: assertion failed: 15A284 13A340: assertiond + 13207 [28CC4371-F3F9-3578-9436-310B23A2C638]: 0x1  

其他可能相关的事实:

  • Desktop Safari 能够使用 URL http://my-computer-name.local.:8000/
  • 进行连接
  • Real Mobile Safari(在同一网络上的 iOS 设备上)能够使用 URL http://my-computer-name.local.:8000/
  • 进行连接
  • 模拟的 Mobile Safari 能够使用 URL http://127.0.0.1:8000/ 进行连接(不过我需要它来使用 Bonjour 提供的主机名)。
  • 模拟的 Mobile Safari 能够连接到另一台机器,其 URL 类似于 http://other-computer.local.:8000/
  • 我使用的是模拟器版本 9.0 (SimulatorApp-620 CoreSimulator-179)
  • OS X El Capitan 10.11 (15A284)
  • 有趣的是,在网络上搜索 UUID 28CC4371-F3F9-3578-9436-310B23A2C638 只搜索到少量职位。 (您可以通过修复此错误赚取 15 美元!)
  • 这似乎与 App Transport Security 无关。当禁用 ATS 时,我的应用会以这种方式运行。

你能重现这个问题吗?我错过了什么吗?

最佳答案

我通过在本地 OSX/etc/hosts 文件中添加一个条目解决了这个问题:

在“localhost”之后附加您的 FQDN:

127.0.0.1 localhost mymachine.mydomain.local

关于ios-simulator - iOS 模拟器拒绝连接到本地。主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32978301/

相关文章:

ios - Bonjour 中的缓慢名称解析

ios - 使用GKSession进行点对点时如何获得精确的时钟同步?

dns - 将 ".local"子域重定向到单播 DNS

iphone - 在真实设备与模拟器上测试 iOS 测试

XCode:编译XIB时Interface Builder崩溃

facebook-graph-api - Facebook本币支付直接退款,无需开发商处理纠纷

javascript - 将局部变量从函数传递出去成为全局变量

iphone - Xcode 4.2。运行时卡住 "Attaching to myapp"

ios - iOS模拟器:从终端终止所有应用

sockets - 有一个多ip接口(interface)。如何选择其中一个来建立传出连接?