iPhone Simulator - Simulate a slow connection?

前端 未结 6 443
离开以前
离开以前 2021-01-29 18:26

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?

相关标签:
6条回答
  • 2021-01-29 18:49

    It also worth mentioning that Xcode also has a built in way for devices, not simulator.

    • Just go 'Devices and Simulator' (cmmd+shift+2)
    • Select your device
    • Scroll down til you find 'Device Conditions'
    • Set your desired profile
    • Hit Start

    To have this working you need to install 'Network Link Conditioner' on your Mac. See steps mention in Alan's answer

    0 讨论(0)
  • 2021-01-29 18:51

    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?

    0 讨论(0)
  • 2021-01-29 18:53

    "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)

    0 讨论(0)
  • 2021-01-29 18:55

    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.

      system preferences showing installation prompt

    5. There we go!

      Screen shot of the preference pane

    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.

      enter image description here

    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.

    0 讨论(0)
  • 2021-01-29 19:02

    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

    0 讨论(0)
  • 2021-01-29 19:07

    An app called SpeedLimit

    https://github.com/mschrag/speedlimit

    Works great.

    chris.

    0 讨论(0)
提交回复
热议问题