Чи є спосіб уповільнити підключення до Інтернету до iPhone Simulator, щоб імітувати, як додаток може реагувати, коли ви знаходитесь у повільному місці стільникової мережі?
Чи є спосіб уповільнити підключення до Інтернету до iPhone Simulator, щоб імітувати, як додаток може реагувати, коли ви знаходитесь у повільному місці стільникової мережі?
Відповіді:
Failed to set speed limit
Ці інструкції діють станом на жовтень 2019 року.
Попередження: Якщо ви тільки що оновили до нової версії macOS, переконайтеся, що ви встановили найновіший мережевий кондиціонер ( у Додаткових інструментах для Xcode ), інакше він може мовчки вийти з ладу ; тобто увімкніть його, але він нічого не придушить і не скине жодних пакетів.
Оновлення: станом на Xcode 11 може бути ще простіший спосіб імітувати мережеві умови на прив'язаних пристроях; дивіться цю публікацію в блозі . Про те, як впливати на модельовані пристрої, продовжуйте нижче, як і раніше.
Встановіть Xcode, якщо у вас його немає.
Відкрийте Xcode та перейдіть до Xcode ›Відкрити інструмент для розробників› Інші інструменти для розробників…
Завантажте додаткові інструменти для Xcode (відповідно до вашої поточної версії Xcode)
Відкрийте завантажене зображення диска та двічі клацніть на панелі Network Link Conditioner .prefpane в розділі "Обладнання", щоб встановити його.
Там ми йдемо!
Обов’язково ввімкніть його. Вам потрібно вибрати профіль і включити мережевий кондиціонер з великим перемиканням, яке повинно бути знайоме з попередньої панелі Time Machine.
Це не вплине на localhost, тому не забудьте скористатися сервісом, що керує, або комп’ютером колеги для імітації повільних мережевих підключень до API, який ви працюєте самостійно. Ви можете знайти https://ngrok.com/ корисний у цьому плані.
"Для цього є додаток!" ;) Apple пропонує панель уподобань "Network Link Conditioner", що виконує цю роботу досить добре.
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)
Xcode
-> Open Developer Tool
-> More Developer Tools...
, увійдіть, знайдіть останній архів, завантажте, скопіюйте файли кудись, двічі клацніть на панелі налаштувань Network Conditioner, а потім встановіть її. ... так!
Варто також зазначити, що Xcode також має вбудований спосіб для пристроїв , а не тренажерів.
cmmd+shift+2
)Для цього потрібно встановити "Кондиціонер мережевих посилань". Дивіться кроки, згадані у відповіді Алана
Існує не прямий спосіб емуляції повільного з'єднання, на відміну, скажімо, від приємного емулятора мережевого підключення, яким користуються розробники blackberry. Однак, оскільки підключення вашого тренажера проходить через ваш комп’ютер - ви можете просто зосередитись на уповільненні підключення комп'ютера.
Ви хочете досягти двох речей (залежно від ваших обставин):
Можливо, це вкаже на вас у правильному напрямку:
http://www.macosxhints.com/article.php?story=20080119112509736
Є і хороші рішення з відкритим кодом, але я не можу запам'ятати їх імена.
Це питання може допомогти: Як придушити мережевий трафік для моделювання навколишнього середовища?
Я можу стверджувати, що повільного з’єднання недостатньо для імітації поведінки мережі мобільної передачі даних в реальному часі - оскільки також є набагато більше втрат пакетів, більші затримки та більше відхилених зв’язків.
Ось зручний сценарій для налаштування брандмауера для емуляції цих параметрів:
http://pmilosev-notes.blogspot.com/2011/02/ios-simulator-testing-over-different.html