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, uniquement sur l'appareil, donc je voudrais reproduire l'environnement de réseau et de connectivité dans le simulateur.
Existe-t-il un moyen de désactiver le réseau dans le simulateur?
(Je me connecte au Mac à distance pour coder, aucun autre choix pour le moment, donc la désactivation du réseau OS n'est pas une option).
ios
iphone
debugging
networking
ios-simulator
Paul Hammond
la source
la source
Réponses:
Je crains que non: le simulateur partage la connexion réseau que le système d'exploitation utilise. J'ai déposé un rapport de bogue Radar sur la simulation des conditions du réseau il y a quelque temps; vous pourriez envisager de faire de même.
la source
Utilisez une simple cage de Faraday pour bloquer ou limiter le niveau du signal RF externe.
Vous pouvez faire votre propre 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 souhaitez 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 appareil réel qu'avec le simulateur car le Mac est difficile à travailler lorsqu'il est à l'intérieur de la cage de Faraday ;-)
la source
Oui. Dans Xcode, vous pouvez aller à l'
Xcode
élément de menu ->Open Developer Tools
->More Developer Tools
et télécharger " Outils supplémentaires pour Xcode ", qui aura le conditionneur de liaison réseau.En utilisant 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.
la source
La seule façon de désactiver le réseau sur le simulateur iOS 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 bloque uniquement les connexions de l'application de simulation. Fonctionne comme un pare-feu.
la source
Il suffit de désactiver votre WiFi dans Mac OSX, cela fonctionne un régal!
la source
Télécharger un ensemble d'outils supplémentaires (conditionneur de liaison réseau)
La description
Exemple dans Sierra:
la source
Il suffit de mettre à jour la réponse à la date actuelle. Depuis Xcode 4 (?), Un volet de préférences est
/Applications/Utilities
appeléNetwork Link Conditioner
. Soit vous utilisez l'un des profils existants, soit vous créez votre propre profil personnalisé avec 0 Kbps Up / Downlink et 100% abandonné.la source
Network Link Conditioner
c'est un outil officiel d'Apple, et il est totalement gratuit, par rapport àLittle Snitch
ouHands Off
.Étant donné que Xcode ne fournit pas une telle fonctionnalité, vous allez certainement opter pour une application / un outil tiers. La désactivation du réseau MAC aidera également à désactiver le réseau du simulateur iOS.
Vous pouvez désactiver votre MAC Internet à partir de "
System Preferences...
"> "Network
" et désactiver la source réseau désirée.Pour désactiver votre source Internet Ethernet MAC:
Pour désactiver votre source Internet WiFi MAC (si votre MAC est sur Internet Wifi):
la source
Vous pouvez limiter 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.
la source
Une idée ou un patch probablement fou:
Basculez simplement le drapeau de l'accessibilité du réseau
Il s'agit du code que j'utilise pour basculer le temps d'exécution de mon indicateur en déclenchant 'Simulator Memory Warning' et son COMPLETELY SAFE, assurez-vous simplement que le code doit être en mode DEBUG uniquement
la source
false
est une excellente idée. Aucune installation, et je peux continuer à travailler à distance! Je vous remercie.isInternetAvailable
défini?!Vous pouvez utiliser Little Snitch pour couper le trafic réseau vers n'importe quel processus individuel, y compris ceux qui s'exécutent sur le simulateur iOS. De cette façon, vous pouvez conserver votre connexion Internet et déconnecter votre application en cours d'exécution.
la source
Avec Xcode 8.3 et iOS 10.3:
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 fermer la boîte de dialogue Siri qui dit que Siri nécessite Internet. Pour ce faire, appuyez sur le bouton d'accueil, qui ferme la boîte de dialogue et revient à votre application.
la source
Il existe deux façons de désactiver Internet IOS Simulator:
C'est le moyen le plus simple
la source
Si votre application se connecte à un domaine spécifique, vous pouvez simplement l'ajouter à votre
/etc/hosts
fichier et l'acheminer vers une adresse IP non existante dans votre réseau local ... Pour l'application, ce sera la même que s'il n'y avait pas de connexion Internet ou le serveur n'est pas accessible.ajoutez la ligne suivante:
ou utilisez-le
127.0.0.1
si vous n'exécutez pas de serveur Web sur votre ordinateur local.la source
Vous pouvez utiliser OHHTTPStubs et bloquer les requêtes réseau vers des URL spécifiques pour échouer.
la source
Une solution simple consiste à créer un mode avion pour votre Mac. Voici comment procéder:
Lorsque vous souhaitez réactiver la mise en réseau, sélectionnez simplement Automatique dans le menu déroulant Emplacement, puis cliquez sur Appliquer
la source
Je vous suggère d'utiliser l' application Charles Proxy sur Mac
Il vous permet d'utiliser une
Bandwidth Throttle
fonctionnalité qui a été créée juste pour ajuster la connexion réseauStar / Stop Throttling ⌘ command+ T
Throttle Settings ... ⌘ command+ T+⇧ shift
la source
vous pouvez désactiver le réseau de l'hôte à la place!
la source
Si vous avez au moins 2 réseaux wifi à connecter c'est un moyen très simple d'utiliser un bug dans le simulateur iOS:
Le bogue est que le simulateur essaie d'utiliser un réseau (IP?) Qui n'est pas déjà connecté.
Jusqu'à ce que vous relanciez le simulateur, il n'aura pas d'Internet (même si le premier réseau wifi que vous avez connecté avait une connexion Internet), vous pouvez donc exécuter (cmd-R) et arrêter (cmd-.) Projet (s) pour utiliser le simulateur sans connexion, mais votre Mac sera connecté.
Ensuite, si vous devez exécuter le simulateur connecté, quittez-le et lancez-le.
la source
Vous pouvez utiliser le conditionneur de liaison réseau sur votre Mac. Vous pouvez le télécharger sur le site Web des développeurs 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.
De plus, lorsque vous installez le conditionneur de réseau, il est installé dans les préférences système.
la source