Тестирование подключения к IPhone: как заставить его потерять соединение?

Apple хочет, чтобы я дал пользователю дружеские извинения, если я не могу найти интернет-соединение. Используя демонстрацию Reachability Demo, это было достаточно просто. Я хочу сделать еще один шаг и следить за потерей соединения. Демонстрация имеет эту функциональность, но я не могу понять, как закрыть мое соединение, чтобы проверить, работает ли оно.

Как я могу имитировать потерю (или фактически потерять) соединение?

Ответы

Ответ 1

Если вы разрабатываете iPhone Simulator, просто отключите компьютер от Интернета. Если ваш компьютер не имеет доступа к сети, ни iPhone-симулятор не работает.

Чтобы протестировать устройство, вы можете сделать следующее:

Сначала настройте WiFi-маршрутизатор, который вы можете использовать для тестирования.

Вы можете включить режим полета на телефоне, а затем снова включить WiFi. Это предотвратит доступ 3G-соединения к доступу к данным.

Запустите приложение. Теперь вы можете просто отключить Wi-Fi-маршрутизатор, чтобы имитировать потерю подключения.

Ответ 2

Вы можете использовать панель предпочтений SpeedLimit для имитации латентности сети под симулятором. И здесь версия командной строки, построенная поверх команды ipfw.

Преимущество в том, что вы просто дергаете шнур или убиваете Wi-Fi, - это то, что вы можете указать скорость при попадании на определенные хосты, чтобы ее можно было использовать для тестирования, не убивая ваши обычные сетевые службы.

Ответ 3

Вы можете установить Apple Network Link Conditioner

В Йосемите:

Network Link Conditioner можно найти в пакете "Оборудование IO Tools for Xcode". Его можно загрузить с страницы загрузки разработчиков Apple. После завершения загрузки откройте DMG и дважды щелкните "Network Link Condition.prefPane" для установки (source).

С помощью этой панели настроек вы можете создать профиль со скоростью 0 Кбит/с.

Network Link Conditioner

В старых версиях OSX:

Горный лев/Маверикс: Xcode > Open Developer Tool > More Developer Tools
Лев: /Developer/Applications/Utilities/Network Link Conditioner

Ответ 4

Для тестирования в симуляторе я использую Little Snitch. Это очень полезное приложение для написания правил относительно того, что может общаться с внешним миром и как долго.

Он также уведомит вас, если приложение хочет получить доступ к Интернету "на лету", и вы можете временно ограничить доступ для этого времени, этого сеанса или навсегда.

Что касается тестирования на устройстве, я регистрируюсь на своем беспроводном маршрутизаторе и временно отключаю сеть или включаю ограничение по MAC-идентификатору в течение всего теста.

Ответ 5

Используйте Карл Веб-прокси Вы можете проверить все запросы HTTP/S, отправляемые вашим приложением, и полученные ответы, дроссельное соединение для имитации любой скорости сети. Создайте собственный профиль дроссельной заслонки под названием "Disconnected" с Bandwidth = 0, чтобы имитировать сетевые отключения.

Ответ 6

Возможно, эта область предпочтений также полезна для вас: SpeedLimit.prefPane она не может потерять соединение, но вы можете замедлить ее на основе хоста и порта, который вы пытаетесь достичь.

Ответ 7

Поиск аналогичных потребностей, то есть имитация сетевого соединения с потерей Wi-Fi на реальном устройстве, я понял, как это сделать:) Я подключил свой MacBook Pro к ethernet и поделился своим Wi-Fi-соединением с устройством. Используя Apple Network Link Conditioner Prefpane, позвольте мне сыграть с качеством соединения. Очень полезно имитировать 3G, Edge и другие скорости передачи.

Следующий шаг: найти и купить адаптер Wi-Fi wifi, работающий на MAC OS X, чтобы позволить нам всем (команда разработчиков) протестировать без подключения каждого компьютера к сети.

Надеюсь, это поможет некоторым из вас.