Xcode Simulator: como remover dispositivos desnecessários mais antigos?

209

Estou executando o Xcode 4.3.1 iOS-Simulator, que originalmente suporta apenas o iOS 5.1.

Preciso testar meu código com o iOS 4.3, então usei o recurso "Instalar" do Xcode para instalá-lo, conforme descrito em "Instalando o Xcode com o simulador de dispositivo iOS 4.3?"

Agora terminei o teste, mas não consigo encontrar uma maneira de desinstalar as partes do 4.3 ("iPhone 4.3 Simulator" e "iPad 4.3 Simulator"). Quero reduzir a desordem no menu Esquema.

Ninguém no Xcode listserv da Apple sabia a resposta!

EDIT: note que muita coisa mudou desde o Xcode 4.3, então sugira que alguém leia este olhar para todas as respostas. Os mais novos, como Steve Moser, podem ser mais úteis para você!

EDIT 10/2017: Postado no Twitter por Julio Carrettoni

Se você é um desenvolvedor iOS, execute o seguinte:
$ xcrun simctl delete unavailable
Ele remove os simuladores antigos que o Xcode não usa mais. Para mim, era 6Gb Não tentei sozinho ...

[Além disso, eu acabei de ver Russ Bishop mencionar isso em um comentário abaixo já ...]

David H
fonte

Respostas:

172

Você tentou excluir o SDK 4.3 do pacote Xcode?

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs

exclua também o arquivo .dmg correspondente em

~ / Biblioteca / Caches / com.apple.dt.Xcode / Downloads

para impedir que o Xcode reinstale o mesmo pacote novamente.


para XCode> = 6, veja a resposta de @ praveen-matanam

childno͡.de
fonte
3
Você é um gênio! Muito obrigado! Não posso acreditar que não no Xcode listserv sabia disso. Eu olho em vários lugares, mas não onde você sugeriu.
David H
Isso não funcionará no xcode 4.5.2. Assim que você reiniciar o compilador, ele solicitará que você instale novamente dispositivos legados antigos. O cancelamento sairá do xcode e você será forçado a instalar novamente.
Alejandro Luengo
É isso mesmo Alejandro, a Apple parece ter alterado a "coisa da licença" para que você sempre precise de uma conta de desenvolvedor válida e instale todas as extensões repetidamente em todas as atualizações principais do aplicativo. Os sistemas legados também não são suportados;
Childno.de
1
Veja a resposta de Dan Reese abaixo para algo que funciona no Xcode 4.6.
BJ Homer
2
Trabalhou para o Xcode 6.3.1, junto com esta resposta stackoverflow.com/a/30206853/286618 . Documentação antiga limpa e economizou 9GB !!!
RoLYroLLs
203

No Xcode 6+, você pode simplesmente ir para Menu> Janela> Dispositivos> Simuladores e excluir um simulador desnecessário.

tomi44g
fonte
1
A questão era relevante na versão 4 e provavelmente 5. Como você pode ver, foi bastante difícil. Evitei usar simuladores mais antigos desde então.
David H
3
Está correto. Se você quiser que os simuladores de ser "realmente gone" ou reinstalá-los no Xcode -> Preferências -> Transferências você tem que eliminar o tempo de execução do simulador como fora pontas abaixo stackoverflow.com/a/30206853/1344293
mathz
Obrigado, esta é a maneira mais fácil de gerenciar os simuladores. em vez de excluir os simuladores das pastas xcode. Isso funciona para mim :)
Chirag
Como você exclui um dispositivo com uma versão mais antiga do iOS? A janela de dispositivos mostra apenas simuladores com iOS 9.1 (no Xcode 7.1). Gostaria de evitar a edição de device_set.plist e a remoção de pastas no Finder.
bio
Você também pode usar este script para recriar simuladores: gist.github.com/cabeca/3ff77007204e5479f7af
tomi44g
154

No Xcode 6 e acima, você pode encontrar e excluir os simuladores do caminho /Library/Developer/CoreSimulator/Profiles/Runtimes. Reinicie o Xcode para entrar em vigor (pode não ser necessário).

Praveen Matanam
fonte
6.4 aqui. Necessário reiniciar minha máquina para que ela entre em vigor.
precisa saber é
2
7.2 - Não é necessário reiniciar
theeye
Xcode 8.0 necessário um reinício para limpar os simuladores inválidos na janela de dispositivos
Doug Amos
2
@thiagoveloso é porque você não instalou nenhuma outra versão dos simuladores, mas o iOS 10.0+. Eu tive lá apenas .simruntimearquivos 9.3, 8.4 e 8.3 #
Aleksey Potapov
1
Eu também posso estar em~/Library/Developer/...
Roberto
124

Atualização de outubro de 2018

Como foi mencionado, você pode xcrunfazer algumas coisas:

  • xcrun simctl list devicesou xcrun simctl list --jsonpara listar todos os simuladores
  • xcrun simctl delete <device udid> excluir dispositivo específico
  • xcrun simctl delete unavailable remover dispositivos antigos para tempos de execução que não são mais suportados

Mais coisas com as quais você pode fazer xcrun(consulte o snippet de código)

Resposta original

Setembro de 2017, Xcode 9

Runtimes

Você os achará aqui:

/Library/Developer/CoreSimulator/Profiles/Runtimes

insira a descrição da imagem aqui

Aparelhos

Para excluir dispositivos, acesse aqui:

~/Library/Developer/CoreSimulator/Devices

Muito mais fácil excluí-los, use o Xcode: Xcode-> Janela-> Dispositivos e Simuladores insira a descrição da imagem aqui

Ajudando o Xcode a "esquecer" os tempos de execução e impedir a reinstalação deles - exclua os arquivos .dmg aqui:

~/Library/Caches/com.apple.dt.Xcode/Downloads

Espero que ajude alguém 🙂

Pavel Kovalev
fonte
8
Por favor, não apague dispositivos do sistema de arquivos; use xcrun simctl delete <device udid>. Você também pode executar xcrun simctl delete unavailablepara remover dispositivos antigos por tempos de execução que não são mais suportados.
russbishop
1
Eu não tenho (sem pasta de downloads em ~ / Library / Caches / com.apple.dt.Xcode /) ~ / Library / Caches / com.apple.dt.Xcode / Downloads, maravilha porque
auspicious99
1
o caminho da pasta que você listou não existe, Xcode 9.4
Peter Cullen
Era isso que eu procurava: não excluindo 12.2 dispositivos simulados um por um, mas excluindo todo o simulador 12.2 do sistema. O caminho funcionou com o XCode 10.3. Depois de excluir, tive que reiniciá-lo e a contagem dos simuladores caiu pela metade.
catanore 31/07/19
77

Execute este comando no terminal para remover simuladores que não podem ser acessados ​​da versão atual do Xcode (8+?) Em uso na sua máquina.

xcrun simctl delete unavailable

Além disso, se você deseja recuperar o espaço relacionado ao simulador, Michael Tsai descobriu que a exclusão de logs sim economizava 30 GB.

~/Library/Logs/CoreSimulator
Steve Moser
fonte
2
Obrigado! Obviamente, a pergunta original era para o Xcode 4, então as coisas mudaram muito desde então!
David H
2
Ele libera quase 20 GB para mim. Obrigado
Libor Zapletal
26

O Xcode 4.6 solicitará que você reinstale qualquer versão anterior do iOS Simulator se você apenas excluir o SDK. Para evitar isso, você também deve excluir o cache do Xcode. Então você não será forçado a reinstalar o SDK mais antigo na inicialização.

Para remover o simulador do iOS 5.0, exclua-os e reinicie o Xcode:

  1. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/PhoneSimulator5.0.sdk
  2. ~ / Biblioteca / Caches / com.apple.dt.Xcode

Por exemplo, depois de fazer uma instalação limpa do Xcode, instalei o simulador do iOS 5.0 a partir das preferências do Xcode. Mais tarde, decidi que o 5.1 era suficiente, mas não consegui remover a versão 5.0. O Xcode continuou me forçando a reinstalá-lo no lançamento. Depois de remover o arquivo de cache e o SDK, ele não é mais solicitado.

Dan Reese
fonte
1
Uma resposta um pouco mais precisa aqui , embora eu ainda não a tenha testado.
Dan Reese
21

Eu tive o mesmo problema. Eu estava ficando sem espaço.

Excluir simuladores de dispositivos antigos NÃO ajudou.

Meu problema de espaço foi causado pelo xCode. Ele mantinha uma cópia de todas as versões do iOS no meu macOS desde que eu instalei o xCode.

Exclua a versão do iOS que você não deseja e libere espaço em disco. Economizei mais de 50 GB de espaço.

insira a descrição da imagem aqui NOTA -> se você tiver vários usuários em uma única máquina macOS, localize o diretório SOMENTE com a conta de usuário que instalou o xCode originalmente.

rustyMagnet
fonte
Conto 9G acima - como você recuperou 75G?
David H das
oiDavidH - 75 GB foi antes da minha limpeza. Como trabalho com o xCode há anos, o xCode instalou silenciosamente todas as variantes do iOS 7, 8, 9 e 10 na minha máquina. Na realidade, provavelmente só preciso do iOS10 e iOS11, daqui para frente.
RustyMagnet
1
Isso é ótimo - eu nunca soube desse lugar. Eu tinha dezenas de GB aqui, depois de instalar todas as versões do Xcode.
Echelon
A pasta existe com o xCode 9.4 @PeterCullen. Você só precisa acessá-lo a partir da conta de usuário que instalou o xCode originalmente. Eu tenho duas contas de usuário no meu Mac que compartilham o xCode. Somente a conta de usuário que instalou o xCode pode visualizar esta pasta.
rustyMagnet
1
você está abrindo o Finder e selecionando "Ir para a pasta"? Biblioteca é uma pasta oculta, por padrão.
rustyMagnet
9

seguindo algumas das respostas aqui, excluindo alguns simuladores do meu Xcode Menu> Janela> Dispositivos> Simuladores não fizeram nada para ajudar meu espaço em disco que estava morrendo: insira a descrição da imagem aqui

no entanto, cd ~/Library/Developer/Xcode/iOS\ DeviceSupporte executando, du -sh *eu tenho todos esses caras:

2.9G    10.0.1 (14A403)
1.3G    10.1.1 (14B100)
2.9G    10.3.2 (14F89)
1.3G    10.3.3 (14G60)
1.9G    11.0.1 (15A402)
1.9G    11.0.3 (15A432)
2.0G    11.1.2 (15B202)
2.0G    11.2 (15C114)
2.0G    11.2.1 (15C153)
2.0G    11.2.2 (15C202)
2.0G    11.2.6 (15D100)
2.0G    11.4 (15F79)
2.0G    11.4.1 (15G77)
2.3G    12.0 (16A366)
2.3G    12.0.1 (16A404)
2.3G    12.1 (16B92)

No total, são 33 GB!

Um banho de sangue seguiu

veja mais detalhes aqui

abbood
fonte
6

Além da resposta @ childno.de, o seu diretório Mac

/private/var/db/receipts/

ainda pode conter iPhoneSimulatorSDK obsoleto .bome .plistarquivos como este:

/private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.bom /private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.plist

Isso pode fazer com que a guia Downloads das preferências do Xcode mostre uma marca ( ) dessa versão obsoleta do simulador.

Para limpar os simuladores indesejados, você pode fazer uma pesquisa usando este comando bash no seu terminal Mac:

sudo find / -name "*PhoneSimulator*"

Em seguida, vá para os diretórios correspondentes para excluir manualmente os SimulatorSDKs indesejados

Raymond
fonte
4

No XCode, abra Window - Devices e selecione e remova os simuladores desatualizados.

catanore
fonte
3

Outra coisa que você pode fazer é alterar o destino de Implantação para o valor mais alto. Isso impedirá que o Menu Esquema exiba versões mais antigas.

Para fazer isso, vá para: Destino -> Resumo e altere o Destino de Implantação.

werdsackjon
fonte
Talvez as coisas tenham mudado desde que eu postei a pergunta, mas quando o fiz, você veria os diferentes simuladores no menu Esquema, e era complicado escolher o caminho certo.
David H
3

Eu tentei todas as respostas. Nenhum deles funcionou para mim.

O que funcionou para mim no Sierra + Xcode 8.2 foi:

/Library/Developer/CoreSimulator/Devices e excluir todos os dispositivos.

(Talvez isso não funcione para você, talvez seja uma solução autônoma ou talvez você precise fazer isso além de outras respostas, mas eu fiz todas as soluções aqui e não tenho certeza do que fez a ação). Esteja ciente de que algumas das respostas aqui são antigas e a localização do simulador mudou. A resposta de Snowcrash parece ser mais recente.

Mel
fonte
Posso assumir que você desligou o Xcode primeiro, fez isso e depois reiniciou o Xcode?
21717 David
@ David David desculpe, não me lembro o que fiz. Eu tive o problema por 3-4 semanas. Cada vez que isso estava acontecendo quando eu estava alternando entre projetos / SIM-devices ... Eu só tentei de tudo e isso parecia fazer isso por mim ... novamente ele poderia algo mais para você
Mel
@DavidH que você também tentar esta resposta
Mel
Para Xcode 10 e mais recente da pasta é: ~/Library/Developer/CoreSimulator/Devices.
blackjacx
3

Eu escrevi o script bash de uma linha que excluiria TODOS os seus simuladores:

xcrun simctl list devices | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -L1 xcrun simctl delete
  • xcrun simctl list devices listará todos os simuladores instalados em sua máquina
  • grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" vai pegar o dispositivo UUID
  • xargs -L1 xcrun simctl delete tentará excluir o dispositivo para cada UUID encontrado

Se você quiser ver tudo o que será executado, você pode adicionar echoantes xcrun, ou seja,

xcrun simctl list devices | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -L1 echo xcrun simctl delete
Toland Hon
fonte
2

O problema com essas respostas é que, a cada atualização do Xcode, os menus e locais são alterados.

Basta ir /Applications/Xcode.app/Contents/Developer/Platformse excluir o que você não precisa. O Xcode começará bem. Se você estiver preocupado, basta restaurar a partir do Lixo.

Snowcrash
fonte
2
Eu duvido seriamente que o Xcode baixe simuladores e solicite seu pacote. Certamente eles vão para a biblioteca de usuários, não? Dito isto, eu nunca tenha baixado um mais antigo desde que eu tinha o meu problema com o Xcode 4.
David H
Para cada plataforma (iOS, watchOS, AppleTVOS, MacOS), tenho 2 pastas: "iPhoneOS.platform" e "iPhoneSimulator.platform" Qual deles devo excluir? Eu verifiquei com o colega, ele tinha exatamente os dois, mas não há problema. O motivo de eu estar aqui é por causa desse problema e alguém me disse que é porque eu tenho 2 simuladores / Xcodes, mas se eu não estiver correto, eu ' já eliminado minha outra versão do Xcode e também eu tiver excluído o tempo de execução 9.3 ...
mel
1
Por favor, por favor, não faça isso. Ninguém deve estar mexendo com o conteúdo dentro do pacote Xcode.
russbishop
2

Algumas pessoas tentam consertá-lo de uma maneira, outras da segunda. Basicamente, existem 2 problemas, que se você os examinar e resolver os dois - em 99%, o problema deve ser corrigido:

  1. Simuladores de dispositivos antigos localizados em YOUR_MAC_NAME(por exemplo Macintosh) -> Users-> YOUR_USERNAME( daniel) -> Library-> Developer-> Xcode-> iOS Device Support. Deixe lá, o mais novo, a partir de hoje 13.2.3 (17B111), mas no futuro isso mudará. O número mais alto (aqui 13.2.3) da versão do iOS indica que é mais recente.

  2. Após essa lista, seus dispositivos Terminalserão executados xcrun simctl list devices. Muitos deles podem ser unavailable, portanto, exclua-os executando xcrun simctl delete unavailable. Também liberará algum espaço. Para ter certeza de que está tudo bem, verifique novamente executando xcrun simctl list devices. Você deve ver os dispositivos apenas da versão mais recente (aqui 13.2.3), como mostra a captura de tela abaixo.

insira a descrição da imagem aqui

Como um bônus que é um pouco menos relevante para essa pergunta, mas ainda é gratuito, é um pouco de espaço. Vá para YOUR_MAC_NAME(por exemplo Macintosh) -> Users-> YOUR_USERNAME(por exemplo daniel) -> Library-> Developer-> Xcode-> Archives. Você verá muitos aplicativos implementados arquivados, provavelmente não precisará de todos eles. Tente excluir esses que não estão mais sendo usados.

Usando esses dois métodos e o método de bônus, consegui 15 GB de espaço extra no meu Mac.

PS. Simplesmente excluir simuladores do Xcode, vá para Xcode-> Window-> Devices and Simulators-> Simulators(ou simplesmente CMD+ SHIFT+ 2ao usar o atalho do teclado) e excluí-lo lá não ajudará. Você realmente precisa seguir as etapas descritas.

Daniel Danielecki
fonte
-2

Comando + Espaço

Digite 'simulador'

abra o antigo simulador beta que você não precisa mais.

clique com o botão direito do mouse no dock e escolha Opções> 'Mostrar no localizador'

Feche o aplicativo e remova-o da pasta.

:)

Samer
fonte