Simulieren Sie den Flugzeugmodus im iPhone Simulator


Antworten:


113

Schalten Sie Ihre Netzwerkverbindung auf dem Mac aus.


14
so offensichtlich, dass ich mich selbst getreten habe. aber gleichzeitig hätten sie sicherlich eine bessere Lösung finden können!
Benlumley

37
Es ist schwieriger als es sich anhört, obwohl unser Team Apple um ähnliche Funktionen gebeten hat. Das Problem ist, dass Apps, die im Simulator ausgeführt werden, wirklich Mac-Apps sind. Der iPhone Simulator emuliert das iPhone nicht. Es ist nur eine Umgebung, in der Mac-Apps verknüpft werden und wie ein iPhone aussehen . Sie benötigen also eine Möglichkeit auf Systemebene, um zu verhindern, dass eine App mit dem Netzwerk kommuniziert. Unix bietet das nicht an; Es würde mit ziemlicher Sicherheit Kernel-Unterstützung benötigen, um es zu bekommen. Sie könnten es für NSURLConnection und seine Verwandten einfacher machen, aber es könnte verwirrender sein, wenn einige Anrufe funktionieren und andere nicht.
Rob Napier

13
Dies simuliert nicht den Flugzeugmodus ... da der GPS-Simulator weiterhin funktioniert, aber keinen Wert zurückgibt.
Jann

17
Das Ausschalten der Netzwerkverbindung ist unter bestimmten Umständen nicht so nützlich. Wenn Sie beispielsweise die Erreichbarkeit und Internetverfügbarkeit testen, benötigen Sie manchmal wirklich den Flugzeugmodus. Der Simulator, der keine funktionierende Netzwerkverbindung hat, ist nicht wirklich derselbe. Außerdem gibt es an einigen Arbeitsplätzen Computer mit echten Authentifizierungsproblemen, die bedeuten, dass das Beenden Ihrer Netzwerkverbindung nicht immer eine Option ist (da alles schief geht).
Occulus

9
Ich stimme Occuulus zu. Wenn Sie im Büro arbeiten, wirkt sich das Ausschalten des Netzwerks für die gesamte Maschine erheblich nachteilig auf die Kommunikation in der Arbeitsumgebung aus. Es gibt viele Situationen, in denen dies keine akzeptable Lösung ist.
Krejko

59

Sie können Apples Network Link Conditioner installieren

Auf Yosemite:

Network Link Conditioner finden Sie im Paket "Hardware IO Tools for Xcode". Dies kann von der Apple Developer Downloads-Seite heruntergeladen werden . Öffnen Sie nach Abschluss des Downloads die DMG und doppelklicken Sie auf "Network Link Condition.prefPane", um sie zu installieren ( Quelle ).

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

Network Link Conditioner

Bei älteren Versionen von OSX:

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


11
Die Erreichbarkeit ändert sich bei Verwendung von Network Link Conditioner nicht. Wenn ich es auf 0 KBit / s und 100% Paketverlust einstelle, wird immer noch alles als aktiv und über WLAN erreichbar gemeldet. Dies funktioniert nicht, wenn Sie versuchen, den Flugzeugmodus zu testen.
E.Freitas

1
Sind Sie sicher, dass Sie den großen Schalter links auf "ON" gestellt haben?
Tieme

Gleiches Problem hier, Link Conditioner mit 0kbps up / down und 100% Paketverlust up / down hilft nicht. Der iOS-Simulator läuft nach einer Weile ab. 0 kbps wird als maximale Bandbreite angenommen.
Entwurf durch Adrian

17

Sie können Little Snitch auch zum Temp. Verwenden . Blockieren Sie die Internetverbindung für diese App.


Das bedeutet, dass Sie Hosts-Dateien bearbeiten können, um dasselbe zu erreichen, danke für die Idee, Kumpel.
Panchicore

0

Einfacherer Hack: Machen Sie eine Funktion, die die Verbindung überprüft

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

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

Rufen Sie Ihre Daten nur ab, wenn eine Verbindung besteht. Um keine Verbindung zu simulieren, kehren Sie einfach false zu dieser Funktion zurück, unabhängig von der tatsächlichen Verbindung.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.