iPhone Simulator - імітуйте повільний зв'язок?


125

Чи є спосіб уповільнити підключення до Інтернету до iPhone Simulator, щоб імітувати, як додаток може реагувати, коли ви знаходитесь у повільному місці стільникової мережі?


Відповідь Алана слід прийняти.
Станіслав Майоров

@StanislavMayorov це питання з 9 років тому. Тоді Алан дав оновлену відповідь через 4 роки. Зараз це 5 років після цього. Вибачте, я не переживаю і переглядаю прийняті відповіді на свої старі запитання.
Кріс

Відповіді:


67

Додаток під назвою SpeedLimit

https://github.com/mschrag/speedlimit

Чудово працює.

Крис.


чудово щойно спробував це, і це робить свій бізнес. Дякую!
Макс Маклеод

Йосеміт: не вдалося встановити обмеження швидкості
Injectios

2
Зламаний, там сказаноFailed to set speed limit
vintagexav

1
Правильний спосіб зробити це пояснюється Alan H. відповідь .
lifeisfoo

"Я більше не можу підтримувати цей проект. Будь ласка, не соромтеся роздвоюватися та брати на себе право власності."
катанора

261

Як встановити кондиціонер мережі Network Apple

Ці інструкції діють станом на жовтень 2019 року.

Попередження: Якщо ви тільки що оновили до нової версії macOS, переконайтеся, що ви встановили найновіший мережевий кондиціонер ( у Додаткових інструментах для Xcode ), інакше він може мовчки вийти з ладу ; тобто увімкніть його, але він нічого не придушить і не скине жодних пакетів.

Оновлення: станом на Xcode 11 може бути ще простіший спосіб імітувати мережеві умови на прив'язаних пристроях; дивіться цю публікацію в блозі . Про те, як впливати на модельовані пристрої, продовжуйте нижче, як і раніше.

  1. Встановіть Xcode, якщо у вас його немає.

  2. Відкрийте Xcode та перейдіть до Xcode ›Відкрити інструмент для розробників› Інші інструменти для розробників…

    Знімок екрана навігації по меню, як описано

  3. Завантажте додаткові інструменти для Xcode (відповідно до вашої поточної версії Xcode)

    Посилання для завантаження додаткових інструментів IO

  4. Відкрийте завантажене зображення диска та двічі клацніть на панелі Network Link Conditioner .prefpane в розділі "Обладнання", щоб встановити його.

    панель pref в DMG

    системні налаштування, що показують підказку про встановлення

  5. Там ми йдемо!

    Знімок екрана панелі налаштувань

  6. Обов’язково ввімкніть його. Вам потрібно вибрати профіль і включити мережевий кондиціонер з великим перемиканням, яке повинно бути знайоме з попередньої панелі Time Machine.

    введіть тут опис зображення

Caveat

Це не вплине на localhost, тому не забудьте скористатися сервісом, що керує, або комп’ютером колеги для імітації повільних мережевих підключень до API, який ви працюєте самостійно. Ви можете знайти https://ngrok.com/ корисний у цьому плані.


6
для Xcode 8 це включено у "Додаткові інструменти для Xcode 8" (замість "Апаратні засоби IO Інструменти для Xcode")
Mohit Singh

1
@MohitSingh Дякую Я оновив відповідь вище.
Алан Х.

1
Дивовижний! Дякую.
Томас Кальмон

1
Здається, немає додаткових інструментів для Xcode 10.3?
Лев

1
@leo, просто використовуйте поточні Додаткові інструменти для основної вашої версії Xcode. Наприклад, використовуйте Додаткові інструменти для Xcode 11, якщо у вас встановлений Xcode 11.1 .
Алан Х.

81

"Для цього є додаток!" ;) Apple пропонує панель уподобань "Network Link Conditioner", що виконує цю роботу досить добре.

  • для версій Xcode до 4.3, інсталятор панелі можна знайти у вашій Developerпапці, наприклад "/Developer/Applications/Utilities/Network Link Conditioner", після встановлення, якщо демон не запускається і ви не хочете перезавантажувати машину, просто використовуйте sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
  • якщо ви вже виконали Developerпапку, ви можете встановити панель як частину пакету "Апаратні засоби IO для Xcode", доступного через розділ додаткових завантажень Mac Dev Center.

Посилання на сторінку завантаження (ви повинні увійти за допомогою свого ідентифікатора Apple): https://developer.apple.com/downloads/index.action
(кредити @nverinaud)


2
Ось посилання для перегляду доступних завантажень: developer.apple.com/downloads/index.action
nverinaud

2
не працює на Mountain Lion ... stackoverflow.com/questions/12414676 / ...
Zack

Було б добре, якби це було специфічним для додатків, а не для всього комп’ютера
Чарльз Джон Томпсон III,

3
Ви можете завантажити "Інструменти апаратного вводу-виводу" з сайту інструментів для розробників Apple. Вони оновлюють його для нових випусків Xcode (і, отже, OSX). У Xcode натисніть Xcode-> Open Developer Tool-> More Developer Tools..., увійдіть, знайдіть останній архів, завантажте, скопіюйте файли кудись, двічі клацніть на панелі налаштувань Network Conditioner, а потім встановіть її. ... так!
i_am_jorf

Я думаю, не працює для Йосеміті. Я встановив це на "втрату", але насправді різниці не отримав
Injectios

2

Варто також зазначити, що Xcode також має вбудований спосіб для пристроїв , а не тренажерів.

  • Просто перейдіть у розділ "Пристрої та симулятор" ( cmmd+shift+2)
  • Виберіть свій пристрій
  • Прокрутіть униз до того, як знайдете "Умови пристрою"
  • Встановіть потрібний профіль
  • Натисніть Старт

введіть тут опис зображення

Для цього потрібно встановити "Кондиціонер мережевих посилань". Дивіться кроки, згадані у відповіді Алана


0

Існує не прямий спосіб емуляції повільного з'єднання, на відміну, скажімо, від приємного емулятора мережевого підключення, яким користуються розробники blackberry. Однак, оскільки підключення вашого тренажера проходить через ваш комп’ютер - ви можете просто зосередитись на уповільненні підключення комп'ютера.

Ви хочете досягти двох речей (залежно від ваших обставин):

  • зменшити пропускну здатність
  • збільшити затримку

Можливо, це вкаже на вас у правильному напрямку:

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

Є і хороші рішення з відкритим кодом, але я не можу запам'ятати їх імена.

Це питання може допомогти: Як придушити мережевий трафік для моделювання навколишнього середовища?


0

Я можу стверджувати, що повільного з’єднання недостатньо для імітації поведінки мережі мобільної передачі даних в реальному часі - оскільки також є набагато більше втрат пакетів, більші затримки та більше відхилених зв’язків.

Ось зручний сценарій для налаштування брандмауера для емуляції цих параметрів:

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


2
Кондиціонер мережевих посилань (інструмент від Apple, який встановлюється як панель переваг) імітує повільні з'єднання, втрату пакету та затримку.
n00neimp0rtant

Кондиціонер мережевих посилань, доданий в OS X Lion (вийшов у липні 2011 року), робить такі сценарії непотрібними.
Нік Доуелл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.