2009-07-03 3 views
14

Apple quiere que le dé una disculpa amistosa al usuario si no puedo encontrar una conexión a Internet. Usando la demostración de alcanzabilidad, esto fue bastante fácil. Quiero dar un paso más y controlar la pérdida de conexión. La demostración tiene esta funcionalidad, pero no entiendo cómo cerrar mi conexión para probar si funciona.Pruebas de conectividad del iPhone: ¿Cómo lo obligo a perder la conexión?

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

Respuesta

18

Si está desarrollando en el simulador de iPhone, simplemente desconecte su computadora de internet. Si su computadora no tiene acceso a la red, tampoco lo hace el simulador de iPhone.

Para probar el dispositivo, puede hacer lo siguiente:

Primera configuración de un router, Wi-Fi que se puede utilizar para la prueba.

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

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

+14

o prueba una jaula de faraday? http://en.wikipedia.org/wiki/Faraday_cage – russau

+1

Normalmente uso un sombrero de hojalata, por lo que la jaula es una progresión natural. heh Gracias Joey, quería probar en el dispositivo. Aclamaciones. –

+2

Puede poner su teléfono en el microondas para simular una pérdida de conexión de la vida real ... ¡Recuerde no encender el microondas! – Sam

13

Puede usar el SpeedLimit preference pane para simular la latencia de la red bajo el simulador. Y aquí hay un command line version construido sobre el comando ipfw.

La ventaja de simplemente tirar del cable o matar a WiFi es que puedes especificar la velocidad cuando golpeas hosts específicos para que pueda usarse para probar sin matar a tus servicios de red normales.

+0

Gracias, la cosa SpeedLimit es súper útil. –

4

Para probar en el simulador, hago un gran uso de Little Snitch. Es una aplicación muy útil para escribir reglas sobre qué se puede comunicar 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 para ese momento, esa sesión o para siempre.

En cuanto a las pruebas en el dispositivo, me conecto a mi enrutador inalámbrico y deshabilito temporalmente la red o enciendo la restricción de MAC ID 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 reducir la velocidad según el host y el puerto al que intenta llegar.

4

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

+0

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

12

Se podría instalar Red Enlace Acondicionador de Apple

En Yosemite:

enlace de red acondicionador se puede encontrar en la sección "Hardware IO Herramientas para Xcode" paquete. Esto se puede descargar desde Apple Developer Downloads page. Una vez que la descarga haya finalizado, abra el DMG y haga doble clic en "Condición de enlace de red.PrefPane" para instalar (source).

Con este panel de preferencias, puede crear un perfil con 0kbps de velocidad.

Network Link Conditioner

En las versiones anteriores de OS X:

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

+4

Nota: Comenzando con Xcode 4.3 (¿o 4.2?) Estos deben instalarse por separado del sitio web de Apple: en Xcode, vaya a "Xcode/Abrir herramientas de desarrollo/Más herramientas de desarrollo ...". Esto lo llevará a la sección de descargas. El acondicionador de enlace se puede encontrar en "Hardware IO Tools for Xcode". – Stefan

+0

Bueno, incluso si crea un perfil con 0 valores, no simula la situación "sin conexión" ... – gemini

0

Buscando necesidad similar es decir, simulando una conexión de red Wi-Fi con pérdidas en el dispositivo real, descubrió cómo hacerlo :) Conecté mi MacBook Pro en ethernet y compartí mi conexión Wifi al dispositivo. Usando el acondicionador de enlace de red de Apple Prefpane, entonces déjame jugar con la calidad de la 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 que todos nosotros (equipo de desarrolladores) lo probemos sin cablear cada computadora a ethernet.

Espero que esto ayude a algunos de ustedes.

Cuestiones relacionadas