iPhone Simulator - 模拟慢速连接?

Posted

技术标签:

【中文标题】iPhone Simulator - 模拟慢速连接?【英文标题】:iPhone Simulator - Simulate a slow connection? 【发布时间】:2011-02-05 08:14:20 【问题描述】:

有没有办法减慢与 iPhone 模拟器的互联网连接速度,以模拟当您在蜂窝网络上处于慢速位置时应用程序可能会做出的反应?

【问题讨论】:

艾伦的回答应该被接受。 @StanislavMayorov 这个问题来自 9 年前。艾伦随后在 4 年后给出了更新的答案。现在是5年后。抱歉,我不会重新考虑旧问题的已接受答案。 【参考方案1】:

如何安装 Apple 的网络链接调节器

这些说明截至 2019 年 10 月。

警告:如果您刚刚升级到新版本的 macOS,确保您安装了最新的 Network Conditioner (in Additional Tools for Xcode) 或者它可能是 silently fail;也就是说,您将打开它,但它不会限制任何东西或丢弃任何数据包。

更新:从 Xcode 11 开始,可能会有一种更简单的方法来模拟连接设备上的网络状况;请参阅this blog post。有关如何影响模拟设备,请像以前一样继续下面的内容。

    如果没有 Xcode,请安装它。

    打开 Xcode 并转到 Xcode › 打开开发者工具 › 更多开发者工具...

    下载 Xcode 的其他工具(匹配您当前的 Xcode 版本)

    打开下载的磁盘镜像,双击“Hardware”下的Network Link Conditioner .prefpane进行安装。

    我们去!

    一定要打开它。您需要选择一个配置文件启用网络调节器。

警告

这不会影响 localhost,因此请务必使用暂存服务器或同事的计算机来模拟与您自己运行的 API 的慢速网络连接。您可能会发现 https://ngrok.com/ 在这方面很有帮助。

【讨论】:

对于 Xcode 8,这包含在“Xcode 8 的附加工具”中(而不是“Xcode 的硬件 IO 工具”) @MohitSingh 谢谢。我已经更新了上面的答案。 太棒了!谢谢。 Xcode 10.3 似乎没有其他工具? @leo,只需将当前的附加工具用于您拥有的 Xcode 的主要版本。例如,如果您安装了 Xcode 11.1,请使用 Additional Tools for Xcode 11【参考方案2】:

还值得一提的是,Xcode 还为设备而不是模拟器提供了内置方式。

只需转到“设备和模拟器”(cmmd+shift+2) 选择您的设备 向下滚动直到找到“设备条件” 设置您想要的个人资料 点击开始

要使其正常工作,您需要在 Mac 上安装“Network Link Conditioner”。见步骤提及in Alan's answer

【讨论】:

【参考方案3】:

一个名为 SpeedLimit 的应用

https://github.com/mschrag/speedlimit

效果很好。

克里斯。

【讨论】:

awesome 刚刚尝试过,它成功了。谢谢! 优胜美地:设置限速失败 坏了,上面写着Failed to set speed limit Alan H. answer 解释了正确的做法。 “我无法再维护这个项目。请随时 fork 并取得所有权。”【参考方案4】:

“有一个应用程序!” ;) Apple 提供了“网络链接调节器”首选项窗格,可以很好地完成这项工作。

对于 4.3 之前的 Xcode 版本,可以在 Developer 文件夹中找到窗格安装程序,例如"/Developer/Applications/Utilities/Network Link Conditioner",安装后如果守护进程启动失败,不想重启机器,直接用sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist 如果您已经使用 Developer 文件夹,您可以将窗格安装为“Xcode 硬件 IO 工具”包的一部分,可通过 Mac 开发中心的其他下载部分获得。

下载页面链接(您必须使用您的 Apple ID 登录):https://developer.apple.com/downloads/index.action (感谢@nverinaud)

【讨论】:

这里是浏览可用下载的链接:developer.apple.com/downloads/index.action 不适用于 Mountain Lion ... ***.com/questions/12414676/… 如果它是特定于应用程序的,而不是整个计算机会很好 您现在可以从 Apple 的开发者工具网站下载“硬件 IO 工具”。他们为 Xcode 的新版本(以及 OSX)更新它:在 Xcode 中,单击 Xcode -> Open Developer Tool -> More Developer Tools...,登录,找到最新的存档,下载,将文件复制到某处,双击网络护发素偏好面板的东西,安装它......耶! 我猜这不适用于优胜美地。我将它设置为“有损”,但实际上没有任何区别【参考方案5】:

我认为慢速连接不足以模拟真实的移动数据网络行为 - 因为还会有更多的数据包丢失、更高的延迟和更多的连接断开。

这是一个方便的脚本,用于配置防火墙以模拟这些参数:

http://pmilosev-notes.blogspot.com/2011/02/ios-simulator-testing-over-different.html

【讨论】:

Network Link Conditioner(Apple 提供的工具,作为首选项面板安装)模拟慢速连接、数据包丢失和延迟。 网络链接调节器,添加到 OS X Lion(2011 年 7 月发布)中,不需要这样的脚本。【参考方案6】:

没有直接的方法来模拟慢速连接,这与黑莓开发人员喜欢的漂亮网络连接模拟器不同。但是,由于模拟器的连接是通过您的计算机进行的 - 您可以只专注于降低计算机的连接速度。

您需要实现两件事(取决于您的情况):

限制您的带宽 增加延迟

也许这会为你指明正确的方向:

http://www.macosxhints.com/article.php?story=20080119112509736

也有一些不错的开源解决方案,但我不记得它们的名字了。

这个问题可能会有所帮助:How to throttle network traffic for environment simulation?

【讨论】:

以上是关于iPhone Simulator - 模拟慢速连接?的主要内容,如果未能解决你的问题,请参考以下文章

将自签名证书添加到iphone Simulator?

从 ios 模拟器创建 iTunes Connect 图像,例如“iOS-Simulator Cropper”,但也适用于 iPhone 6

向 iphone Simulator 添加自签名证书?

iOS:处理 TARGET_IPHONE_SIMULATOR 宏

模拟本地主机上的慢速连接

我如何模拟慢速网络连接[重复]