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
Instructions current as of November 4, 2016 – macOS Sierra 10.12.
Warning: If you just upgraded to macOS Sierra, make sure you install the very latest Network Conditioner (in Additional Tools for Xcode 8.2) or it will silently fail; that is, you will turn it on but it won’t throttle anything or drop any packets.
Install Xcode if you don’t have it
Open XCode and go to Xcode › Open Developer Tool › More Developer Tools…
Download Additional Tools for Xcode
Open the downloaded disk image and double-click the .prefpane to install it.
There we go!
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 usesudo 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