Estou tentando depurar algum comportamento inconsistente que estou vendo em um aplicativo que obtém seus dados primários da Internet. Não vejo os problemas no simulador, apenas no dispositivo, portanto, gostaria de reproduzir o ambiente de rede e conectividade no simulador.
Existe alguma maneira de desativar a rede no simulador?
(Estou conectando-me ao Mac remotamente para codificar, não há outra opção no momento, portanto, desativar a rede do SO não é uma opção).
ios
iphone
debugging
networking
ios-simulator
Paul Hammond
fonte
fonte
Respostas:
Receio que não - o simulador compartilha qualquer conexão de rede que o sistema operacional esteja usando. Arquivei um relatório de bug do Radar sobre a simulação de condições de rede há algum tempo; você pode considerar fazer o mesmo.
fonte
Use uma gaiola simples de Faraday para bloquear ou limitar o nível do sinal de RF externo.
Você pode fazer o seu próprio com papel de alumínio. As aberturas devem ser menores que o comprimento de onda de do seu serviço de dados, se é isso que você deseja bloquear.
800 Mhz tem um comprimento de onda de 37 cm (14 "), 1900 Mhz tem um comprimento de onda de 16 cm (6").
Isso funciona melhor com um dispositivo real do que com o simulador, pois é difícil trabalhar no Mac quando dentro da gaiola de Faraday ;-)
fonte
Sim. No Xcode, você pode ir para o
Xcode
item de menu ->Open Developer Tools
->More Developer Tools
e baixar " Ferramentas Adicionais para o Xcode ", que terá o Condicionador de Link de Rede.Usando essa ferramenta, você pode simular diferentes cenários de rede (como 100% de perda, 3G, DNS de alta latência e mais) e também pode criar seus próprios cenários personalizados.
fonte
A única maneira de desativar a rede no simulador do iOS que conheço é usar ferramentas como Little Snitch ou Hands Off . Com eles, você pode negar / bloquear qualquer conexão de rede de entrada e saída. Você pode configurá-lo para bloquear apenas as conexões do aplicativo simulador. Funciona como um firewall.
fonte
Basta desligar o seu Wi-Fi no Mac OSX, isso é um prazer!
fonte
Download do pacote de ferramentas adicionais (condicionador de link de rede)
Descrição
Exemplo no Sierra:
fonte
Apenas atualizando a resposta para a data atual. Desde o Xcode 4 (?), Existe um painel de preferências
/Applications/Utilities
chamadoNetwork Link Conditioner
. Você usa um dos perfis existentes ou cria seu próprio perfil personalizado com 0 Kbps Up / Downlink e 100% eliminado.fonte
Network Link Conditioner
é uma ferramenta oficial da Apple e é totalmente gratuita, em comparação comLittle Snitch
ouHands Off
.Como o Xcode não fornece esse recurso, você definitivamente utilizará algum aplicativo / ferramenta de terceiros. Desativar a rede MAC também ajudará a desativar a rede do iOS Simulator.
Você pode desligar a Internet MAC em "
System Preferences...
"> "Network
" e desligar a fonte de rede desejada.Para desativar sua fonte de internet Ethernet MAC:
Para desativar sua fonte de Internet WiFi MAC (se o seu MAC estiver na Internet Wifi):
fonte
Você pode acelerar a conexão à Internet com um aplicativo de terceiros, como
Charles: http://www.charlesproxy.com/
Pressione command + shift + T em um Mac para configurar a regulagem.
fonte
Uma ideia ou patch provavelmente louco:
Apenas alterne o sinalizador de acessibilidade da rede
Esse é o código que eu uso para alternar meu tempo de execução do sinalizador, disparando o 'Simulator Memory Warning' e seu COMPLETAMENTE SEGURO, apenas certifique-se de que o código esteja apenas no modo DEBUG
fonte
false
é uma ótima idéia. Nenhuma instalação e posso continuar trabalhando remotamente! Obrigado.isInternetAvailable
definido ?!Você pode usar o Little Snitch para cortar o tráfego da rede para qualquer processo individual, incluindo os que são executados no simulador do iOS. Dessa forma, você pode manter sua conexão com a Internet e desconectar o aplicativo em execução.
fonte
Com o Xcode 8.3 e iOS 10.3:
Certifique-se de incluir
@available(iOS 10.3, *)
na parte superior do arquivo do conjunto de testes.Como alternativa, você pode "Ativar o modo avião", se preferir.
Depois que o Siri desligar o Wi-Fi ou ativar o Modo Avião, será necessário descartar o diálogo Siri que diz que o Siri requer Internet. Isso é feito pressionando o botão home, que dispensa o diálogo e retorna ao seu aplicativo.
fonte
Há duas maneiras de desativar a Internet do IOS Simulator:
É a maneira mais simples
fonte
Se o seu aplicativo estiver se conectando a um domínio específico, você pode simplesmente adicioná-lo ao seu
/etc/hosts
arquivo e encaminhá-lo para um IP inexistente na sua rede local ... Para o aplicativo, será o mesmo que se não houvesse conexão com a Internet ou o servidor não está acessível.adicione a seguinte linha:
ou use
127.0.0.1
se você não estiver executando um servidor da web em sua máquina local.fonte
Você pode usar OHHTTPStubs e stub as solicitações de rede para URLs específicos para falhar.
fonte
Uma solução simples é criar um modo de avião para o seu Mac. Aqui está como fazer isso:
Quando quiser ativar a rede novamente, basta selecionar Automático no menu suspenso Localização e clique em Aplicar
fonte
Eu sugiro que você use o aplicativo Charles Proxy no Mac
Permite usar o
Bandwidth Throttle
recurso criado apenas para ajustar a conexão de redeStar / Stop Throttling ⌘ command+ T
Configurações do acelerador ... ⌘ command+ T+⇧ shift
fonte
você pode desativar a rede do host!
fonte
Se você tem pelo menos 2 redes wifi para conectar, é uma maneira muito simples: usar um bug no simulador do iOS:
O problema é que o simulador tenta usar uma rede (IP?) Que ainda não está conectada.
Até que você reinicie o simulador - ele não terá Internet (mesmo que a primeira rede Wi-Fi conectada tenha conexão com a Internet), para que você possa executar (cmd-R) e interromper (cmd-.) O (s) projeto (s) para usar o simulador sem conexão, mas o seu Mac estará conectado.
Então, se você precisar executar o simulador conectado, basta sair e iniciá-lo.
fonte
Você pode usar o condicionador de link de rede no seu Mac. Você pode baixá-lo no site do desenvolvedor da apple. Deve estar disponível onde obtemos as versões mais antigas do Xcode e iOS. Com este condicionador de rede, você pode alterar a força da rede de wifi para nenhuma rede.
Além disso, quando você instala o condicionador de rede, ele é instalado nas preferências do sistema.
fonte