IPhone 模拟器-模拟慢速连接?

有没有一种方法可以减慢与 iPhone 模拟器的互联网连接速度,从而模拟当你处于蜂窝网络的一个缓慢位置时应用程序可能的反应?

69913 次浏览

没有一种直接的方法来模拟缓慢的连接,不像黑莓开发者喜欢的漂亮的网络连接模拟器。然而,由于您的模拟器的连接通过您的计算机-您可以简单地专注于减慢您的计算机的连接。

你想要达到两个目标(取决于你的情况) :

  • 限制你的带宽
  • 增加潜伏期

也许这会给你指出正确的方向:

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

也有一些很好的开源解决方案,但是我记不住它们的名字。

这个问题可能有帮助: 如何为环境仿真节流网络流量?

一个叫超速限制的应用

Https://github.com/mschrag/speedlimit

效果很好。

Chris.

我认为,缓慢的连接不足以模拟实际工作的移动数据网络行为——因为还有更多的数据包丢失、更高的延迟和更多的连接丢失。

下面是我发现的一个用于配置防火墙以模拟这些参数的方便脚本:

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


#!/bin/sh
if [ "$#" -ne "3" ]
then
echo "Usage:\n$0 <bandwidth in kpbs> <delay in ms> <packet loss ratio>";
exit 1
fi


BW=$1
DELAY=$2
PLR=$3
sudo ipfw pipe 1 config bw ${BW}Kbit/s delay $DELAY plr $PLR
sudo ipfw add 1 pipe 1 all from me to not me
sudo ipfw add 2 pipe 1 all from not me to me
echo "RETURN to stop connection noise"
read
sudo ipfw delete 1
sudo ipfw delete 2
exit 0

您可以使用的一些建议值:

场景 BW (Kbit) 延迟(毫秒) Pr (比率)
2.5 G 手机 (GPRS) 50 200
3G 手机 1000 200 0.2
VSAT 五千 五百 0.2
VSAT 上的忙碌局域网 300 五百 0.4

苹果公司提供了“网络链接调节器”的首选面板,可以很好地完成这项工作。

  • 对于4.3之前的 Xcode 版本,窗格安装程序可以在您的 Developer文件夹中找到,例如 "/Developer/Applications/Utilities/Network Link Conditioner",安装后,如果守护进程无法启动,您不想重新启动您的计算机,只需使用 sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
  • 如果您已经使用了 Developer文件夹,那么您可以将该面板作为“硬件 IO 工具用于 Xcode”包的一部分安装,该包可以通过 Mac 开发中心的附加下载部分获得。

链接到下载页面(您必须用您的苹果 ID 登录) : https://developer.apple.com/downloads/index.action
(字幕@nverinaud)

如何安装苹果的网络链路调节器

这些指示截至2019年10月。

警告: 如果您刚刚升级到新版本的 macOS,确保您安装了最新的网络调节器(在 Xcode 的附加工具中)或它可能是 默默地失败; 也就是说,您将打开它,但它不会节流任何东西或丢弃任何数据包。

更新: 从 Xcode 11开始,可能有一种更简单的方法来模拟系留设备上的网络状况; 请参阅这篇博客文章。关于如何影响 模拟设备,继续下面的内容,和以前一样。

  1. 如果没有 Xcode,请安装它。

  2. 打开 Xcode,转到 Xcode’Open Developer Tool’More Developer Tools..。

Screen shot of navigating the menu as described

  1. 下载 Xcode 的附加工具(与当前的 Xcode 版本相匹配)

Additional IO Tools download link

  1. 打开下载的磁盘映像,双击“硬件”下的“网络链接调节器”前面的“网络链接调节器”来安装它。

pref pane in DMG

system preferences showing installation prompt

  1. 这就对了!

Screen shot of the preference pane

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

enter image description here

注意

这不会影响本地主机,所以一定要使用登台服务器或同事的计算机来模拟到您自己运行的 API 的缓慢网络连接。你可能会发现 https://ngrok.com/在这方面很有帮助。

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

  • 只要去’设备和模拟器’(cmmd+shift+2)
  • 选择您的设备
  • 向下滚动,直到找到“设备条件”
  • 设置您想要的配置文件
  • 按开始键

enter image description here

为了让这个工作,你需要在你的 Mac 上安装“网络链接调节器”。参见提到 在艾伦的回答中的步骤