Existe uma maneira mais rápida / melhor de limpar o cache do simulador do iPhone do que excluir seu diretório?

95

Portanto, ainda sou razoavelmente novo no desenvolvimento para iOS e me encontro regularmente precisando excluir DerivedData ou o conteúdo do diretório do simulador do iPhone para fazer com que as coisas realmente sejam executadas a partir do meu código. Limpar no Xcode não faz o mesmo que esvaziar esses diretórios, certo? E se não, existe uma maneira mais fácil de fazer isso do que arrastar o Finder para chegar até eles e limpá-los?

Lucas
fonte
3 anos atrás talvez essa não fosse uma opção, mas verifique minha resposta, funciona para mim!
Adrian Florescu

Respostas:

124

66:99 e escalada:

Sim , há uma maneira melhor do que entrar em todos os simuladores da cidade e redefinir o conteúdo e as configurações um de cada vez. Também é muito melhor do que olhar para o diretório do seu simulador e arrancar o cache de seus pés.

Saia do simulador do iPhone e execute xcrunno Terminal:

xcrun simctl erase all

Seguro e eficaz.

Consulte https://stackoverflow.com/a/26394597/218152 para um único dispositivo

xcrun simctl erase [ID do dispositivo]

SwiftArchitect
fonte
Isso apaga os próprios simuladores? Então, eu precisaria adicioná-los novamente na tela Dispositivos do Xcode depois disso?
Lucas de
1
Apenas o conteúdo. Na documentação ( xcrun simctl help), apague : Apague o conteúdo e as configurações de um dispositivo. , não deve ser confundido com excluir : Exclua um dispositivo ou todos os dispositivos indisponíveis.
SwiftArchitect de
Impressionante. Tento mudar minha resposta correta à luz disso :)
Lucas
@lukech: Muito apreciado. Eu tropecei nessa solução enquanto tentava economizar memória no meu HD e estava procurando uma clean build folderabordagem. E adereços para você manter esta questão ativa.
SwiftArchitect
este comando leva uma eternidade para ser executado, como selecionar o sim de destino com uuid?
the_prole 01 de
104

No menu do simulador iOS , há uma opção chamada Redefinir conteúdo e configurações ...

Isso deve funcionar.

EDITAR:

Para tornar isso muito mais rápido e fácil, adicionei uma tecla de atalho como esta ...

Em Preferências do Sistema, escolha Teclado

Preferências do sistema de teclado

Em seguida, escolha a guia Atalhos . E clique em Atalhos de aplicativos

Atalhos de aplicativos Clique no botão de adição para adicionar outro atalho.

insira a descrição da imagem aqui Por último:

  1. Clique em Escolher Simulador no menu suspenso Aplicativo : . Se não estiver lá, role até o final da lista de aplicativos e escolha "Outro ...". Em seguida, digite "simulador" na pesquisa e adicione o Simulador a partir daí.
  2. Digite Apagar Todo o Conteúdo e Configurações ... no Título do Menu: caixa de texto.
  3. Escreva seu tecla de atalho preferido para o atalho de teclado: . (Eu uso o ponto de comando)
  4. Clique no botão Adicionar .

insira a descrição da imagem aqui

Agora, enquanto estiver em seu simulador iOS, você pode simplesmente usar sua nova tecla de atalho para reiniciar.


Se o Simulador não aparecer na lista suspensa:

  1. Em uma janela do Finder, vá para a pasta Aplicativos.
  2. Clique com o botão direito em Xcode e escolha "Mostrar conteúdo do pacote".
  3. Navegar para Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/
  4. Você verá o iPhone Simulator.app.
  5. Agora, no aplicativo Configurações, em vez de escolher o Simulador de iOS que está faltando, você escolhe Outro ....
  6. Isso fará com que apareça uma janela com uma lista de aplicativos.
  7. Agora, arraste iPhone Simulator.app da janela do Finder para a janela que apareceu quando você clicou em Outro ....
Jeff Wolski
fonte
O simulador iOS não aparece mais na lista suspensa do aplicativo. Devo apenas escolher "xCode.app"? Estou no OS 10.8.3 com iOS Simulator 6.0.
potench
8
Em uma janela de localização, vá para a pasta Aplicativos. Clique com a opção Xcode e escolha "Mostrar conteúdo do pacote". Navegue até a Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/pasta. Você vai ver iPhone Simulator.app. Agora, no aplicativo Configurações, em vez de escolher o iOS Simulatorque está faltando, você escolhe Other.... Isso fará com que apareça uma janela com uma lista de aplicativos. Agora, arraste iPhone Simulator.appda janela do Finder para a janela que apareceu quando você clicou Other....
Jeff Wolski
1
Vim aqui em busca de outra coisa, mas segui seus passos só porque sua resposta foi muito boa. obrigado!
kodybrown
1
Reset Content and Settingsnão limpará os ativos do lado do cliente em uma VPN. Eu estava lutando com isso por um tempo, me perguntando por que minhas animações CSS funcionavam em todos os lugares, exceto no simulador, apenas para descobrir que ele estava armazenando arquivos antigos em cache, mesmo quando eu havia excluído o conteúdo e as configurações. A única coisa que acabou funcionando para mim foi desconectar da minha VPN e reiniciar minha VM, em seguida, reconectar (o framework eu uso versões de todos os meus ativos para mim) - você também pode versioná-los manualmente se estiver apenas testando coisas, mas isso é irritante. Isso é algo que a Apple deveria consertar; isso só acontece ao testar o iOS para mim.
Benny,
3
Se você não conseguir encontrar o simulador no caminho Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/apontado por @JeffWolski, você pode pesquisá-lo pelo termo de pesquisasimulator.app
atulkhatri
8

Para desenvolvimento web e teste no simulador iOS (Safari):

  1. Com o iOS Simulator e o Safari abertos, vá para Safari> Develop> iOS Simulator e selecione sua página que lhe dará acesso às ferramentas do Web Inspector.

  2. Vá para Safari> Desenvolver> Caches vazios para limpar o cache no iOS Safari.

Adrian Florescu
fonte
@AdrianFlorescu esta é uma solução para depurar o desenvolvimento da web no iOS Safari, mas acho que a questão era relativa ao desenvolvimento de aplicativos iOS.
Ryan
4
Não funciona no Safari 9.0.3 com depurador remoto. "Desativar caches" também não tem efeito.
Gamadril
1
Esta configuração não faz nada para mim (não limpa o cache no safari móvel)
HandiworkNYC.com
Sim. Parece que ele não limpa mais o cache do iOS. Eu acho que sim no passado ...
Yosh
esta é a única solução que parece estar funcionando stackoverflow.com/a/51421939/1055015
Exlord