Тестирование подключения к 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, чтобы позволить нам всем (команда разработчиков) протестировать без подключения каждого компьютера к сети.
Надеюсь, это поможет некоторым из вас.