J'essaie de déboguer un comportement incohérent que je constate dans une application dont les données primaires sont stockées sur Internet. Je ne vois pas les problèmes dans le simulateur, mais uniquement dans l'appareil. J'aimerais donc 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, pas d'autre choix pour le moment, donc la désactivation du réseau du système d'exploitation n'est pas une option).
Je crains que non - le simulateur partage la connexion réseau utilisée par le système d'exploitation. 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 la même chose.
Utilisez un simple cage de Faraday pour bloquer ou limiter le niveau du signal externe RF.
Vous pouvez fabriquer le vôtre avec du papier d'aluminium. Les ouvertures doivent être inférieures à la longueur d'onde de votre service de données si c'est ce que vous souhaitez bloquer.
800 MHz ont 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 il est difficile de travailler sur un Mac lorsqu'il se trouve dans la cage de Faraday ;-)
Oui. Dans Xcode, vous pouvez aller à Xcode
élément de menu -> Open Developer Tools
-> More Developer Tools
et télécharger " Outils supplémentaires pour Xcode ", qui aura le lien réseau Conditionneur.
À 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.
Le seul moyen de désactiver le réseau sur le simulateur iOS que je connaisse consiste à utiliser des outils tels que Little Snitch ou Hands Off . Avec eux, vous pouvez refuser/bloquer toutes les connexions réseau sortantes et entrantes. Vous pouvez le configurer pour qu'il bloque uniquement les connexions à partir de l'application de simulation. Fonctionne comme un pare-feu.
Il suffit de désactiver votre réseau Wi-Fi sous Mac OSX, cela fonctionne vraiment bien!
Téléchargement Package d'outils supplémentaires (Network Link Conditioner)
Juste mettre à jour la réponse à la date du jour. Depuis Xcode 4 (?), Il existe un volet de préférences dans /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 Uplink/Downlink et 100% abandonné.
Étant donné que Xcode ne fournit pas cette fonctionnalité, vous utiliserez certainement 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 connexion Internet MAC à partir de "System Preferences...
"> "Network
" et désactiver la source de réseau souhaitée.
Pour désactiver votre source Internet Ethernet MAC:
Pour éteindre votre source Internet WiFi MAC (si votre MAC est connecté à Internet par Wifi):
Une idée ou un patch probablement fou:
Il suffit de basculer l'indicateur d'accessibilité du résea
C’est ce code que j’utilise pour basculer l’exécution de mon drapeau en déclenchant 'Avertissement de la mémoire du simulateur' et son COMPLETELY SAFE, assurez-vous simplement que le code doit être en mode DEBUG seulement
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
#ifdef DEBUG
isInternetAvailable = !isInternetAvailable;
#endif
}
Vous pouvez étouffer 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 régulation.
Vous pouvez utiliser Little Snitch pour couper le trafic réseau vers tout processus individuel, y compris ceux exécutés sur le simulateur iOS. De cette façon, vous pouvez conserver votre connexion Internet et déconnecter votre application en cours d'exécution.
Avec Xcode 8.3 et iOS 10.3:
XCUIDevice.shared().siriService.activate(voiceRecognitionText: "Turn off wifi")
XCUIDevice.shared().press(XCUIDeviceButton.home)
Veillez à 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 Wi-Fi ou active le mode Avion, vous devez fermer le dialogue Siri qui indique que Siri nécessite Internet. Pour ce faire, appuyez sur le bouton d'accueil, ce qui ferme le dialogue et retourne à votre application.
Si votre application se connecte à un domaine spécifique, vous pouvez simplement l'ajouter à votre fichier /etc/hosts
et le router vers une adresse IP non existante de votre réseau local ... Pour l'application, ce sera la même chose que s'il y avait Il n'y avait pas de connexion Internet ou le serveur n'est pas accessible.
Sudo nano /etc/hosts
ajoutez la ligne suivante:
192.168.1.123 example.com
ou utilisez 127.0.0.1
si vous n'exécutez pas de serveur Web sur votre ordinateur local.
Vous pouvez utiliser OHHTTPStubs et stub les demandes de réseau à des URL spécifiques pour échouer.
Il y a deux moyen de désactiver IOS Internet simulateur:
C'est le moyen le plus simple
vous pouvez désactiver le réseau de l'hôte à la place!
Vous pouvez utiliser le conditionneur de liaison réseau sur votre Mac. Vous pouvez le télécharger à partir du site Web du développeur Apple. Il devrait être disponible là où se trouvent les anciennes versions de Xcode et iOS. Avec ce climatiseur de réseau, vous pouvez modifier la force du réseau de wifi à aucun réseau.
De plus, lorsque vous installez le climatiseur réseau, il est installé dans les préférences système.
Si vous avez au moins 2 réseaux wifi pour vous connecter est un moyen très simple d'utiliser un bug dans un 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 ayez relancé le simulateur, il n'aura pas Internet (même si le premier réseau wifi auquel vous vous êtes connecté disposait d'une connexion Internet). Vous pouvez donc exécuter (cmd-R) et arrêter (cmd-.) Projet (s) d'utiliser le simulateur sans connexion, mais votre Mac sera connecté.
Ensuite, si vous devez exécuter le simulateur connecté, quittez-le et lancez-le.
Une solution simple consiste à créer un mode avion pour votre Mac. Voici comment faire ceci:
Lorsque vous souhaitez réactiver le réseau, sélectionnez simplement Automatique dans le menu déroulant Emplacement, puis cliquez sur Appliquer.