Есть ли способ замедлить интернет-соединение с симулятором iPhone, чтобы имитировать реакцию приложения, когда вы находитесь в медленном месте в сотовой сети?
Есть ли способ замедлить интернет-соединение с симулятором iPhone, чтобы имитировать реакцию приложения, когда вы находитесь в медленном месте в сотовой сети?
Ответы:
Failed to set speed limit
Эти инструкции актуальны по состоянию на октябрь 2019 года.
Предупреждение: если вы только что обновились до новой версии macOS, убедитесь, что вы установили самую последнюю версию Network Conditioner ( в дополнительных инструментах для Xcode ), иначе он может потерпеть неудачу ; то есть вы включите его, но он ничего не дросселирует и не отбрасывает пакеты.
Обновление: Начиная с Xcode 11, может быть еще более простой способ имитировать состояние сети на привязанных устройствах; см. это сообщение в блоге . Чтобы узнать, как воздействовать на моделируемые устройства, продолжайте, как и раньше.
Установите Xcode, если у вас его нет.
Откройте Xcode и перейдите к Xcode ›Открыть инструмент разработчика› Дополнительные инструменты разработчика…
Загрузите дополнительные инструменты для Xcode (соответствующие вашей текущей версии Xcode)
Откройте загруженный образ диска и дважды щелкните .prefpane Network Link Conditioner в разделе «Оборудование», чтобы установить его.
Ну вот!
Обязательно включите. Вам нужно выбрать профиль и включить сетевой кондиционер с помощью большого переключателя, который должен быть знаком из предварительной панели 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
папкой, вы можете установить панель как часть пакета «Hardware IO Tools for Xcode», доступного в разделе дополнительных загрузок Mac Dev Center.Ссылка на страницу загрузки (вы должны войти в систему со своим Apple ID): https://developer.apple.com/downloads/index.action
(кредиты на @nverinaud)
Xcode
-> Open Developer Tool
-> More Developer Tools...
, войдите в систему, найдите последний архив, загрузите, скопируйте файлы куда-нибудь, дважды щелкните элемент панели настроек Network Conditioner, установите его .. . ура!
Также стоит упомянуть, что Xcode также имеет встроенный способ для устройств , а не для симулятора.
cmmd+shift+2
)Чтобы это работало, вам необходимо установить «Network Link Conditioner». См. Шаги, упомянутые в ответе Алана
Нет прямого способа имитировать медленное соединение, в отличие, скажем, от симпатичного эмулятора сетевого соединения, которым пользуются разработчики Blackberry. Однако, поскольку соединение вашего симулятора проходит через ваш компьютер, вы можете просто сосредоточиться на замедлении соединения вашего компьютера.
Вы захотите достичь двух вещей (в зависимости от ваших обстоятельств):
Возможно, это укажет вам правильное направление:
http://www.macosxhints.com/article.php?story=20080119112509736
Есть и хорошие решения с открытым исходным кодом, но я не могу вспомнить их названия.
Этот вопрос может помочь: как ограничить сетевой трафик для моделирования среды?
Я бы сказал, что медленного соединения недостаточно для имитации реального поведения мобильной сети передачи данных, поскольку также происходит гораздо больше потерь пакетов, более высокие задержки и больше разорванных соединений.
Вот удобный сценарий для настройки брандмауэра для эмуляции этих параметров:
http://pmilosev-notes.blogspot.com/2011/02/ios-simulator-testing-over-different.html