为啥 XCode (4.5.1, Lion) 需要互联网连接才能连接到 iOS 模拟器?

Posted

技术标签:

【中文标题】为啥 XCode (4.5.1, Lion) 需要互联网连接才能连接到 iOS 模拟器?【英文标题】:Why does XCode (4.5.1, Lion) require an internet connection to connect to iOS simulator?为什么 XCode (4.5.1, Lion) 需要互联网连接才能连接到 iOS 模拟器? 【发布时间】:2012-11-08 03:41:15 【问题描述】:

我正在开发一个不需要互联网连接的 ios 应用程序。我正在使用 phonegap 和 jquery-mobile。我想离线开发,但 XCode 卡在“附加到 iosproj”的状态(iosproj 是我的项目名称)。之后我无法停止卡住的任务,不得不强制退出 XCode。但是,通过互联网连接,一切正常。感谢任何线索。

编辑:XCode 似乎可以在没有网络的情况下正常安装应用程序,但它在接收到 deviceready 事件之前/期间卡住了。

更新 1:无论有没有 n/w,应用程序在模拟器上都能正常运行。纯粹是XCode-iOS模拟器交互。

更新 2:使用 phonegap (Apache cordova) 时,可以轻松地脱机工作。一旦项目已经构建和安装(带有 n/w),所有后续的 html/js/css/img 更新都可以直接在模拟器库中的 www 目录中进行(在你的 app 文件夹下,在 ~/Library/Application支持/iPhone 模拟器/6.0/应用程序)。

【问题讨论】:

【参考方案1】:

模拟器本身会在启动时尝试与 Apple 建立 Internet 连接。特别是,itunesstored 进程尝试连接到 ax.init.itunes.apple.com 和 phobos.apple.com。

[该信息来自 LittleSnitch。建议您安装 LittleSnitch,这样您就可以确定这里正在尝试什么连接。没有人——当然也没有开发人员——不应该没有它。]

如果您觉得这很麻烦(也就是说,如果连接失败导致您根本无法在模拟器中运行您的应用程序),您应该向 Apple 提交错误报告。但是,我对此没有任何困难,所以这可能是一个 Xcode 错误。我建议先更新到 Xcode 4.5.2,以防它在那里修复。

【讨论】:

谢谢。我早些时候怀疑过,所以我自己运行了 iphone 模拟器(没有 XCode)并且没有 wifi;该应用程序运行良好。这也是我觉得跟XCode-ios模拟器交互有关系的原因。此外,防火墙被禁用。 我再说一遍:不要猜。使用 LittleSnitch 查看传出连接。这样,您将知道问题是否是尝试的 Internet 连接,以及究竟是什么进程尝试连接。 我用过LittleSnitch,得到的结果和你一样:itunesstored contacts itunes。 ios 模拟器在有网络和没有网络的情况下都可以继续正常工作(以及我之前安装的应用程序版本),在安装/附加应用程序时,XCode 在没有网络的情况下无限期阻塞。

以上是关于为啥 XCode (4.5.1, Lion) 需要互联网连接才能连接到 iOS 模拟器?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能使用 RVM 在 Lion 上安装 Rails?

为啥在我安装 Mountain Lion 时 OpenGL 会降级?

Xcode:Instruments 4.0 需要 Mac OS X 10.7 Lion?

xcode4.2 for lion不知道如何设置

从 Lion 10.7.2 卸载 Xcode 3.2.6

如何在 Lion 下的 Xcode 4.1 Instruments 中启用 NSZombie?