iPhone Simulator - Simulate a slow connection?

荒凉一梦 提交于 2019-12-03 00:05:24

问题


Is there a way to slow down the internet connection to the iPhone Simulator, so as to mimic how the App might react when you are in a slow spot on the cellular network?


回答1:


An app called SpeedLimit

https://github.com/mschrag/speedlimit

Works great.

chris.




回答2:


How to install Apple’s Network Link Conditioner

These instructions current as of October 2019.

Warning: If you just upgraded to new version of macOS, make sure you install the very latest Network Conditioner (in Additional Tools for Xcode) or it may silently fail; that is, you will turn it on but it won’t throttle anything or drop any packets.

Update: As of Xcode 11, there may be an even simpler way to simulate network conditions on tethered devices; see this blog post. For how to affect simulated devices, continue below, as before.

  1. Install Xcode if you don’t have it.

  2. Open Xcode and go to Xcode › Open Developer Tool › More Developer Tools…

  3. Download Additional Tools for Xcode (matching your current Xcode version)

  4. Open the downloaded disk image and double-click the Network Link Conditioner .prefpane under “Hardware” to install it.

  5. There we go!

  6. Be sure to turn it on. You need to select a profile and enable the network conditioner with the big toggle that should be familiar from the Time Machine prefpane.

Caveat

This won't affect localhost, so be sure to use a staging server or co-worker's computer to simulate slow network connections to an API you’re running yourself. You may find https://ngrok.com/ helpful in this regard.




回答3:


"There's an app for that!" ;) Apple provides "Network Link Conditioner" preference pane that does the job quite well.

  • for Xcode versions prior to 4.3, the pane installer can be found in your Developer folder, e.g. "/Developer/Applications/Utilities/Network Link Conditioner", after installation, if daemon fails to start and you don't want to reboot your machine, just use sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
  • if you are already done with Developer folder, you can install the pane as a part of "Hardware IO Tools for Xcode" package available via Mac Dev Center additional downloads section.

Link to download page (you must log in with your Apple ID): https://developer.apple.com/downloads/index.action
(credits to @nverinaud)




回答4:


There isn't a direct way to emulate a slow connection, unlike, say, the nice network connection emulator that blackberry developers enjoy. However, since your simulator's connection goes through your computer - you can simply focus on slowing down your computer's connection.

You'll want to achieve two things (depending upon your circumstances):

  • throttle your bandwidth
  • increase your latency

Maybe this will point you in right direction:

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

There are some good open source solutions, too, but I so can't remember their names.

This question might help: How to throttle network traffic for environment simulation?




回答5:


I would argue that a slow connection isn't enough to simulate real-work mobile data network behaviour - since there is also much more packet loss, higher latencies and more dropped connections too.

Here is a handy script to configure the firewall to emulate these parameters:

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



来源:https://stackoverflow.com/questions/2593971/iphone-simulator-simulate-a-slow-connection

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!