Frage an iphone, objective-c, cocoa-touch – Testen der IPhone-Konnektivität: Wie kann ich erzwingen, dass die Verbindung unterbrochen wird?

14

Apple möchte, dass ich mich freundlich bei dem Benutzer entschuldige, wenn ich keine Internetverbindung finde. Mit der Reachability Demo war dies einfach genug. Ich möchte noch einen Schritt weiter gehen und nach einem Verbindungsverlust Ausschau halten. Die Demo hat diese Funktionalität, aber ich kann nicht herausfinden, wie ich meine Verbindung abschalte, um zu testen, ob sie funktioniert.

Wie würde ich vorgehen, um den Verlust (oder den tatsächlichen Verlust) einer Verbindung zu simulieren?

Deine Antwort

7   die antwort
4

Charles Web Proxy Sie können alle von Ihrer App gesendeten und empfangenen HTTP / S-Anforderungen überprüfen und die Verbindung drosseln, um die Netzwerkgeschwindigkeit zu simulieren. Erstellen Sie ein benutzerdefiniertes Drosselungsprofil mit dem Namen "Disconnected" mit der Bandbreite = 0, um Netzwerkverbindungen zu simulieren.

Bandbreite 0 ist keine Unterbrechung in Bezug auf die Erreichbarkeit. Wenn Sie es als Proxy für Ihr Gerät verwenden, ist das Gerät dennoch der Meinung, dass es eine gute Verbindung zum WLAN-Netzwerk hat, sodass die Erreichbarkeit nicht zum Fehlschlagen führt. Die Bandbreite 0 ist nach wie vor ein nützliches Tool zum Testen von Netzwerkstillständen. CornPuff
2

SpeedLimit.prefPane Die Verbindung kann nicht unterbrochen werden, Sie können sie jedoch basierend auf dem Host und dem Port, den Sie erreichen möchten, verlangsamen.

0

d. H. Der Simulation einer verlustbehafteten WLAN-Netzwerkverbindung auf einem realen Gerät, habe ich herausgefunden, wie das geht :) Ich habe mein MacBook Pro über Ethernet angeschlossen und meine WLAN-Verbindung mit dem Gerät geteilt. Mit Apples Network Link Conditioner Prefpane kann ich dann mit der Verbindungsqualität spielen. Sehr nützlich, um 3G, Edge und andere Baudraten zu simulieren.

Nächster Schritt: Suchen und kaufen Sie einen USB-WLAN-Adapter für MAC OS X, damit wir alle (Entwicklerteam) testen können, ohne jeden Computer mit dem Ethernet zu verbinden.

Hoffe das wird einigen von euch helfen.

12

Auf Yosemite:

Network Link Conditioner finden Sie im Paket "Hardware IO Tools for Xcode". Dies kann von der heruntergeladen werdenApple Developer Downloads-Seite. Sobald der Download abgeschlossen ist, öffnen Sie die DMG und doppelklicken Sie auf "Network Link Condition.prefPane", um zu installieren (Quelle).

Mit diesem Einstellungsfeld können Sie ein Profil mit einer Geschwindigkeit von 0 KBit / s erstellen.

Auf älteren Versionen von OSX:

Berglöwe / Außenseiter:Xcode > Open Developer Tool > More Developer Tools
Löwe:/Developer/Applications/Utilities/Network Link Conditioner

Hinweis: Ab Xcode 4.3 (oder 4.2?) Müssen diese separat von der Apple-Website installiert werden: Gehen Sie in Xcode zu "Xcode / Open Developer Tools / More Developer Tools ...". Dadurch gelangen Sie zum Download-Bereich. Den Link Conditioner finden Sie in den "Hardware IO Tools for Xcode". Stefan
Gut, aber selbst wenn Sie ein Profil mit 0-Werten erstellen, wird die Situation "Keine Verbindung" nicht simuliert ... gemini
18

trennen Sie einfach Ihren Computer vom Internet. Wenn Ihr Computer keinen Netzwerkzugriff hat, funktioniert der iPhone Simulator auch nicht.

Zum Testen auf dem Gerät können Sie folgende Aktionen ausführen:

Richten Sie zunächst einen WLAN-Router ein, den Sie zum Testen verwenden können.

Sie können den Flugmodus auf dem Telefon aktivieren und dann WLAN wieder aktivieren. Dadurch wird verhindert, dass die 3G-Verbindung den Datenzugriff ermöglicht.

Starten Sie Ihre Anwendung. Jetzt können Sie einfach Ihren WLAN-Router trennen, um einen Verbindungsverlust zu simulieren.

Normalerweise trage ich einen Blechhut, daher ist der Käfig ein natürlicher Fortschritt. heh Danke Joey, ich wollte das Gerät testen. Prost. Joel Hooks
Sie können Ihr Telefon in die Mikrowelle stellen, um einen realen Verbindungsverlust zu simulieren ... Denken Sie nur daran, die Mikrowelle nicht einzuschalten! Sam
oder einen faradayschen käfig probieren?en.wikipedia.org/wiki/Faraday_cage russau
4

Kleiner Verräter. Es ist eine sehr nützliche Anwendung, um Regeln zu schreiben, was mit der Außenwelt kommunizieren kann und wie lange.

Außerdem werden Sie benachrichtigt, wenn eine Anwendung spontan auf das Internet zugreifen möchte, und Sie können den Zugriff vorübergehend entweder für diese Zeit, diese Sitzung oder für immer beschränken.

Zum Testen auf dem Gerät melde ich mich bei meinem WLAN-Router an und deaktiviere für die Dauer des Tests vorübergehend entweder das Netzwerk oder die Einschränkung durch die MAC-ID.

13

SpeedLimit-Einstellungsbereich um die Netzwerklatenz unter dem Simulator zu simulieren. Und hier ist einBefehlszeilenversion gebaut auf deripfw Befehl.

Der Vorteil gegenüber dem reißen des Kabels oder dem Beenden von WiFi besteht darin, dass Sie die Geschwindigkeit festlegen können, wenn Sie bestimmte Hosts treffen, damit diese zum Testen verwendet werden können, ohne Ihre regulären Netzwerkdienste zu beenden.

Danke, das SpeedLimit-Ding ist super nützlich. Tom Redman

Verwandte Fragen