Czy można wyłączyć sieć w symulatorze iOS?

Próbuję debugować niespójne zachowanie, które widzę w aplikacji, która pobiera podstawowe dane z Internetu. Nie widzę problemów w symulatorze, tylko na urządzeniu, więc chciałbym odtworzyć środowisko sieciowe i łącznościowe w symulatorze.

Czy jest jakiś sposób na wyłączenie sieci w symulatorze?

(podłączam się do komputera Mac zdalnie do kodu, nie ma innego wyboru, więc wyłączenie sieci OS nie wchodzi w grę).

Author: Paul Hammond, 2011-01-26

17 answers

Obawiam się, że nie-symulator udostępnia dowolne połączenie sieciowe, z którego korzysta SYSTEM OPERACYJNY. Jakiś czas temu zgłosiłem Błąd radaru dotyczący symulowania warunków sieciowych; możesz rozważyć zrobienie tego samego.

 219
Author: Noah Witherspoon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-26 18:37:12

Użyj prostej klatki Faradaya, aby zablokować lub ograniczyć zewnętrzny poziom sygnału RF.

Można zrobić własne z folii aluminiowej. Otwory powinny być mniejsze niż długość fali twojego serwisu danych, jeśli chcesz to zablokować.

800 Mhz ma długość fali 37 cm (14") , 1900 Mhz ma długość fali 16 cm (6").

To działa lepiej z rzeczywistym urządzeniem niż z symulatorem, ponieważ Mac jest trudny do pracy, gdy wewnątrz klatki Faradaya ;-)

Tutaj wpisz opis obrazka

 1442
Author: progrmr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-27 19:56:28

Tak. W Xcode możesz przejść do pozycji menu Xcode -> Open Developer Tools -> More Developer Tools i pobierz " dodatkowe narzędzia dla Xcode ", które będą miały kondycjoner łącza sieciowego.

Za pomocą tego narzędzia można symulować różne scenariusze sieciowe (takie jak 100% strata, 3G, DNS o dużym opóźnieniu i inne), a także tworzyć własne niestandardowe.

 205
Author: swathy valluri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-20 08:40:31

Jedynym sposobem na wyłączenie sieci w symulatorze iOS, jaki znam, jest użycie narzędzi takich jak Little Snitch lub Hands Off. Dzięki nim możesz zablokować/zablokować wszelkie wychodzące i wychodzące połączenia sieciowe. Możesz go skonfigurować tak, aby blokował tylko połączenia z aplikacji symulatora. Działa jak firewall.

 45
Author: Felix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-26 18:41:34

Po prostu wyłącz WiFi w Mac OSX to działa gratka!

 13
Author: benpalmer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-12 09:21:34

Po prostu aktualizuję odpowiedź do aktualnej daty. Od Xcode 4 (?) w /Applications/Utilities znajduje się panel preferencji o nazwie Network Link Conditioner. Albo korzystasz z jednego z istniejących profili, albo tworzysz swój własny profil z łączem w górę/w dół 0 Kb / s i 100% zrzucasz.

 11
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-01 09:52:29

Pobierz Pakiet dodatkowych narzędzi (network Link Conditioner)

Opis

Przykład w Sierra: Tutaj wpisz opis obrazka

Tutaj wpisz opis obrazka

 10
Author: Nik Kov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-16 19:22:13

Ponieważ Xcode nie zapewnia takiej funkcji, na pewno pójdziesz do jakiejś aplikacji/ narzędzia innej firmy. Wyłączenie sieci MAC pomoże również wyłączyć sieć symulatora iOS.

Możesz wyłączyć MAC internet z "System Preferences..." > "Network" i wyłącz źródło sieci desire.

Aby wyłączyć MAC Ethernet Internet Źródło: Źródło Sieci EtherNet

Aby wyłączyć źródło Internetu WiFi Mac (jeśli komputer MAC jest w sieci Wifi Internet): Tutaj wpisz opis obrazka

 8
Author: Ali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-24 14:11:12

Możesz Dławić połączenie internetowe za pomocą aplikacji innej firmy, takiej jak

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

Naciśnij command + shift + T na komputerze Mac, aby ustawić Dławienie.

 5
Author: mabounassif,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-12 23:44:56

Jeden chyba szalony pomysł lub patch :

Po prostu przełącz flagę zasięgu sieci

Jest to kod, którego używam do przełączania flagi runtime przez wyzwalanie 'Simulator Memory Warning' i jest całkowicie bezpieczny, tylko upewnij się, że kod powinien być w tylko w trybie debugowania

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application 
{
#ifdef DEBUG
    isInternetAvailable = !isInternetAvailable;
#endif 
}
 5
Author: Darshit Shah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-10 05:32:06

Możesz użyć Little Snitch , aby odciąć ruch sieciowy dla każdego pojedynczego procesu, w tym tych, które działają na symulatorze iOS. W ten sposób możesz zachować połączenie z Internetem i odłączyć działającą aplikację.

 3
Author: Eran Goldin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-09 15:16:18

Z Xcode 8.3 i iOS 10.3:

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

Pamiętaj, aby umieścić @available(iOS 10.3, *) na górze pliku zestawu testów.

Możesz alternatywnie "włączyć tryb samolotowy", jeśli wolisz.

Gdy Siri wyłączy wifi lub włączy tryb samolotowy, będziesz musiał zamknąć okno dialogowe Siri, które mówi, że Siri wymaga internetu. Można to osiągnąć, naciskając przycisk home, który odrzuca dialog i wraca do aplikacji.

 3
Author: brandenbyers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-27 23:22:19

Możesz użyć OHHTTPStubs i stub żądań sieciowych do określonych adresów URL, aby nie powiodły się.

 2
Author: mwhuss,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-14 19:55:17

Zamiast tego możesz wyłączyć sieć hosta!

 1
Author: wshcdr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-03 04:38:07

Jeśli masz co najmniej 2 Sieci wifi do podłączenia jest bardzo prostym sposobem jest użycie błędu w symulatorze iOS:

  1. Zamknij simulator (cmd-q), jeśli jest otwarty
  2. [5]} Podłącz komputer Mac do jednego Wi-Fi (może nie być podłączony do Internetu, nie ma znaczenia)
  3. Uruchom symulator (menu: xCode- > Otwórz narzędzie programistyczne - > symulator iOs) i poczekaj, aż zostanie załadowany
  4. Przełącz sieć wifi na inną
  5. zysk

Błąd polega na tym, że symulator próbuje użyć sieci (IP?), który nie jest już połączony.

Dopóki nie uruchomisz symulatora - nie będzie on miał Internetu (nawet jeśli pierwsza podłączona sieć wifi miała połączenie z Internetem), więc możesz uruchomić (cmd-r) i zatrzymać (cmd-.) projekt(y), aby używać symulatora bez połączenia, ale twój Mac będzie podłączony.

Następnie, jeśli będziesz musiał uruchomić simulator connected - po prostu zamknij i uruchom go.

 0
Author: iGore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-28 11:44:28

Możesz użyć kondycjonera łącza sieciowego na komputerze Mac. Można go pobrać ze strony internetowej dewelopera apple. Powinien być dostępny tam, gdzie dostajemy starsze wersje Xcode i iOS. Dzięki temu kondycjonerowi sieciowemu możesz zmienić siłę sieci z wifi na brak sieci.

Również po zainstalowaniu kondycjonera sieciowego zostanie on zainstalowany w Preferencjach systemowych.

 0
Author: Astha Trivedi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-13 21:14:41

Istnieją Dwa sposób na Wyłączenie iOS Simulator internet:

  • odłącz połączenie sieciowe
  • Wyłącz Wi-Fi]}

To najprostszy sposób

 0
Author: Daniel Beltrami,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-29 14:10:13