Можно ли отключить сеть в iOS Simulator?

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

Есть ли способ отключить сеть в симуляторе?

(Я подключаюсь к Mac удаленно к коду, сейчас нет другого выбора, поэтому отключить сеть ОС не вариант).

Ответ 1

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

Ответ 2

Используйте простую клетку Faraday, чтобы заблокировать или ограничить уровень внешнего радиочастотного сигнала.

Вы можете сделать свой собственный с алюминиевой фольгой. Если это то, что вы хотите заблокировать, отверстия должны быть меньше wavelength вашей службы данных.

800 МГц имеет длину волны 37 см (14 "), 1900 МГц имеет длину волны 16 см (6 ").

Это лучше работает с реальным устройством, чем с симулятором, так как Mac трудно работать, когда внутри клетки Фарадея; -)

enter image description here

Ответ 3

Да. В Xcode, вы можете перейти к Xcode пункт меню → Open Developer Tools для More Developer Tools Open Developer ToolsMore Developer Tools и скачать " Дополнительные инструменты для Xcode ", который будет иметь сетевой Link Conditioner.

Используя этот инструмент, вы можете моделировать различные сетевые сценарии (например, 100% потери, 3G, DNS с высокой задержкой и т.д.), А также можете создавать свои собственные.

Ответ 4

Единственный способ отключить сеть на симуляторе iOS, который я знаю, - это использовать такие инструменты, как Little Snitch или Hands Off. С их помощью вы можете запретить/заблокировать любые входящие и входящие сетевые подключения. Вы можете настроить его так, чтобы он блокировал только соединения из приложения-симулятора. Работает как брандмауэр.

Ответ 5

Просто отключите Wi-Fi в Mac OSX, это работает!

Ответ 7

Просто обновите ответ на текущую дату. Так как Xcode 4 (?) Есть панель предпочтений в /Applications/Utilities, называемая Network Link Conditioner. Либо вы используете один из существующих профилей, либо создаете свой собственный профиль с 0 Кбит/с Up/Downlink и 100% -ным снижением.

Ответ 8

Так как Xcode не предоставляет такую ​​функцию, вы обязательно пойдете на стороннее приложение/инструмент. Отключение сети MAC также поможет отключить сеть iOS Simulator.

Вы можете отключить свой MAC-интернет от "System Preferences..." > "Network" и отключить источник сети желаний.

Чтобы отключить ваш интернет-источник MAC Ethernet: Источник сети EtherNet

Чтобы отключить ваш интернет-источник MAC WiFi (если ваш MAC находится в Интернете Wifi): введите описание изображения здесь

Ответ 9

Вы можете отключить интернет-соединение с сторонним приложением, например

Чарльз: http://www.charlesproxy.com/

Нажмите команду + shift + T на Mac, чтобы настроить дросселирование.

Ответ 10

Вероятно, сумасшедшая идея или патч:

Просто переключите флаг доступности сети

Это код, который я использую для переключения времени выполнения флага с помощью запуска "Предупреждение памяти симулятора" и его ПОЛНОСТЬЮ БЕЗОПАСНО, просто убедитесь, что код должен находиться в режиме DEBUG только

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application 
{
#ifdef DEBUG
    isInternetAvailable = !isInternetAvailable;
#endif 
}

Ответ 11

Вы можете использовать Little Snitch, чтобы отключить сетевой трафик на любой отдельный процесс, в том числе на симуляторе iOS. Таким образом, вы можете поддерживать подключение к Интернету и отключать свое приложение.

Ответ 12

С Xcode 8.3 и iOS 10.3:

XCUIDevice.shared().siriService.activate(voiceRecognitionText: "Turn off wifi")
XCUIDevice.shared().press(XCUIDeviceButton.home)

Обязательно включите @available(iOS 10.3, *) в начало файла вашего тестового набора.

В качестве альтернативы вы можете включить "Включить режим полета", если хотите.

Как только Сири отключит Wi-Fi или включит режим самолета, вам нужно будет отменить диалог Siri, в котором говорится, что Сири требует Интернета. Это достигается нажатием кнопки "домой", которая отклоняет диалог и возвращается в ваше приложение.

Ответ 13

Есть два способа отключить интернет IOS Simulator:

  • Отключите ваше сетевое соединение
  • Выключить Wi-Fi

Это самый простой способ

Ответ 14

Вы можете использовать OHHTTPStubs и отключить сетевые запросы к определенным URL-адресам.

Ответ 15

Если ваше приложение подключается к определенному домену, вы можете просто добавить его в файл /etc/hosts и направить его на несуществующий IP-адрес в локальной сети... Для приложения оно будет таким же, как если бы оно было нет подключения к интернету или сервер не доступен.

sudo nano /etc/hosts

добавьте следующую строку:

192.168.1.123   example.com

или используйте 127.0.0.1 если вы не используете веб-сервер на локальном компьютере.

Ответ 16

вместо этого вы можете отключить сеть хоста!

Ответ 17

Простое решение - создать режим полета для вашего Mac. Вот как это сделать:

  • зайдите в Сеть в Системных настройках
  • нажмите на выпадающее меню Местоположение
  • нажмите на значок плюс, чтобы добавить новое местоположение
  • назовите новое местоположение "Режим полета" или подобное и нажмите "Готово"
  • выберите местоположение, которое вы только что создали из выпадающего меню Местоположение
  • щелкните по каждому доступному сетевому интерфейсу в списке слева от окна по очереди, отключив каждый
  • щелкните меню "Настройка iPv4" и выберите "Выкл."
  • для Wi-Fi, просто нажмите кнопку Turn Wi-Fi Off
  • нажмите Apply, и это местоположение заблокирует всю сетевую активность

Если вы хотите снова включить сеть, просто выберите "Автоматически" в раскрывающемся меню "Расположение" и нажмите "Применить".

Ответ 18

Если у вас есть как минимум 2 Wi-Fi-сети для подключения, очень простой способ - использовать ошибку в iOS-симуляторе:

  • выйти из симулятора (cmd-q), если он открыт
  • подключите свой Mac к одному Wi-Fi (возможно, он не подключен к Интернету, не имеет значения)
  • запускать симулятор (меню: xCode- > Open Developer Tool- > iOS Simulator) и ждать, пока он загружен.
  • переключить сеть Wi-Fi на другой.
  • прибыль

Ошибка заключается в том, что симулятор пытается использовать уже не подключенную сеть (IP?).

Пока вы не начнете работать с симулятором - у него не будет интернета (даже если ваша первая сеть Wi-Fi у вас была подключена к Интернету), поэтому вы можете запускать (cmd-R) и останавливать (cmd-.) проект для использования симулятора без подключения, но ваш Mac будет подключен.

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

Ответ 19

Вы можете использовать кондиционер сетевой линии на своем Mac. Вы можете загрузить его с веб-сайта разработчика Apple. Он должен быть доступен, когда мы получаем более старые версии Xcode и iOS. С помощью этого сетевого кондиционера вы можете изменить силу сети с Wi-Fi на отсутствие сети.

Также при установке сетевого кондиционера он устанавливается в системных настройках.

Ответ 20

Вы можете установить Симулятор в режим полета/режим полета enter image description here