2011-02-07 5 views
2

Мы находимся в процессе разработки метода кэширования, чтобы наше приложение продолжало работать в области с очень маленьким/отсутствующим сигналом. Очевидно, пользователи будут пытаться продолжать использовать функции, требующие данных, и нам необходимо соответствующим образом справиться с неизбежным сбоем этих запросов.Использует режим самолета - приемлемый способ проверить отсутствие соединения?

По существу, мы сидим в офисе, включаем и выключаем режим полета, чтобы имитировать входной/выходной сигнал, а затем корректировать наше приложение, чтобы исправить любые проблемы, которые могут возникнуть.

Что я хотел бы знать, использует режим самолета, чтобы дать нам разумную симуляцию ввода/выхода из области без данных или других последствий?

Я видел questions поднимать вопрос о том, что подключение 3G/EDGE не всегда может проснуться после режима самолета включен - в то время как я ценю этот метод не никакого способа так же хорошо, как на самом деле быть в поле если мы сможем получить разумную симуляцию и учитывать большинство возникающих проблем, то я думаю, что это приемлемый компромисс.

Я прошу прощения, если это было задано раньше, я сделал поиск здесь & на google, но не смог найти подходящих результатов.

ответ

6

Вы должны попробовать Network Link Conditioner

enter image description here

Существует сессия WWDC 2012 называется Networking Best Practices, что говорит об этом (но он не объясняет, как использовать его там).


Чтобы получить его, вы должны пойти в XCode/Open Developer Tool/More Developer Tools.. и загрузить последнюю Tools Hardware IO для XCode.

enter image description here

После того, как вы установите его из инструментов упак IO, «Network Link Conditioner» появится в System Preferences

Вы можете сделать что-то вроде 100% потери пакетов для имитации один из этих маршрутизаторов, притворяется, что вы подключены, но на самом деле не работает.

enter image description here

КСН, сеть ссылка кондиционер находится под Settings/Developer (вы должны включить режим разработчика в XCode первым, чтобы увидеть его)

3

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

+0

Я попытался ограничить пропускную способность с помощью различных программ, но имели ограниченный успех. Я чувствую, что это может быть связано с тем, что я использую OS X 10.6 Server edition? – Luke

+0

Не знаю, извините. Вытягивание вилки на маршрутизаторе должно быть достаточно близко, но лучше, чем в режиме полета. – zoul

+0

Я в настоящее время удаленный рабочий стол в Mac через машину Windows, поэтому мы решили просто включить некоторые правила брандмауэра, которые не позволяют подключаться к Интернету, похоже, работают так же хорошо. Благодарю. – Luke

2

Несколько лет назад, при тестировании удаленных устройств, которые использовали сотовую сеть для связи с «домашней базой» мы делали такие вещи, как перенос их в экранированную комнату (сдвиг), размещайте большие щиты на трех из четырех сторон, чтобы заставить их подключиться к определенной башне (и, следовательно, к сети) и т. д. Грубая сила физические методы. Поскольку это фактически отключает сигнал, это может быть более реалистичный подход.

+0

Это блестящая идея - поскольку мы разрабатываем исключительно для iphone 4 (это корпоративное приложение, поэтому обратная совместимость не проблема), мы могли бы использовать использование «Death Grip». благодаря – Luke

1

Вы также можете попробовать это через ваш маршрутизатор wlan. Во-первых, отключите роуминг данных на вашем iPhone. Затем пусть iPhone будет подключен к Интернету через вашу сеть wlan. Затем отключите шлюз на своем маршрутизаторе wlan, пока ваш iPhone все еще подключен к сети wlan.

1

Это зависит от того, какие режимы отказа вы пытаетесь протестировать.

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

Другие проверки обработки отказов сети не могут включать в себя:

  • 3G только (без WiFi).
  • WIFI только (в самолете).
  • Подтянуть шнур питания в точке доступа WIFI.
  • Отсоединение сетевого кабеля от задней части точки доступа WIFI после подключения к нему (допустимость может ложно сказать «да»).
  • Прогулка в подвале лифт (или другая клетка Фарадея) в середине передачи.
  • Вождение между 2 ячеистыми башнями во время передачи данных.
  • Прогулка между двумя доступными точками доступа WIFI между соединением и передачей данных.
  • Запуск приложения после более 30 минут бездействия устройства (радиоприемники могут быть бездействующими).
  • Запуск приложения, когда другое приложение (Safari, Mail) загружается в фоновом режиме.
  • т.д.
Смежные вопросы