Я пытаюсь отладить некоторые противоречивые поведения, которые я вижу в приложении, которое получает свои первичные данные из Интернета. Я не вижу проблем в симуляторе, только на устройстве, поэтому я хотел бы воспроизвести среду сети и подключения в симуляторе.
Есть ли способ отключить сеть в симуляторе?
(Я подключаюсь к Mac удаленно, чтобы кодировать, другого выбора сейчас нет, поэтому отключение сети ОС не вариант).
ios
iphone
debugging
networking
ios-simulator
Пол Хаммонд
источник
источник
Ответы:
Боюсь, что нет - симулятор использует любое сетевое соединение, которое использует ОС. Некоторое время назад я отправил отчет об ошибке радара о симуляции состояния сети; Вы могли бы рассмотреть возможность сделать то же самое.
источник
Используйте простую клетку Фарадея, чтобы заблокировать или ограничить уровень внешнего радиосигнала.
Вы можете сделать свой собственный с алюминиевой фольгой. Отверстия должны быть меньше длины волны вашей службы данных, если это то, что вы хотите заблокировать.
800 МГц имеет длину волны 37 см (14 дюймов), 1900 МГц имеет длину волны 16 см (6 дюймов).
Это работает лучше с реальным устройством, чем с симулятором, так как на Mac трудно работать в клетке Фарадея ;-)
источник
Да. В XCode вы можете перейти к
Xcode
пункту меню ->Open Developer Tools
->More Developer Tools
и скачать « Дополнительные инструменты для XCode », который будет иметь Network Link Conditioner.Используя этот инструмент, вы можете моделировать различные сетевые сценарии (например, 100% потери, 3G, DNS с высокой задержкой и т. Д.), А также можете создавать свои собственные.
источник
Я знаю, что единственный способ отключить сеть на симуляторе iOS - использовать такие инструменты, как Little Snitch или Hands Off . С их помощью вы можете запретить / заблокировать любые входящие и исходящие сетевые подключения. Вы можете настроить его так, чтобы он блокировал только соединения из приложения симулятора. Работает как брандмауэр.
источник
Просто отключите ваш WiFi в Mac OSX, это работает удовольствие!
источник
Скачать пакет дополнительных инструментов (Network Link Conditioner)
Описание
Пример в Сьерре:
источник
Просто обновляем ответ на текущую дату. Начиная с XCode 4 (?) В
/Applications/Utilities
вызываемой панели есть панель настроекNetwork Link Conditioner
. Либо вы используете один из существующих профилей, либо вы создаете свой собственный профиль с 0 кбит / с Up / Downlink и 100% отбрасыванием.источник
Network Link Conditioner
это официальный инструмент Apple, и он абсолютно бесплатный по сравнению сLittle Snitch
илиHands Off
.Поскольку XCode не предоставляет такую функцию, вам определенно понадобится стороннее приложение / инструмент. Выключение сети MAC также поможет отключить сеть iOS Simulator.
Вы можете отключить свой MAC-интернет от "
System Preferences...
"> "Network
" и отключить нужный сетевой источник.Чтобы отключить ваш интернет-источник MAC Ethernet:
Чтобы отключить ваш интернет-источник MAC WiFi (если ваш MAC подключен к сети Wi-Fi):
источник
Вы можете ограничить интернет-соединение с помощью стороннего приложения, такого как
Чарльз: http://www.charlesproxy.com/
Нажмите Ctrl + Shift + T на Mac, чтобы настроить регулирование.
источник
Одна, вероятно, сумасшедшая идея или патч:
Просто переключите флаг доступности сети
Это код , который я использую , чтобы переключить мое время выполнения флага, запуская «Предупреждение Тренажер памяти» и его полностью безопасным, просто убедитесь , что код должен находиться в режиме отладки только
источник
false
- отличная идея. Нет установки, и я могу продолжать работать удаленно! Спасибо.isInternetAvailable
определено ?!Вы можете использовать Little Snitch, чтобы отключить сетевой трафик для любого отдельного процесса, включая те, которые выполняются на симуляторе iOS. Таким образом, вы можете сохранить подключение к Интернету и отключить работающее приложение.
источник
С Xcode 8.3 и iOS 10.3:
Не забудьте указать
@available(iOS 10.3, *)
в верхней части файла набора тестов.Вы также можете «Включить режим полета», если хотите.
Как только Siri выключит Wi-Fi или включит режим полета, вам нужно будет закрыть диалоговое окно Siri, в котором говорится, что Siri требует Интернет. Это достигается нажатием кнопки «Домой», которая закрывает диалог и возвращает в ваше приложение.
источник
Есть два способа отключить интернет IOS Simulator:
Это самый простой способ
источник
Если ваше приложение подключается к определенному домену, вы можете просто добавить его в свой
/etc/hosts
файл и направить его на несуществующий IP-адрес в локальной сети ... Для приложения это будет так же, как если бы не было подключения к Интернету или сервер недоступендобавьте следующую строку:
или используйте,
127.0.0.1
если вы не используете веб-сервер на локальном компьютере.источник
Вы можете использовать OHHTTPStubs и заблокировать сетевые запросы на определенные URL-адреса для сбоя.
источник
Простое решение - создать режим полета для вашего Mac. Вот как это сделать:
Если вы хотите снова включить сеть, просто выберите «Автоматически» в раскрывающемся меню «Расположение» и нажмите «Применить».
источник
Я бы предложил вам использовать приложение Charles Proxy на Mac
Это позволяет использовать
Bandwidth Throttle
функцию, которая была создана только для настройки сетевого подключенияЗвезд / Стоп Дросселирование ⌘ command+ T
Настройки Дросселя ... ⌘ command+ T+⇧ shift
источник
вместо этого вы можете отключить сеть хоста!
источник
Если у вас есть как минимум 2 сети Wi-Fi для подключения, очень просто использовать ошибку в симуляторе iOS:
Ошибка в том, что симулятор пытается использовать сеть (IP?), Которая еще не подключена.
Пока вы не перезапустите симулятор - у него не будет интернета (даже если у той первой сети Wi-Fi, к которой вы подключились, было подключение к интернету), поэтому вы можете запускать (cmd-R) и останавливать (cmd-) проекты, чтобы использовать симулятор без подключения, но ваш Mac будет подключен.
Затем, если вам нужно запустить подключенный симулятор - просто выйдите и запустите его.
источник
Вы можете использовать сетевой кондиционер на вашем Mac. Вы можете скачать его с сайта разработчика Apple. Он должен быть доступен там, где мы получим более старые версии Xcode и iOS. С помощью этого сетевого кондиционера вы можете изменить мощность сети с Wi-Fi на отсутствие сети.
Также при установке сетевого кондиционера он устанавливается в системных настройках.
источник