Estoy tratando de depurar un comportamiento inconsistente 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, por lo que me gustaría reproducir el entorno de red y 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).
ios
iphone
debugging
networking
ios-simulator
Paul Hammond
fuente
fuente
Respuestas:
Me temo que no, el simulador comparte cualquier 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 condiciones de red; podrías considerar hacer lo mismo.
fuente
Use una jaula de Faraday simple para bloquear o limitar el nivel de señal de RF externo.
Puedes hacer el tuyo 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 ;-)
fuente
Si. En Xcode, puede ir al
Xcode
elemento de menú ->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 pérdida del 100%, 3G, DNS de alta latencia y más) y también puede crear sus propios escenarios personalizados.
fuente
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 negar / bloquear cualquier conexión de red saliente o entrante. Puede configurarlo para que solo bloquee las conexiones desde la aplicación del simulador. Funciona como un firewall.
fuente
Simplemente apague su WiFi en Mac OSX, ¡esto funciona de maravilla!
fuente
Descargue el paquete de herramientas adicionales (Network Link Conditioner)
Descripción
Ejemplo en Sierra:
fuente
Simplemente actualizando la respuesta a la fecha actual. Desde Xcode 4 (?) Hay un panel de preferencias en
/Applications/Utilities
llamadoNetwork Link Conditioner
. O utiliza uno de los perfiles existentes o crea su propio perfil personalizado con 0 Kbps de enlace ascendente / descendente y 100% eliminado.fuente
Network Link Conditioner
es una herramienta oficial de Apple, y es totalmente gratuita, en comparación conLittle Snitch
oHands Off
.Dado que Xcode no proporciona dicha función, definitivamente usará alguna aplicación / herramienta de terceros. Apagar la red MAC también ayudará a apagar la red del simulador de iOS.
Puede apagar su MAC internet desde "
System Preferences...
"> "Network
" y apagar 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):
fuente
Puede regular la conexión a Internet con una aplicación de terceros, como
Charles: http://www.charlesproxy.com/
Presiona comando + shift + T en una Mac para configurar la aceleración.
fuente
Una idea o parche probablemente loco:
Solo alterna la bandera de alcance de red
Este es el código que utilizo para cambiar mi tiempo de ejecución mediante la activación de la bandera 'Memoria Simulador de advertencia' y su completamente seguro, sólo asegúrese de código debe estar en modo de depuración solamente
fuente
false
es una gran idea. ¡Sin instalaciones, y puedo seguir trabajando de forma remota! Gracias.isInternetAvailable
define esto ?Puede usar 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.
fuente
Con Xcode 8.3 y iOS 10.3:
Asegúrese de incluir
@available(iOS 10.3, *)
en la parte superior de su archivo de suite 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á cerrar el diálogo de Siri que dice que Siri requiere internet. Esto se logra presionando el botón de inicio, que cierra el diálogo y vuelve a su aplicación.
fuente
Hay dos formas de deshabilitar el simulador de Internet de IOS:
Es la forma más sencilla
fuente
Si su aplicación se está conectando a un dominio específico, simplemente puede agregarlo a su
/etc/hosts
archivo y enrutarlo a una IP no existente en su red local ... Para la aplicación será lo mismo que si no hubiera conexión a Internet o No se puede acceder al servidor.agregue la siguiente línea:
o úselo
127.0.0.1
si no está ejecutando un servidor web en su máquina local.fuente
Puede usar OHHTTPStubs y anular las solicitudes de red a URL específicas para que fallen.
fuente
Una solución simple es crear un Modo avión para tu Mac. Aquí es cómo hacer esto:
Cuando desee volver a activar la red, simplemente seleccione Automático en el menú desplegable Ubicación y haga clic en Aplicar
fuente
Te sugiero que uses la aplicación Charles Proxy en Mac
Le permite usar la
Bandwidth Throttle
función que se creó solo para ajustar la conexión de redAcelerador de estrella / parada ⌘ command+ T
Configuración del acelerador ... ⌘ command+ T+⇧ shift
fuente
¡podría deshabilitar la red del host en su lugar!
fuente
Si tiene al menos 2 redes wifi para conectarse, una forma muy simple es usar un error en el simulador de iOS:
El error es que el simulador intenta usar una red (IP?) Que no está conectada todavía.
Hasta que reinicies el simulador, no tendrá Internet (incluso si esa primera red wifi que conectaste tenía conexión a Internet), por lo que puedes 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.
fuente
Puede usar el acondicionador de enlace de red en su Mac. Puede descargarlo del sitio web del desarrollador 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 de wifi a ninguna red.
Además, cuando instala el acondicionador de red, se instala en las preferencias del sistema.
fuente