Symuluj tryb samolotowy w iPhone Simulator


Odpowiedzi:


114

Wyłącz połączenie sieciowe na komputerze Mac.


14
tak oczywiste, że się skopałem. ale jednocześnie z pewnością mogli znaleźć lepsze rozwiązanie!
benlumley

37
To trudniejsze niż się wydaje, chociaż nasz zespół poprosił Apple o podobną funkcjonalność. Problem w tym, że aplikacje działające w symulatorze to tak naprawdę aplikacje na Maca. IPhone Simulator nie emuluje iPhone'a; to tylko środowisko, z którym aplikacje na Maca mogą się łączyć i wyglądać jak iPhone. Potrzebujesz więc sposobu na poziomie systemu, aby ograniczyć komunikację aplikacji z siecią. Unix tego nie zapewnia; prawie na pewno potrzebowałby wsparcia jądra, aby to uzyskać. Możesz to zrobić łatwiej dla NSURLConnection i jego krewnych, ale może to być bardziej zagmatwane, jeśli niektóre połączenia działają, a inne nie.
Rob Napier

13
To nie symuluje trybu samolotowego ... ponieważ symulator GPS nadal działa, ale nie zwraca wartości.
Jann,

18
Samo wyłączenie połączenia sieciowego w niektórych okolicznościach nie jest tak przydatne. Na przykład, gdy testujesz osiągalność i dostępność Internetu - czasami naprawdę potrzebujesz trybu samolotowego. Symulator, który nie ma działającego połączenia sieciowego, nie jest taki sam. Ponadto w niektórych miejscach pracy są komputery, na których występują rzeczywiste problemy z uwierzytelnianiem, co oznacza, że ​​zabijanie połączenia sieciowego nie zawsze jest opcją (ponieważ wszystko się psuje).
occulus

9
Zgadzam się z occuulusem. Podczas pracy w biurze wyłączenie sieci dla całej maszyny poważnie szkodzi komunikacji w środowisku pracy. Jest wiele sytuacji, w których nie jest to akceptowalne rozwiązanie.
Krejko,

59

Możesz zainstalować Network Link Conditioner firmy Apple

W Yosemite:

Network Link Conditioner można znaleźć w pakiecie „Hardware IO Tools for Xcode”. Można go pobrać ze strony pobierania Apple Developer . Po zakończeniu pobierania otwórz DMG i kliknij dwukrotnie „Network Link Condition.prefPane”, aby zainstalować ( źródło ).

Za pomocą tego panelu preferencji możesz utworzyć profil z prędkością 0kbps.

Network Link Conditioner

W starszych wersjach OSX:

Mountain Lion / Mavericks: Xcode > Open Developer Tool > More Developer Tools
Lion:/Developer/Applications/Utilities/Network Link Conditioner


11
Osiągalność nie widzi żadnej zmiany podczas korzystania z Network Link Conditioner. W rzeczywistości, kiedy ustawię ją na 0 kb / si 100% utratę pakietów, nadal zgłasza wszystko jako sprawne i osiągalne przez Wi-Fi. Nie działa to w przypadku próby przetestowania trybu samolotowego.
E. Freitas

1
czy na pewno przełączyłeś duży przełącznik po lewej stronie na „ON”?
Tieme

Ten sam problem tutaj, Link Conditioner do 0kbps w górę / w dół i 100% utraty pakietów w górę / w dół nie pomaga. Symulator iOS po chwili wyłącza się. Jako MAKS. Przepustowość przyjmuje się 0 kb / s.
Projekt Adriana

17

Możesz też użyć Małego znicza do tymczasowego temp. zablokować połączenie internetowe dla tej aplikacji.


więc oznacza to, że możesz edytować pliki hostów, aby osiągnąć to samo, dzięki za pomysł.
panchicore,

-1

Łatwiejszy hack: utwórz funkcję sprawdzającą połączenie

import NetInfo from '@react-native-community/netinfo';

export const ckeckIsConnected = async () => {
  const isConnected = NetInfo.fetch().then((state) => {
    return state.isConnected;
  });
  return isConnected;
};

Wykonuj pobieranie danych tylko wtedy, gdy jest połączenie. Aby zasymulować brak połączenia, po prostu wróć false do tej funkcji, niezależnie od tego, jakie jest rzeczywiste połączenie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.