iPhone Simulator - Simuler une connexion lente?

125

Existe-t-il un moyen de ralentir la connexion Internet au simulateur d'iPhone, de manière à imiter la réaction de l'application lorsque vous vous trouvez dans un endroit lent sur le réseau cellulaire?

Chris
la source
La réponse d'Alan devrait être acceptée.
Stanislav Mayorov le
@StanislavMayorov cette question remonte à 9 ans. Alan a ensuite donné une réponse mise à jour 4 ans plus tard. C'est maintenant 5 ans après ça. Désolé, je ne suis pas en train de revoir et de reconsidérer les réponses acceptées à mes anciennes questions.
Chris

Réponses:

67

Une application appelée SpeedLimit

https://github.com/mschrag/speedlimit

Fonctionne très bien.

chris.

PyjamaSam
la source
génial juste essayé et ça fait l'affaire. Merci!
Max MacLeod
Yosemite: impossible de fixer la limite de vitesse
Injectios
2
Cassé, il ditFailed to set speed limit
vintagexav
1
La bonne façon de le faire est expliquée par réponse Alan H. .
lifeisfoo
"Je ne suis plus en mesure de maintenir ce projet. N'hésitez pas à vous l'approprier."
catanore
261

Comment installer le conditionneur de lien réseau d'Apple

Ces instructions sont à jour en octobre 2019.

Avertissement: si vous venez de passer à la nouvelle version de macOS, assurez-vous d'installer le tout dernier conditionneur de réseau ( dans les outils supplémentaires pour Xcode ), sinon il peut échouer en silence ; c'est-à-dire que vous l'allumerez mais il ne ralentira rien et ne supprimera aucun paquet.

Mise à jour: à partir de Xcode 11, il peut y avoir un moyen encore plus simple de simuler les conditions du réseau sur des appareils connectés; voir ce billet de blog . Pour savoir comment affecter les appareils simulés , continuez ci-dessous, comme précédemment.

  1. Installez Xcode si vous ne l'avez pas.

  2. Ouvrez Xcode et accédez à Xcode ›Open Developer Tool› Plus d'outils de développement…

    Capture d'écran de la navigation dans le menu comme décrit

  3. Téléchargez des outils supplémentaires pour Xcode (correspondant à votre version actuelle de Xcode)

    Lien de téléchargement supplémentaire des outils IO

  4. Ouvrez l'image disque téléchargée et double-cliquez sur Network Link Conditioner .prefpane sous «Matériel» pour l'installer.

    volet pref dans DMG

    préférences système affichant l'invite d'installation

  5. On y va!

    Capture d'écran du volet des préférences

  6. Assurez-vous de l'activer. Vous devez sélectionner un profil et activer le conditionneur de réseau avec le gros bouton bascule qui devrait être familier dans le panneau de préfecture de Time Machine.

    entrez la description de l'image ici

Caveat

Cela n'affectera pas l'hôte local, alors assurez-vous d'utiliser un serveur intermédiaire ou l'ordinateur d'un collègue pour simuler des connexions réseau lentes à une API que vous exécutez vous-même. Vous trouverez peut-être https://ngrok.com/ utile à cet égard.

Alan H.
la source
6
pour Xcode 8, ceci est inclus dans "Additional Tools for Xcode 8" (au lieu de "Hardware IO Tools for Xcode")
Mohit Singh
1
@MohitSingh Merci. J'ai mis à jour la réponse ci-dessus.
Alan H.
1
Incroyable! Je vous remercie.
Thomás Calmon
1
Il ne semble pas y avoir d'outils supplémentaires pour Xcode 10.3?
Leo
1
@leo, utilisez simplement les outils supplémentaires actuels pour la version principale de Xcode que vous avez. Par exemple, utilisez des outils supplémentaires pour Xcode 11 si vous avez installé Xcode 11.1 .
Alan H.
81

"Il y a une application pour ça!" ;) Apple fournit le volet de préférences "Network Link Conditioner" qui fait très bien le travail.

  • pour les versions de Xcode antérieures à 4.3, le programme d'installation du volet se trouve dans votre Developerdossier, par exemple "/Developer/Applications/Utilities/Network Link Conditioner", après l'installation, si le démon ne démarre pas et que vous ne voulez pas redémarrer votre machine, utilisez simplement sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
  • si vous en avez déjà terminé avec le Developerdossier, vous pouvez installer le volet dans le cadre du package "Hardware IO Tools for Xcode" disponible via la section de téléchargements supplémentaires de Mac Dev Center.

Lien vers la page de téléchargement (vous devez vous connecter avec votre identifiant Apple): https://developer.apple.com/downloads/index.action
(crédits à @nverinaud)

matm
la source
2
Voici un lien pour parcourir les téléchargements disponibles: developer.apple.com/downloads/index.action
nverinaud
2
ne fonctionne pas sur Mountain Lion ... stackoverflow.com/questions/12414676/…
zack
Ce serait bien si c'était spécifique à l'application, et pas pour tout l'ordinateur
Charles John Thompson III
3
Vous pouvez maintenant télécharger "Hardware IO Tools" sur le site des outils de développement d'Apple. Ils le mettent à jour pour les nouvelles versions de Xcode (et donc OSX): Dans Xcode, cliquez sur Xcode-> Open Developer Tool-> More Developer Tools..., connectez-vous, recherchez la dernière archive, téléchargez, copiez les fichiers quelque part, double-cliquez sur le volet de préférences du conditionneur de réseau, installez-le. . Yay!
i_am_jorf
Je suppose que cela ne fonctionne pas pour Yosemite. Je l'ai réglé sur «avec perte», mais je n'ai en fait aucune différence
Injectios
2

Il convient également de mentionner que Xcode a également un moyen intégré pour les appareils , pas le simulateur.

  • Allez simplement `` Appareils et simulateur '' ( cmmd+shift+2)
  • Sélectionnez votre appareil
  • Faites défiler vers le bas jusqu'à ce que vous trouviez «Conditions de l'appareil»
  • Définissez votre profil souhaité
  • Appuyez sur Démarrer

entrez la description de l'image ici

Pour que cela fonctionne, vous devez installer «Network Link Conditioner». Voir la mention des étapes dans la réponse d'Alan

Mon chéri
la source
0

Il n'y a pas de moyen direct d'émuler une connexion lente, contrairement, par exemple, au bel émulateur de connexion réseau que les développeurs de blackberry apprécient. Cependant, puisque la connexion de votre simulateur passe par votre ordinateur, vous pouvez simplement vous concentrer sur le ralentissement de la connexion de votre ordinateur.

Vous voudrez réaliser deux choses (selon votre situation):

  • réduisez votre bande passante
  • augmenter votre latence

Peut-être que cela vous orientera dans la bonne direction:

http://www.macosxhints.com/article.php?story=20080119112509736

Il existe également de bonnes solutions open source, mais je ne me souviens donc pas de leurs noms.

Cette question pourrait aider: Comment limiter le trafic réseau pour la simulation d'environnement?

JJ Rohrer
la source
0

Je dirais qu'une connexion lente n'est pas suffisante pour simuler le comportement réel du réseau de données mobile - car il y a aussi beaucoup plus de perte de paquets, des latences plus élevées et plus de connexions interrompues.

Voici un script pratique pour configurer le pare-feu pour émuler ces paramètres:

http://pmilosev-notes.blogspot.com/2011/02/ios-simulator-testing-over-different.html

Nick Dowell
la source
2
Network Link Conditioner (outil d'Apple qui s'installe en tant que volet de préférences) simule les connexions lentes, la perte de paquets et la latence.
n00neimp0rtant
Network Link Conditioner, ajouté dans OS X Lion (publié en juillet 2011), rend des scripts comme celui-ci inutiles.
Nick Dowell