Simulador de iPhone - ¿Simular una conexión lenta?

125

¿Hay alguna manera de ralentizar la conexión de Internet al Simulador de iPhone, para imitar cómo podría reaccionar la aplicación cuando estás en un punto lento en la red celular?

Chris
fuente
La respuesta de Alan debe ser aceptada.
Stanislav Mayorov
@StanislavMayorov esta pregunta es de hace 9 años. Alan luego dio una respuesta actualizada 4 años después. Ahora son 5 años después de eso. Lo siento, no estoy revisando y reconsiderando las respuestas aceptadas en mis viejas preguntas.
Chris

Respuestas:

67

Una aplicación llamada SpeedLimit

https://github.com/mschrag/speedlimit

Funciona genial.

Chris

PyjamaSam
fuente
increíble solo lo probé y hace el negocio. ¡Gracias!
Max MacLeod
Yosemite: no se pudo establecer el límite de velocidad
Injectios
2
Roto, diceFailed to set speed limit
vintagexav
1
La forma correcta de hacer esto se explica por Alan H. respuesta .
lifeisfoo
"Ya no puedo mantener este proyecto. Por favor, siéntase libre de bifurcar y tomar posesión".
catanore
261

Cómo instalar el acondicionador de enlace de red de Apple

Estas instrucciones están vigentes a partir de octubre de 2019.

Advertencia: si acaba de actualizar a una nueva versión de macOS, asegúrese de instalar el último Acondicionador de red ( en Herramientas adicionales para Xcode ) o puede fallar silenciosamente ; es decir, lo encenderá pero no acelerará nada ni soltará ningún paquete.

Actualización: a partir de Xcode 11, puede haber una forma aún más simple de simular las condiciones de red en dispositivos conectados; ver esta entrada del blog . Para saber cómo afectar a los dispositivos simulados , continúe a continuación, como antes.

  1. Instala Xcode si no lo tienes.

  2. Abra Xcode y vaya a Xcode ›Abra Developer Tool› Más herramientas de desarrollador ...

    Captura de pantalla de navegar por el menú como se describe

  3. Descargue herramientas adicionales para Xcode (que coincida con su versión actual de Xcode)

    Enlace de descarga de IO Tools adicional

  4. Abra la imagen de disco descargada y haga doble clic en el .prefpane del Acondicionador de enlace de red en "Hardware" para instalarlo.

    panel pref en DMG

    Preferencias del sistema que muestran la solicitud de instalación

  5. ¡Aquí vamos!

    Captura de pantalla del panel de preferencias

  6. Asegúrese de encenderlo. Debe seleccionar un perfil yDebe habilitar el acondicionador de red con la gran palanca que debería ser familiar desde el panel de control de Time Machine.

    ingrese la descripción de la imagen aquí

Consideración

Esto no afectará a localhost, así que asegúrese de usar un servidor provisional o la computadora de un compañero de trabajo para simular conexiones de red lentas a una API que esté ejecutando usted mismo. Puede encontrar https://ngrok.com/ útil a este respecto.

Alan H.
fuente
66
para Xcode 8, esto se incluye en "Herramientas adicionales para Xcode 8" (en lugar de "Hardware IO Tools for Xcode")
Mohit Singh
1
@MohitSingh Gracias. He actualizado la respuesta anterior.
Alan H.
1
¡Asombroso! Gracias.
Thomás Calmon
1
¿Parece que no hay herramientas adicionales para Xcode 10.3?
Leo
1
@leo, solo usa las Herramientas Adicionales actuales para la versión principal de Xcode que tienes. Por ejemplo, use Herramientas adicionales para Xcode 11 si tiene instalado Xcode 11.1 .
Alan H.
81

"¡Hay una aplicación para eso!" ;) Apple proporciona el panel de preferencias "Acondicionador de enlace de red" que hace el trabajo bastante bien.

  • para las versiones de Xcode anteriores a 4.3, el instalador del panel se puede encontrar en su Developercarpeta, por ejemplo "/Developer/Applications/Utilities/Network Link Conditioner", después de la instalación, si el demonio no se inicia y no desea reiniciar su máquina, simplemente use sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
  • si ya ha terminado con la Developercarpeta, puede instalar el panel como parte del paquete "Hardware IO Tools for Xcode" disponible en la sección de descargas adicionales del Centro de desarrollo de Mac.

Enlace a la página de descarga (debe iniciar sesión con su ID de Apple): https://developer.apple.com/downloads/index.action
(créditos a @nverinaud)

matm
fuente
2
Aquí hay un enlace para explorar las descargas disponibles: developer.apple.com/downloads/index.action
nverinaud
2
no funciona en Mountain Lion ... stackoverflow.com/questions/12414676/…
zack
sería bueno si fuera específico de la aplicación, y no para toda la computadora
Charles John Thompson III
3
Puede descargar "Hardware IO Tools" desde el sitio de herramientas para desarrolladores de Apple ahora. Lo actualizan para las nuevas versiones de Xcode (y, por lo tanto, OSX): en Xcode, haga clic en Xcode-> Open Developer Tool-> More Developer Tools..., inicie sesión, encuentre el último archivo, descargue, copie los archivos en alguna parte, haga doble clic en el panel de preferencias del acondicionador de red, instálelo. . ¡Hurra!
i_am_jorf
Supongo que no funciona para Yosemite. Lo configuré como "con pérdida", pero en realidad no hubo ninguna diferencia
Injectios
2

También vale la pena mencionar que Xcode también tiene una forma integrada para dispositivos , no simulador.

  • Simplemente vaya a 'Dispositivos y simulador' ( cmmd+shift+2)
  • Seleccione su dispositivo
  • Desplácese hacia abajo hasta que encuentre 'Condiciones del dispositivo'
  • Configura tu perfil deseado
  • Hit Start

ingrese la descripción de la imagen aquí

Para que esto funcione, debe instalar 'Network Link Conditioner'. Ver los pasos mencionados en la respuesta de Alan

Miel
fuente
0

No existe una forma directa de emular una conexión lenta, a diferencia, por ejemplo, del agradable emulador de conexión de red que disfrutan los desarrolladores de blackberry. Sin embargo, dado que la conexión de su simulador pasa por su computadora, simplemente puede concentrarse en ralentizar la conexión de su computadora.

Querrás lograr dos cosas (dependiendo de tus circunstancias):

  • acelere su ancho de banda
  • aumenta tu latencia

Tal vez esto te guíe en la dirección correcta:

http://www.macosxhints.com/article.php?story=20080119112509736

También hay algunas buenas soluciones de código abierto, pero no puedo recordar sus nombres.

Esta pregunta podría ayudar: ¿Cómo limitar el tráfico de red para la simulación del entorno?

JJ Rohrer
fuente
0

Yo diría que una conexión lenta no es suficiente para simular el comportamiento de la red de datos móviles de trabajo real, ya que también hay mucha más pérdida de paquetes, latencias más altas y más conexiones caídas también.

Aquí hay un útil script para configurar el firewall para emular estos parámetros:

http://pmilosev-notes.blogspot.com/2011/02/ios-simulator-testing-over-different.html

Nick Dowell
fuente
2
Network Link Conditioner (herramienta de Apple que se instala como un panel de preferencias) simula conexiones lentas, pérdida de paquetes y latencia.
n00neimp0rtant
Network Link Conditioner, agregado en OS X Lion (lanzado en julio de 2011), hace innecesarios los scripts como este.
Nick Dowell