iphone - puedo - ¿Es posible desactivar la red en el simulador de iOS?
cuando comparto internet de mi iphone me cobran (17)
Estoy tratando de depurar algunos comportamientos inconsistentes que estoy viendo en una aplicación que obtiene sus datos principales de Internet. No veo los problemas en el simulador, solo en el dispositivo, así que me gustaría reproducir la red y el entorno de conectividad en el simulador.
¿Hay alguna forma de deshabilitar la red en el simulador?
(Me estoy conectando a la Mac de forma remota para codificar, no hay otra opción en este momento, por lo que deshabilitar la red del sistema operativo no es una opción).
¡Apaga tu WiFi en Mac OSX, esto funciona de maravilla!
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 de su archivo de prueba.
Alternativamente, puede "Activar el Modo Avión" si lo prefiere.
Una vez que Siri apague el wifi o active el Modo avión, deberá descartar el diálogo de Siri que dice que Siri requiere internet. Esto se logra presionando el botón de inicio, que elimina el diálogo y regresa a su aplicación.
Descargar paquete de herramientas adicionales (Network Link Conditioner)
Hay dos formas de deshabilitar el simulador de internet de IOS:
- Desenchufe su conexión de red
- Apagar el wifi
Es la forma más sencilla.
La única forma de deshabilitar la red en el simulador de iOS que conozco es usando herramientas como Little Snitch o Hands Off . Con ellos puede denegar / bloquear cualquier conexión de red entrante o saliente. Puede configurarlo para que solo bloquee las conexiones desde la aplicación del simulador. Funciona como un cortafuegos.
Podría usar OHHTTPStubs y OHHTTPStubs las solicitudes de red a direcciones URL específicas para que falle.
Puede acelerar la conexión a Internet con una aplicación de terceros, como
Charles: http://www.charlesproxy.com/
Presiona command + shift + T en una Mac para configurar la regulación.
Puede usar Little Snitch para cortar el tráfico de la red a cualquier proceso individual, incluidos los que se ejecutan en el simulador de iOS. De esa manera, puedes mantener tu conexión a Internet y desconectar tu aplicación en ejecución.
Puede utilizar el acondicionador de enlace de red en su Mac. Puedes descargarlo desde el sitio web del desarrollador de Apple. Debería estar disponible donde obtengamos las versiones anteriores de Xcode y iOS. Con este acondicionador de red, puede cambiar la intensidad de la red de wifi a ninguna red.
Además, al instalar el acondicionador de red, se instala en las preferencias del sistema.
Sólo 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% eliminado.
Una idea o parche probablemente loco:
Solo alternar la bandera de accesibilidad de la red
Este es el código que utilizo para alternar el tiempo de ejecución de mi bandera al activar la "Advertencia de memoria del simulador" y es COMPLETAMENTE SEGURO, solo asegúrese de que el código esté en modo DEBUG solamente
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
#ifdef DEBUG
isInternetAvailable = !isInternetAvailable;
#endif
}
Use una jaula de Faraday simple para bloquear o limitar el nivel de la señal de RF externa.
Usted puede hacer su propio papel de aluminio. Las aperturas deben ser más pequeñas que la wavelength de wavelength de su servicio de datos si eso es lo que quiere 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 ;-)
Usted podría deshabilitar la red del host en su lugar!
Ya que Xcode no proporciona dicha función, definitivamente irá a alguna aplicación / herramienta de terceros. Desactivar la red MAC también ayudará a desactivar la red del simulador de iOS.
Puede apagar su MAC internet desde " System Preferences...
"> " Network
" y desactivar la fuente de red deseada.
Para apagar su fuente de internet MAC Ethernet:
Para apagar su fuente de Internet MAC WiFi (si su MAC está en Internet Wifi):
Si tiene al menos 2 redes wifi para conectarse, una forma muy sencilla es utilizar un error en el simulador de iOS:
- salir del simulador (cmd-q) si está abierto
- conecte su Mac a un wifi (puede que no esté conectado a Internet, no importa)
- inicie el simulador (menú: xCode-> Open Developer Tool-> iOs Simulator) y espere mientras se carga
- cambiar la red wifi a otra
- lucro
El error es que el simulador intenta usar una red (¿IP?) Que todavía no está conectada.
Hasta que reinicie el simulador, no tendrá Internet (incluso si la primera red wifi que conectó tenía conexión a Internet), por lo que puede ejecutar (cmd-R) y detener (cmd-.) Proyectos para usar el simulador sin conexión, Pero tu Mac estará conectada.
Luego, si necesita ejecutar el simulador conectado, simplemente salga y ejecútelo.
Me temo que no, el simulador comparte cualquier conexión de red que esté usando el sistema operativo. Presenté un informe de error de Radar sobre cómo simular las condiciones de la red hace un tiempo; usted podría considerar hacer lo mismo.
Sí. En Xcode, puede ir al elemento de menú Xcode
-> Open Developer Tools
-> More Developer Tools
y descargar " Herramientas adicionales para Xcode ", que tendrá el Acondicionador de enlace 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.