iphone anclaje - ¿Es posible desactivar la red en el simulador de iOS?




me por (15)

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.

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).


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 ;-)


¡Apaga tu WiFi en Mac OSX, esto funciona de maravilla!


Usted podría deshabilitar la red del host en su lugar!


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.


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.


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 
}

Podría usar OHHTTPStubs y OHHTTPStubs las solicitudes de red a direcciones URL específicas para que falle.


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.



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

  1. salir del simulador (cmd-q) si está abierto
  2. conecte su Mac a un wifi (puede que no esté conectado a Internet, no importa)
  3. inicie el simulador (menú: xCode-> Open Developer Tool-> iOs Simulator) y espere mientras se carga
  4. cambiar la red wifi a otra
  5. 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.


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.


No está funcionando porque el IB establece el title attributedTitle lugar del title .

Intenta esto en su lugar:

NSAttributedString *attributedTitle = [self.myButton attributedTitleForState:UIControlStateNormal];
NSMutableAttributedString *mas = [[NSMutableAttributedString alloc] initWithAttributedString:attributedTitle];
[mas.mutableString setString:@"New Text"];

[self.myButton setAttributedTitle:mas forState:UIControlStateNormal];

O alternativamente:

[self.myButton setAttributedTitle:nil forState:UIControlStateNormal];
[self.myButton setTitle:@"New Text" forState:UIControlStateNormal];

(La segunda opción no conservará su formato.)





iphone debugging ios ios-simulator