it-swarm.com.de

Ist es möglich, das Netzwerk in iOS Simulator zu deaktivieren?

Ich versuche, ein inkonsistentes Verhalten zu debuggen, das in einer Anwendung auftritt, deren Primärdaten aus dem Internet stammen. Ich sehe die Probleme nicht im Simulator, sondern nur auf dem Gerät. Daher möchte ich die Netzwerk- und Konnektivitätsumgebung im Simulator reproduzieren.

Gibt es eine Möglichkeit, das Netzwerk im Simulator zu deaktivieren?

(Ich stelle eine Remoteverbindung zum Mac her, um Code zu verwenden. Momentan gibt es keine andere Möglichkeit. Daher ist das Deaktivieren des Betriebssystemnetzwerks keine Option.).

386
Paul Hammond

Ich fürchte nicht - der Simulator teilt die Netzwerkverbindung, die das Betriebssystem verwendet. Ich habe vor einiger Zeit einen Radar Bug Report zur Simulation von Netzwerkbedingungen eingereicht. Sie könnten das gleiche tun.

250

Verwenden Sie einen einfachen Faradayschen Käfig , um den externen RF Signalpegel zu blockieren oder zu begrenzen.

Sie können Ihre Selbst mit Aluminiumfolie bilden. Die Öffnungen sollten kleiner sein als die Wellenlänge Ihres Datendienstes, wenn Sie dies blockieren möchten.

800 Mhz haben eine Wellenlänge von 37 cm (14 "), 1900 Mhz haben eine Wellenlänge von 16 cm (6").

Dies funktioniert besser mit einem tatsächlichen Gerät als mit dem Simulator, da der Mac im Faraday-Käfig schwer zu bearbeiten ist ;-)

enter image description here

1582
progrmr

Ja. In Xcode können Sie zum Menüpunkt Xcode -> Open Developer Tools -> More Developer Tools Gehen und " Additional Tools for Xcode " herunterladen, das haben wird der Network Link Conditioner.

Mit diesem Tool können Sie verschiedene Netzwerkszenarien simulieren (z. B. 100% Verlust, 3G, DNS mit hoher Latenz und mehr) und Ihre eigenen benutzerdefinierten Szenarien erstellen.

270
swathy valluri

Die einzige Möglichkeit, das Netzwerk im iOS-Simulator zu deaktivieren, ist die Verwendung von Tools wie Little Snitch oder Hands Off . Mit ihnen können Sie ausgehende und eingehende Netzwerkverbindungen ablehnen/blockieren. Sie können es so einrichten, dass es nur Verbindungen von der Simulator-App blockiert. Funktioniert wie eine Firewall.

46
Felix

Schalten Sie einfach Ihr WiFi in Mac OS X aus, das ist ein Vergnügen!

15
benpalmer

Download Zusätzliches Toolpaket (Network Link Conditioner)

Beschreibung

Beispiel in Sierra: enter image description here

enter image description here

13
Nik Kov

Aktualisieren Sie einfach die Antwort auf das aktuelle Datum. Seit Xcode 4 (?) Gibt es ein Einstellungsfenster in /Applications/Utilities namens Network Link Conditioner. Entweder Sie verwenden eines der vorhandenen Profile oder Sie erstellen ein eigenes benutzerdefiniertes Profil mit 0 Kbps Up/Downlink und 100% gelöscht.

11
user207616

Da Xcode diese Funktion nicht bietet, werden Sie sich definitiv für Anwendungen/Tools von Drittanbietern entscheiden. Das Deaktivieren des MAC-Netzwerks hilft auch beim Deaktivieren des iOS-Simulator-Netzwerks.

Sie können Ihr MAC-Internet über "System Preferences... ">" Network "und schalten Sie die gewünschte Netzwerkquelle aus.

So schalten Sie Ihre MAC-Ethernet-Internetquelle aus: EtherNet Network Source

So schalten Sie Ihre MAC WiFi-Internetquelle aus (wenn sich Ihre MAC im Wifi-Internet befindet): enter image description here

9
Ali

Eine wahrscheinlich verrückte Idee oder ein Patch:

Schalten Sie einfach das Flag der Netzwerk-Erreichbarkeit um

Dies ist Code, mit dem ich die Laufzeit meines Flags umschalte, indem ich 'Simulator Memory Warning' auslöse und VOLLSTÄNDIG SICHER mache. Stelle nur sicher, dass der Code in DEBUG Mode ist

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application 
{
#ifdef DEBUG
    isInternetAvailable = !isInternetAvailable;
#endif 
}
6
Darshit Shah

Sie können die Internetverbindung mit einer Drittanbieter-App wie z

Charles: http://www.charlesproxy.com/

Drücken Sie auf einem Mac Befehl + Umschalt + T, um die Drosselung einzurichten.

6
mabounassif

Sie können Little Snitch verwenden, um den Netzwerkverkehr für jeden einzelnen Prozess zu unterbrechen, auch für Prozesse, die auf dem iOS-Simulator ausgeführt werden. Auf diese Weise können Sie Ihre Internetverbindung aufrechterhalten und Ihre laufende App trennen.

3
Eran Goldin

Mit Xcode 8.3 und iOS 10.3:

XCUIDevice.shared().siriService.activate(voiceRecognitionText: "Turn off wifi")
XCUIDevice.shared().press(XCUIDeviceButton.home)

Stellen Sie sicher, dass @available(iOS 10.3, *) am Anfang Ihrer Testsuite-Datei steht.

Sie können alternativ "Flugzeugmodus einschalten", wenn Sie dies vorziehen.

Sobald Siri das WLAN deaktiviert oder den Flugzeugmodus aktiviert hat, müssen Sie den Siri Dialog schließen, der besagt, dass Siri Dies wird durch Drücken der Home-Taste erreicht, wodurch der Dialog geschlossen wird und Sie zu Ihrer App zurückkehren.

3
brandenbyers

Wenn Ihre App eine Verbindung zu einer bestimmten Domain herstellt, können Sie diese einfach zu Ihrer /etc/hosts - Datei hinzufügen und an eine nicht vorhandene IP in Ihrem lokalen Netzwerk weiterleiten Es gab keine Internetverbindung oder der Server ist nicht erreichbar.

Sudo nano /etc/hosts

füge die folgende Zeile hinzu:

192.168.1.123   example.com

oder verwenden Sie 127.0.0.1, wenn Sie keinen Webserver auf Ihrem lokalen Computer betreiben.

2
Dion

Sie können OHHTTPStubs verwenden und die Netzwerkanforderungen an bestimmte URLs stummschalten, um einen Fehler zu verursachen.

2
mwhuss

Es gibt zwei Wege zum deaktivieren IOS Simulator Internet:

  • Trennen Sie Ihre Netzwerkverbindung
  • Schalten Sie das WLAN aus

Das ist der einfachste Weg

2
Daniel Beltrami

sie können stattdessen das Netzwerk des Hosts deaktivieren!

1
wshcdr

Sie können den Network Link Conditioner auf Ihrem Mac verwenden. Sie können es von der Apple Entwickler-Website) herunterladen. Es sollte dort verfügbar sein, wo wir die älteren Versionen von Xcode und iOS haben Netzwerk.

Auch wenn Sie den Network Conditioner installieren, wird er in den Systemeinstellungen installiert.

0
Astha Trivedi

Wenn Sie haben mindestens 2 WiFi-Netzwerke zu verbinden, ist eine sehr einfache Möglichkeit, einen Fehler im iOS-Simulator zu verwenden:

  1. beenden Sie den Simulator (cmd-q), wenn er geöffnet ist
  2. verbinden Sie Ihren Mac mit einem WLAN (möglicherweise ist er nicht mit dem Internet verbunden, egal)
  3. starten Sie den Simulator (Menü: xCode-> Open Developer Tool-> iOs Simulator) und warten Sie, bis er geladen ist
  4. schalten Sie das WLAN-Netzwerk auf ein anderes um
  5. profitieren

Der Fehler ist, dass der Simulator versucht, ein Netzwerk (IP?) Zu verwenden, das noch nicht verbunden ist.

Bis Sie den Simulator neu gestartet haben, hat er kein Internet (selbst wenn das erste WLAN-Netzwerk, mit dem Sie verbunden waren, eine Internetverbindung hatte). Sie können also ein (cmd-R) Projekt ausführen und ein (cmd-) Projekt stoppen, um den Simulator ohne Verbindung zu verwenden. aber dein Mac wird verbunden.

Wenn Sie dann den angeschlossenen Simulator ausführen müssen, beenden Sie ihn und starten Sie ihn.

0
iGore

Eine einfache Lösung besteht darin, einen Flugzeugmodus für Ihren Mac zu erstellen. So geht's:

  • gehen Sie in den Systemeinstellungen zu Netzwerk
  • klicken Sie auf das Dropdown-Menü Standort
  • klicken Sie auf das Plus-Symbol, um einen neuen Standort hinzuzufügen
  • benennen Sie den neuen Ort mit "Flugzeugmodus" oder ähnlichem und klicken Sie auf "Fertig".
  • wählen Sie den Standort, den Sie gerade erstellt haben, aus dem Dropdown-Menü Standort aus
  • klicken Sie in der Liste links im Fenster nacheinander auf jede verfügbare Netzwerkschnittstelle, um sie zu deaktivieren
  • klicken Sie auf das Menü "iPv4 konfigurieren" und wählen Sie "Aus"
  • für Wi-Fi klicken Sie einfach auf die Schaltfläche Wi-Fi ausschalten
  • klicken Sie auf Übernehmen. Dieser Speicherort blockiert alle Netzwerkaktivitäten

Wenn Sie das Netzwerk wieder aktivieren möchten, wählen Sie im Dropdown-Menü Standort die Option Automatisch aus und klicken Sie auf Übernehmen

0
ut9081