iPhone Simulator - Eine langsame Verbindung simulieren?

125

Gibt es eine Möglichkeit, die Internetverbindung zum iPhone Simulator zu verlangsamen, um nachzuahmen, wie die App reagieren könnte, wenn Sie sich an einer langsamen Stelle im Mobilfunknetz befinden?

Chris
quelle
Alans Antwort sollte akzeptiert werden.
Stanislav Mayorov
@ StanislavMayorov Diese Frage ist von vor 9 Jahren. Alan gab dann 4 Jahre später eine aktualisierte Antwort. Es ist jetzt 5 Jahre danach. Es tut mir leid, dass ich akzeptierte Antworten auf meine alten Fragen nicht noch einmal überprüfe.
Chris

Antworten:

67

Eine App namens SpeedLimit

https://github.com/mschrag/speedlimit

Funktioniert super.

chris.

PyjamaSam
quelle
Super, habe das gerade ausprobiert und es macht das Geschäft. Vielen Dank!
Max MacLeod
Yosemite: Geschwindigkeitsbegrenzung nicht festgelegt
Injectios
2
Gebrochen, heißt esFailed to set speed limit
vintagexav
1
Der richtige Weg dazu wird durch die Antwort von Alan H. erklärt .
Lifeisfoo
"Ich bin nicht mehr in der Lage, dieses Projekt aufrechtzuerhalten. Bitte zögern Sie nicht, die Verantwortung zu übernehmen."
Catanore
260

So installieren Sie Apples Network Link Conditioner

Diese Anweisungen gelten ab Oktober 2019.

Warnung: Wenn Sie gerade ein Upgrade auf eine neue Version von macOS durchgeführt haben, stellen Sie sicher, dass Sie den neuesten Network Conditioner ( in den zusätzlichen Tools für Xcode ) installieren. Andernfalls kann dies unbeabsichtigt fehlschlagen . Das heißt, Sie werden es einschalten, aber es wird nichts drosseln oder Pakete verwerfen.

Update: Ab Xcode 11 gibt es möglicherweise eine noch einfachere Möglichkeit, die Netzwerkbedingungen auf angebundenen Geräten zu simulieren. siehe diesen Blog-Beitrag . Informationen zur Auswirkung auf simulierte Geräte finden Sie weiter unten.

  1. Installieren Sie Xcode, wenn Sie es nicht haben.

  2. Öffnen Sie Xcode und gehen Sie zu Xcode ›Entwickler-Tool öffnen› Weitere Entwickler-Tools…

    Screenshot der Navigation im Menü wie beschrieben

  3. Laden Sie zusätzliche Tools für Xcode herunter (passend zu Ihrer aktuellen Xcode-Version)

    Link zum Herunterladen zusätzlicher E / A-Tools

  4. Öffnen Sie das heruntergeladene Disk-Image und doppelklicken Sie unter "Hardware" auf das Vorfeld "Network Link Conditioner", um es zu installieren.

    Voreinstellungsfenster in DMG

    Systemeinstellungen mit Eingabeaufforderung für die Installation

  5. Na, bitte!

    Screenshot des Einstellungsbereichs

  6. Stellen Sie sicher, dass es eingeschaltet ist. Sie müssen ein Profil auswählen und den Netzwerkkonditionierer mit dem großen Schalter aktivieren, der aus dem Vorfenster von Time Machine bekannt sein sollte.

    Geben Sie hier die Bildbeschreibung ein

Vorbehalt

Dies hat keine Auswirkungen auf localhost. Verwenden Sie daher unbedingt einen Staging-Server oder den Computer eines Kollegen, um langsame Netzwerkverbindungen zu einer API zu simulieren, die Sie selbst ausführen. Möglicherweise ist https://ngrok.com/ in dieser Hinsicht hilfreich.

Alan H.
quelle
6
für Xcode 8 ist dies in "Zusätzliche Tools für Xcode 8" (anstelle von "Hardware-E / A-Tools für Xcode") enthalten
Mohit Singh
1
@MohitSingh Danke. Ich habe die Antwort oben aktualisiert.
Alan H.
1
Tolle! Danke dir.
Thomás Calmon
1
Es scheint keine zusätzlichen Tools für Xcode 10.3 zu geben?
Leo
1
@leo, verwenden Sie einfach die aktuellen zusätzlichen Tools für die Hauptversion von Xcode, die Sie haben. Verwenden Sie beispielsweise Zusätzliche Tools für Xcode 11, wenn Sie Xcode 11.1 installiert haben.
Alan H.
81

"Dafür gibt es eine App!" ;) Apple bietet den Einstellungsbereich "Network Link Conditioner" an, der die Aufgabe recht gut erledigt.

  • Bei Xcode-Versionen vor 4.3 befindet sich das Fensterinstallationsprogramm in Ihrem DeveloperOrdner, z. B. "/Developer/Applications/Utilities/Network Link Conditioner"nach der Installation, wenn der Dämon nicht gestartet werden kann und Sie Ihren Computer nicht neu starten möchten, verwenden Sie einfach sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
  • Wenn Sie mit dem DeveloperOrdner bereits fertig sind , können Sie den Bereich als Teil des Pakets "Hardware-E / A-Tools für Xcode" installieren, das über den Abschnitt "Zusätzliche Downloads" für Mac Dev Center verfügbar ist.

Link zur Download-Seite (Sie müssen sich mit Ihrer Apple ID anmelden): https://developer.apple.com/downloads/index.action
(Credits an @nverinaud)

matm
quelle
2
Hier ist ein Link zum Durchsuchen der verfügbaren Downloads: developer.apple.com/downloads/index.action
nverinaud
2
funktioniert nicht auf Mountain Lion ... stackoverflow.com/questions/12414676/…
zack
wäre schön, wenn es app-spezifisch wäre und nicht für den gesamten Computer
Charles John Thompson III
3
Sie können "Hardware IO Tools" jetzt von der Entwickler-Tools-Website von Apple herunterladen. Sie aktualisieren es für neue Versionen von Xcode (und damit OSX): Klicken Sie in Xcode auf Xcode-> Open Developer Tool-> More Developer Tools..., melden Sie sich an, suchen Sie das neueste Archiv, laden Sie die Dateien herunter, kopieren Sie sie irgendwo hin, doppelklicken Sie auf das Einstellungsfenster von Network Conditioner, installieren Sie es. . Yay!
i_am_jorf
Ich denke, funktioniert nicht für Yosemite. Ich habe es auf "verlustbehaftet" gesetzt, aber tatsächlich keinen Unterschied festgestellt
Injectios
2

Erwähnenswert ist auch, dass Xcode auch eine integrierte Methode für Geräte und keinen Simulator hat.

  • Gehen Sie einfach zu "Geräte und Simulator" ( cmmd+shift+2)
  • Wählen sie ihren Gerätetyp
  • Scrollen Sie nach unten, bis Sie "Gerätebedingungen" finden.
  • Stellen Sie Ihr gewünschtes Profil ein
  • Klicken Sie auf Start

Geben Sie hier die Bildbeschreibung ein

Damit dies funktioniert, müssen Sie 'Network Link Conditioner' installieren. Siehe Schritte in Alans Antwort

Honig
quelle
0

Es gibt keinen direkten Weg, um eine langsame Verbindung zu emulieren, im Gegensatz zu dem netten Netzwerkverbindungsemulator, den Blackberry-Entwickler genießen. Da die Verbindung Ihres Simulators jedoch über Ihren Computer erfolgt, können Sie sich einfach darauf konzentrieren, die Verbindung Ihres Computers zu verlangsamen.

Sie möchten zwei Dinge erreichen (abhängig von Ihren Umständen):

  • Drosseln Sie Ihre Bandbreite
  • Erhöhen Sie Ihre Latenz

Vielleicht weist Sie dies in die richtige Richtung:

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

Es gibt auch einige gute Open Source-Lösungen, aber ich kann mich nicht an ihre Namen erinnern.

Diese Frage könnte helfen: Wie kann der Netzwerkverkehr für die Umgebungssimulation gedrosselt werden?

JJ Rohrer
quelle
0

Ich würde argumentieren, dass eine langsame Verbindung nicht ausreicht, um das Verhalten eines mobilen Datennetzwerks in der Praxis zu simulieren - da es auch viel mehr Paketverlust, höhere Latenzen und mehr unterbrochene Verbindungen gibt.

Hier ist ein praktisches Skript zum Konfigurieren der Firewall zum Emulieren dieser Parameter:

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

Nick Dowell
quelle
2
Network Link Conditioner (Tool von Apple, das als Einstellungsfenster installiert wird) simuliert langsame Verbindungen, Paketverlust und Latenz.
n00neimp0rtant
Der in OS X Lion (veröffentlicht im Juli 2011) hinzugefügte Network Link Conditioner macht solche Skripte unnötig.
Nick Dowell