Simulador de iPhone - Simula uma conexão lenta?

125

Existe uma maneira de diminuir a velocidade da conexão com a Internet no iPhone Simulator, de modo a imitar como o aplicativo pode reagir quando você estiver em um ponto lento na rede celular?

Chris
fonte
A resposta de Alan deve ser aceita.
Stanislav Mayorov 29/01/19
@StanislavMayorov esta pergunta é de 9 anos atrás. Alan deu uma resposta atualizada 4 anos depois. Agora são 5 anos depois disso. Desculpe, não estou passando e reconsiderando respostas aceitas em minhas perguntas antigas.
Chris

Respostas:

67

Um aplicativo chamado SpeedLimit

https://github.com/mschrag/speedlimit

Funciona bem.

Chris.

PyjamaSam
fonte
incrível tentei isso e faz o negócio. Obrigado!
precisa saber é o seguinte
Yosemite: falha ao definir o limite de velocidade
Injectios
2
Quebrado, ele dizFailed to set speed limit
vintagexav
1
A maneira certa de fazer isso é explicado por Alan H. resposta .
lifeisfoo
"Não sou mais capaz de manter este projeto. Por favor, sinta-se à vontade para se apropriar e se apropriar."
catanore 17/09/18
261

Como instalar o condicionador de link de rede da Apple

Estas instruções são válidas a partir de outubro de 2019.

Aviso: se você acabou de atualizar para a nova versão do macOS, instale o mais recente Network Conditioner ( em Ferramentas adicionais para o Xcode ) ou ele poderá falhar silenciosamente ; isto é, você o ativará, mas ele não estrangulará nada nem descartará pacotes.

Atualização: A partir do Xcode 11, pode haver uma maneira ainda mais simples de simular as condições da rede em dispositivos conectados; veja esta postagem do blog . Para saber como afetar dispositivos simulados , continue abaixo, como antes.

  1. Instale o Xcode se você não o tiver.

  2. Abra o Xcode e vá para Xcode ›Open Developer Tool› Mais ferramentas de desenvolvedor…

    Captura de tela da navegação no menu conforme descrito

  3. Faça o download de ferramentas adicionais para o Xcode (que correspondem à sua versão atual do Xcode)

    Link de download adicional das IO Tools

  4. Abra a imagem de disco baixada e clique duas vezes napanela Condicionador de Link de Rede em "Hardware" para instalá-la.

    painel de pré no DMG

    preferências do sistema mostrando o prompt de instalação

  5. Aqui vamos nós!

    Captura de tela do painel de preferências

  6. Certifique-se de ativá-lo. Você precisa selecionar um perfil e habilitar o condicionador de rede com a grande alternância que deve ser familiar no prefixo do Time Machine.

    insira a descrição da imagem aqui

Embargo

Isso não afetará o host local; portanto, use um servidor intermediário ou o computador do colega de trabalho para simular conexões de rede lentas com uma API que você está executando. Você pode achar https://ngrok.com/ útil nesse sentido.

Alan H.
fonte
6
para Xcode 8, isso está incluído em "Ferramentas adicionais para Xcode 8" (em vez de "Ferramentas Hardware IO para Xcode")
Mohit Singh
1
@MohitSingh Thanks. Eu atualizei a resposta acima.
Alan H.
1
Surpreendente! Obrigado.
Thomás Calmon
1
Parece não haver ferramentas adicionais para o Xcode 10.3?
Leo
1
@leo, basta usar as Ferramentas Adicionais atuais para a versão principal do Xcode que você possui. Por exemplo, use Ferramentas Adicionais para o Xcode 11 se você tiver o Xcode 11.1 instalado.
Alan H.
81

"Existe um aplicativo para isso!" ;) A Apple fornece o painel de preferências "Network Link Conditioner" que faz o trabalho muito bem.

  • para versões do Xcode anteriores à 4.3, o instalador do painel pode ser encontrado na sua Developerpasta, por exemplo "/Developer/Applications/Utilities/Network Link Conditioner", após a instalação, se o daemon falhar ao iniciar e você não desejar reiniciar sua máquina, basta usar sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
  • se você já tiver concluído a Developerpasta, poderá instalar o painel como parte do pacote "Hardware IO Tools for Xcode", disponível na seção de downloads adicionais do Mac Dev Center.

Link para a página de download (é necessário fazer login com seu ID Apple): https://developer.apple.com/downloads/index.action
(créditos para @nverinaud)

matm
fonte
2
Aqui está um link para navegar downloads disponíveis: developer.apple.com/downloads/index.action
nverinaud
2
não funciona no Lion Mountain ... stackoverflow.com/questions/12414676/...
zack
Seria bom se fosse aplicativo específico, e não para todo o computador
Charles John Thompson III
3
Você pode baixar "Hardware IO Tools" no site de ferramentas para desenvolvedores da Apple agora. Eles o atualizam para novas versões do Xcode (e, portanto, do OSX): No Xcode, clique em Xcode-> Open Developer Tool-> More Developer Tools..., faça login, encontre o arquivo mais recente, faça o download, copie os arquivos em algum lugar, clique duas vezes no painel de preferências do Condicionador de Rede, instale-o .. . yay!
I_am_jorf 07/07
Eu acho que não funciona para Yosemite. Eu defini-lo como "lossy", mas na verdade não recebi qualquer diferença
Injectios
2

Também vale mencionar que o Xcode também possui uma maneira integrada de dispositivos , não de simulador.

  • Basta ir em 'Dispositivos e simulador' ( cmmd+shift+2)
  • Selecione seu dispositivo
  • Role para baixo até encontrar 'Condições do dispositivo'
  • Defina o seu perfil desejado
  • Hit Start

insira a descrição da imagem aqui

Para que isso funcione, você precisa instalar o 'Network Link Conditioner'. Veja os passos mencionados na resposta de Alan

Mel
fonte
0

Não existe uma maneira direta de emular uma conexão lenta, ao contrário, digamos, do bom emulador de conexão de rede que os desenvolvedores de blackberry desfrutam. No entanto, como a conexão do seu simulador passa pelo seu computador - você pode simplesmente se concentrar em diminuir a velocidade da conexão do seu computador.

Você deseja obter duas coisas (dependendo das circunstâncias):

  • estrangular sua largura de banda
  • aumentar sua latência

Talvez isso o direcione na direção certa:

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

Também existem algumas boas soluções de código aberto, mas não consigo me lembrar de seus nomes.

Esta pergunta pode ajudar: Como acelerar o tráfego de rede para simulação do ambiente?

JJ Rohrer
fonte
0

Eu argumentaria que uma conexão lenta não é suficiente para simular o comportamento da rede de dados móveis de trabalho real - já que também há muito mais perda de pacotes, latências mais altas e mais conexões perdidas.

Aqui está um script útil para configurar o firewall para emular estes parâmetros:

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

Nick Dowell
fonte
2
O Network Link Conditioner (ferramenta da Apple que é instalada como painel de preferências) simula conexões lentas, perda de pacotes e latência.
N00neimp0rtant
O Network Link Conditioner, adicionado ao OS X Lion (lançado em julho de 2011), torna scripts como este desnecessários.
Nick Dowell