Est-il possible de désactiver le réseau dans iOS Simulator?

J'essaie de déboguer un comportement incohérent que je vois dans une application qui obtient ses données primaires d'internet. Je ne vois pas les problèmes dans le simulateur, juste sur l'appareil, donc j'aimerais reproduire l'environnement réseau et de connectivité dans le simulateur.

Est-il un moyen de désactiver le réseau dans le simulateur?

(Je me connecte au Mac à distance pour coder, pas d'autre choix en ce moment, donc désactiver le réseau du système D'exploitation n'est pas une option).

334
demandé sur Paul Hammond 2011-01-26 21:30:54

17 réponses

Je crains que non - le simulateur partage n'importe quelle connexion réseau que le système d'exploitation utilise. J'ai déposé un rapport de bogueRadar sur la simulation des conditions du réseau il y a quelque temps; vous pourriez envisager de faire la même chose.

219
répondu Noah Witherspoon 2011-01-26 18:37:12

Utilisez une simple cage Faraday pour bloquer ou limiter le niveau du signal RF externe.

Vous pouvez faire votre propre avec du papier d'aluminium. Les ouvertures doivent être plus petites que la longueur d'onde de votre service de données si c'est ce que vous voulez bloquer.

800 Mhz a une longueur d'onde de 37 cm (14") , 1900 Mhz a une longueur d'onde de 16 cm (6").

Cela fonctionne mieux avec un périphérique réel qu'avec le simulateur car le Mac est difficile à travailler à l'intérieur de la cage Faraday ;-)

entrez la description de l'image ici

1442
répondu progrmr 2013-08-27 19:56:28

Oui. Dans Xcode, vous pouvez aller à Xcode élément de menu-> Open Developer Tools -> More Developer Tools et téléchargez "outils supplémentaires pour Xcode ", qui aura le conditionneur de liaison réseau.

À l'aide de cet outil, vous pouvez simuler différents scénarios de réseau (tels que 100% de perte, 3G, DNS à latence élevée, etc.) et vous pouvez également créer vos propres scénarios personnalisés.

205
répondu swathy valluri 2018-03-20 08:40:31

La seule façon de désactiver le réseau sur iOS simulator que je connais est d'utiliser des outils comme Little Snitch ou Hands Off. Avec eux, vous pouvez refuser / bloquer toutes les connexions réseau sortantes et entrantes. Vous pouvez le configurer de sorte qu'il ne bloque que les connexions de l'application simulateur. Fonctionne comme un pare-feu.

45
répondu Felix 2011-01-26 18:41:34

Il suffit d'éteindre votre WiFi dans Mac OSX cela fonctionne un régal!

13
répondu benpalmer 2011-05-12 09:21:34

Juste mettre à jour la réponse à la date actuelle. Depuis Xcode 4 (?) il y a un volet Préférences dans /Applications/Utilities appelé Network Link Conditioner. Soit vous utilisez l'un des profils existants ou vous créez votre propre profil personnalisé avec 0 Kbps Up / Downlink et 100% abandonné.

11
répondu 2012-03-01 09:52:29

Télécharger package D'outils supplémentaires (conditionneur de liens réseau)

Description

Exemple dans Sierra: entrez la description de l'image ici

entrez la description de l'image ici

10
répondu Nik Kov 2017-03-16 19:22:13

Puisque Xcode ne fournit pas une telle fonctionnalité, vous allez certainement opter pour une application/ un outil tiers. Désactiver le réseau MAC aidera également à désactiver le réseau du simulateur iOS.

Vous pouvez désactiver votre Mac internet de "System Preferences..." > "Network" et désactivez la source réseau desire.

Pour désactiver votre source Internet MAC Ethernet: Source De Réseau EtherNet

Pour désactiver votre source Internet MAC WiFi (si votre MAC est en Wifi Internet): entrez la description de l'image ici

8
répondu Ali 2016-02-24 14:11:12

Vous pouvez activer la connexion internet avec une application tierce telle que

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

Appuyez Sur Commande + Maj + T sur un Mac pour configurer la limitation.

5
répondu mabounassif 2013-11-12 23:44:56

Une idée ou un patch probablement fou:

Il suffit de basculer le drapeau de l'accessibilité du réseau

C'est le code que j'utilise pour basculer mon runtime de drapeau en déclenchant 'avertissement de mémoire de simulateur' et C'est complètement sûr, assurez-vous simplement que le code doit être en mode de débogage seulement

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application 
{
#ifdef DEBUG
    isInternetAvailable = !isInternetAvailable;
#endif 
}
5
répondu Darshit Shah 2017-02-10 05:32:06

Vous pouvez utiliser Little Snitch pour couper le trafic réseau à tout processus individuel, y compris ceux qui s'exécutent sur le simulateur iOS. De cette façon, vous pouvez garder votre connexion internet et déconnecter votre application en cours d'exécution.

3
répondu Eran Goldin 2016-02-09 15:16:18

Avec Xcode 8.3 et iOS 10.3:

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

Assurez-vous d'inclure @available(iOS 10.3, *) en haut de votre fichier de suite de tests.

Vous pouvez également "activer le mode Avion" si vous préférez.

Une fois que Siri désactive le wifi ou active le mode Avion, vous devrez annuler le dialogue Siri qui indique que Siri nécessite internet. Ceci est accompli en appuyant sur le bouton d'accueil, qui rejette le dialogue et retourne à votre application.

3
répondu brandenbyers 2017-03-27 23:22:19

Vous pouvez utiliser OHHTTPStubs et stub les requêtes réseau à des URL spécifiques pour échouer.

2
répondu mwhuss 2014-05-14 19:55:17

, Vous pouvez désactiver le réseau de l'hôte à la place!

1
répondu wshcdr 2013-06-03 04:38:07

Si vous avez au moins 2 réseaux wifi pour vous connecter est un moyen très simple est d'utiliser un bug dans iOS simulator:

  1. quitter du simulateur (cmd-q) s'il est ouvert
  2. Connectez votre Mac à un wifi (il peut ne pas être connecté à internet, peu importe)
  3. lancez le simulateur (menu: xCode- > Open Developer Tool-> iOS Simulator) et attendez qu'il soit chargé
  4. commutateur wifi réseau à l'autre
  5. bénéfice

Le bug est que le simulateur essaie d'utiliser un réseau (IP?) qui n'est pas déjà connectée.

Jusqu'à ce que vous relanciez simulateur - il n'aura pas internet (même si ce premier réseau wifi que vous avez connecté avait une connexion internet), de sorte que vous pouvez exécuter (cmd-R) et arrêter (cmd -.) projet(s) à utiliser simulateur sans connexion, mais votre Mac sera connecté.

Ensuite, si vous devez exécuter simulator connected-il suffit de quitter et de le lancer.

0
répondu iGore 2015-01-28 11:44:28

Vous pouvez utiliser le conditionneur de liaison réseau sur votre Mac. Vous pouvez le télécharger sur le site Web du développeur apple. Il devrait être disponible là où nous obtenons les anciennes versions de Xcode et iOS. Avec ce conditionneur de réseau, vous pouvez changer la force du réseau de wifi à aucun réseau.

Aussi, lorsque vous installez le conditionneur réseau, il est installé dans les préférences système.

0
répondu Astha Trivedi 2016-02-13 21:14:41

Il ya deux moyen de désactiver Simulateur IOS internet:

  • Débranchez votre connexion réseau
  • désactiver le Wi-Fi

C'est le moyen le plus simple

0
répondu Daniel Beltrami 2018-09-29 14:10:13