IPhone Simulator - Имитировать медленное соединение?

Есть ли способ замедлить интернет-соединение с iPhone Simulator, чтобы имитировать, как приложение может реагировать, когда вы находитесь в медленном месте в сотовой сети?

Ответ 2

Как установить Apple Link Link Conditioner

Инструкции, действующие с 4 ноября 2016 года - macOS Sierra 10.12.
Предупреждение. Если вы только что обновили до macOS Sierra, убедитесь, что вы установили самый последний сетевой кондиционер (в дополнительных инструментах для Xcode 8.2), или молчал; то есть вы включите его, но он не будет дросселировать что-либо или отказаться от каких-либо пакетов.

  • Установите Xcode, если у вас его нет

  • Откройте XCode и перейдите в Xcode > Открыть инструмент разработчикa > Другие инструменты для разработчиков...

    Screen shot of navigating the menu as described

  • Загрузите Дополнительные инструменты для Xcode

    Additional IO Tools download link

  • Откройте загруженный образ диска и дважды щелкните файл .prefpane, чтобы установить его.

    pref pane in DMG

    system preferences showing installation prompt

  • Мы идем!

    Screen shot of the preference pane

  • Обязательно включите его. Вам нужно выбрать профиль и включить сетевой кондиционер с помощью большого переключателя, который должен быть знаком с префайлом Time Machine.

    enter image description here

Caveat

Это не повлияет на localhost, поэтому обязательно используйте промежуточный сервер или компьютер для совместной работы медленных сетевых подключений к API, который вы используете самостоятельно. Вы можете найти https://ngrok.com/ в этом отношении.

Ответ 3

"Там есть приложение для этого!";) 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 Tools for Xcode", доступного через раздел дополнительных загрузок Mac Dev Center.

Ссылка на страницу загрузки (вы должны войти в систему с вашим Apple ID): https://developer.apple.com/downloads/index.action
(кредиты @nverinaud)

Ответ 4

Нет прямого способа эмулировать медленное соединение, в отличие от, скажем, приятного эмулятора сетевого подключения, которым пользуются разработчики BlackBerry. Однако, поскольку ваше симуляторное соединение проходит через ваш компьютер - вы можете просто сосредоточиться на замедлении вашего подключения к компьютеру.

Вам нужно добиться двух вещей (в зависимости от ваших обстоятельств):

  • дросселировать вашу полосу пропускания
  • увеличить задержку

Возможно, это укажет вам в правильном направлении:

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

Есть и хорошие решения с открытым исходным кодом, но я так не помню их имен.

Этот вопрос может помочь: Как отключить сетевой трафик для моделирования окружающей среды?

Ответ 5

Я бы сказал, что медленного соединения недостаточно, чтобы имитировать поведение мобильной сети реальной работы - так как там также гораздо больше потерь пакетов, более высокие задержки и больше отключенных соединений.

Вот удобный script, чтобы настроить брандмауэр для эмуляции этих параметров:

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