Pregunta sobre cocoa-touch, objective-c, iphone – Pruebas de conectividad de iPhone: ¿Cómo lo obligo a perder la conexión?

14

Apple quiere que le dé al usuario una disculpa amistosa si no puedo encontrar una conexión a Internet. Usando la demostración de accesibilidad, esto fue bastante fácil. Quiero dar un paso más y monitorear una pérdida de conexión. La demostración tiene esta funcionalidad, pero no puedo averiguar cómo cerrar la conexión para probar si funciona.

¿Cómo podría simular una pérdida de (o realmente perder) una conexión?

Tu respuesta

7   la respuesta
4

Para pruebas en el simulador hago un gran uso dePequeña snitch. Es una aplicación muy útil para escribir reglas sobre lo que puede comunicarse con el mundo exterior y por cuánto tiempo.

También le notificará si una aplicación desea acceder a Internet sobre la marcha y puede restringir temporalmente el acceso durante ese tiempo, esa sesión o para siempre.

En cuanto a las pruebas en el dispositivo, inicio sesión en mi enrutador inalámbrico y desactivo temporalmente la red o enciendo la restricción por ID de MAC durante la prueba.

2

Quizás este panel de preferencias también sea útil para usted:SpeedLimit.prefPane no puede perder la conexión, pero puede ralentizarla según el host y el puerto al que intenta llegar.

12

Podrías instalar el Acondicionador de Enlace de Red de Apple

En Yosemite:

El Acondicionador de enlace de red se puede encontrar en el paquete "Hardware IO Tools for Xcode". Esto se puede descargar desde elPágina de descargas para desarrolladores de Apple. Una vez que la descarga haya finalizado, abra el DMG y haga doble clic en "Condición de enlace de red.prefPane" para instalar (fuente).

Con este panel de preferencias puedes crear un perfil con una velocidad de 0kbps.

En versiones anteriores de OSX:

León de montaña / Mavericks:Xcode > Open Developer Tool > More Developer Tools
León:/Developer/Applications/Utilities/Network Link Conditioner

Bien, pero incluso si creas un perfil con 0 valores, no simula la situación "sin conexión" ... gemini
Nota: Comenzando con Xcode 4.3 (o 4.2?), Estos deben instalarse por separado del sitio web de Apple: en Xcode, vaya a "Xcode / Open Developer Tools / Más Developer Tools ...". Esto te llevará a la sección de descargas. El acondicionador de enlaces se puede encontrar en "Hardware IO Tools for Xcode". Stefan
18

Si está desarrollando en iPhone Simulator, simplemente desconecte su computadora de Internet. Si su computadora no tiene acceso a la red, tampoco lo tiene el Simulador de iPhone.

Para probar en el dispositivo, puede hacer lo siguiente:

Primero, configure un enrutador WiFi que pueda usar para probar.

Puede activar el modo Avión en el teléfono y luego volver a encender el WiFi. Esto evitará que la conexión 3G proporcione acceso a datos.

Inicie su aplicación. Ahora simplemente puede desconectar su enrutador WiFi para simular una pérdida de conectividad.

o probar una jaula de faraday?en.wikipedia.org/wiki/Faraday_cage russau
Puede poner su teléfono en el microondas para simular una pérdida de conexión en la vida real ... ¡Recuerde que no encienda el microondas! Sam
Normalmente uso un sombrero de hojalata, por lo que la jaula es una progresión natural. jeje Gracias Joey, quería probar en el dispositivo. Aclamaciones. Joel Hooks
13

Puedes usar elPanel de preferencia SpeedLimit Para simular la latencia de la red bajo el simulador. Y aquí hay unversión de línea de comandos construido en la parte superior de laipfw mando.

La ventaja de solo jalar el cable o matar WiFi es que puede especificar la velocidad al golpear hosts específicos para que pueda usarse para realizar pruebas sin matar sus servicios de red habituales.

Gracias, lo de SpeedLimit es super útil. Tom Redman
4

UtilizarCharles Web Proxy Puede inspeccionar todas las solicitudes HTTP / S que su aplicación envía y las respuestas que recibe, acelerando la conexión para simular cualquier velocidad de red. Cree un perfil de aceleración personalizado llamado "Desconectado" con Ancho de banda = 0, para simular desconexiones de red.

El ancho de banda 0 no es una desconexión en lo que se refiere a la accesibilidad. Si lo usa como un proxy para su dispositivo, el dispositivo seguirá pensando que tiene una buena conexión a la red wifi, por lo que la accesibilidad no devolverá el error. El ancho de banda 0 sigue siendo una herramienta útil para probar las paradas de la red. CornPuff
0

Buscando una necesidad similar, es decir, simulando una conexión de red wifi con pérdida en un dispositivo real, descubrí cómo hacerlo :) Conecté mi MacBook Pro a Ethernet y compartí mi conexión Wifi al dispositivo. Usando el Prefpane del Acondicionador de Enlace de Red de Apple, entonces permítame jugar con la calidad de conexión. Muy útil para simular 3G, Edge y otros baudrate.

Siguiente paso: encuentre y compre un adaptador wifi USB que funcione en MAC OS X para permitirnos a todos (el equipo de desarrolladores) probar sin conectar cada computadora a Ethernet.

Espero que esto ayude a algunos de ustedes.

Preguntas relacionadas