¿Es posible deshabilitar la red en iOS Simulator?

Estoy intentando depurar algún comportamiento incoherente que veo en una aplicación que obtiene sus datos primarios de Internet. No veo los problemas en el simulador, solo en el dispositivo, así que me gustaría reproducir el entorno de red y conectividad en el simulador.

¿Hay alguna forma de desactivar la red en el simulador?

(Me estoy conectando a la Mac de forma remota al código, no hay otra opción en este momento, por lo que deshabilitar la red del sistema operativo no es una opción).

Me temo que no, el simulador comparte la conexión de red que está usando el sistema operativo. Hace un tiempo, presenté un informe de error de Radar sobre la simulación de las condiciones de la red; podrías considerar hacer lo mismo.

Use una jaula de Faraday simple para bloquear o limitar el nivel de señal de RF externa.

Puedes fabricar los tuyos con papel de aluminio. Las aberturas deben ser más pequeñas que la longitud de onda de su servicio de datos si eso es lo que desea bloquear.

800 Mhz tiene una longitud de onda de 37 cm (14 “), 1900 Mhz tiene una longitud de onda de 16 cm (6”).

Esto funciona mejor con un dispositivo real que con el simulador, ya que es difícil trabajar con Mac cuando está dentro de la jaula de Faraday 😉

enter image description here

Sí. En Xcode, puede ir al elemento del menú Xcode -> Open Developer Tools -> More Developer Tools y descargar ” Herramientas adicionales para Xcode “, que tendrá el Acondicionador de enlaces de red.

Con esta herramienta, puede simular diferentes escenarios de red (como 100% de pérdida, 3G, DNS de alta latencia y más) y también puede crear sus propios escenarios personalizados.

La única forma de desactivar la red en el simulador iOS que conozco es usar herramientas como Little Snitch o Hands Off . Con ellos puede denegar / bloquear cualquier conexión de red entrante o saliente. Puede configurarlo de modo que solo bloquee las conexiones desde la aplicación del simulador. Funciona como un firewall.

Simplemente apague su WiFi en Mac OSX ¡esto funciona como un regalo!

Simplemente actualizando la respuesta a la fecha actual. Desde Xcode 4 (?) Hay un panel de preferencias en /Applications/Utilities llamado Network Link Conditioner . O utiliza uno de los perfiles existentes o crea su propio perfil personalizado con 0 Kbps de subida / bajada y 100% caído.

Descargar paquete de herramientas adicionales (Network Link Conditioner)

Descripción

Ejemplo en Sierra: enter image description here

enter image description here

Debido a que Xcode no proporciona dicha función, definitivamente buscará una aplicación / herramienta de terceros. Desactivar la red MAC también ayudará a desactivar la red del simulador iOS.

Puede apagar su Internet MAC desde ” System Preferences... “> ” Network ” y apagar la fuente de red deseada.

Para desactivar su fuente de Internet MAC Ethernet: Fuente de red EtherNet

Para desconectar su fuente de Internet WiFi MAC (si su MAC está en Internet Wifi): enter image description here

Puede acelerar la conexión a Internet con una aplicación de terceros, como

Charles: http://www.charlesproxy.com/

Presiona el comando + shift + T en una Mac para configurar el estrangulamiento.

Una idea probablemente loca o parche:

Alterna el indicador de scope de la red

Este es el código que utilizo para alternar el tiempo de ejecución de mi indicador activando ‘Simulator Memory Warning’ y es COMPLETAMENTE SEGURO, solo asegúrate de que el código esté en modo DEBUG solamente.

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

Puede utilizar Little Snitch para cortar el tráfico de red a cualquier proceso individual, incluidos los que se ejecutan en el simulador de iOS. De esa manera puede mantener su conexión a Internet y desconectar su aplicación en ejecución.

Con Xcode 8.3 y iOS 10.3:

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

Asegúrese de incluir @available(iOS 10.3, *) en la parte superior del archivo del paquete de prueba.

Alternativamente, puede “Activar el modo avión” si lo prefiere.

Una vez que Siri apaga el wifi o enciende el modo avión, deberás descartar el diálogo de Siri que dice que Siri requiere internet. Esto se logra al presionar el botón de inicio, que desactiva el diálogo y regresa a su aplicación.

Puede usar OHHTTPStubs y rescindir las solicitudes de red a URL específicas para que fallen.

¡podrías desactivar la red del host en su lugar!

Si tiene al menos 2 redes wifi para conectarse es una forma muy simple de usar un error en el simulador iOS:

  1. salir del simulador (cmd-q) si está abierto
  2. conecta tu Mac a un wifi (puede que no esté conectado a Internet, no importa)
  3. lanzar el simulador (menú: xCode-> Abrir Developer Tool-> iOs Simulator) y esperar mientras está cargado
  4. cambiar la red wifi a otra
  5. lucro

El error es que el simulador intenta usar una red (¿IP?) Que ya no está conectada.

Hasta que vuelva a lanzar el simulador, no tendrá conexión a Internet (incluso si la primera red wifi que conectó tiene conexión a Internet), por lo que puede ejecutar (cmd-R) y detener (cmd-.) Proyecto (s) para usar simulador sin conexión. pero tu Mac estará conectada.

Luego, si necesita ejecutar el simulador conectado, simplemente salga y ejecútelo.

Puede usar el acondicionador de enlace de red en su Mac. Puede descargarlo desde el sitio web para desarrolladores de Apple. Debería estar disponible donde obtengamos las versiones anteriores de Xcode e iOS. Con este acondicionador de red puede cambiar la fuerza de la red desde wifi a ninguna red.

Además, cuando instala el acondicionador de red, se instala en las preferencias del sistema.