Por que o Xcode ocupa tanto espaço e como recuperá-lo
O Xcode em si é grande, mas a maior parte do espaço que ele usa fica fora do app: saída de compilação em DerivedData, arquivos de símbolos de cada versão do iOS que você já conectou, dispositivos e runtimes do simulador e archives de cada compilação que você publicou. Quase tudo fica em ~/Library/Developer, e a maior parte pode ser recriada.
Abaixo estão as pastas exatas, o comando ou menu que limpa cada uma e o que apagá-la custa a você. Encerre o Xcode e o Simulator antes de começar.
Veja para onde o espaço está indo
Antes de apagar qualquer coisa, meça. Este comando mostra o tamanho de cada pasta que o Xcode e o Simulator mantêm na sua Biblioteca. Ele apenas lê os tamanhos.
Na maioria dos Macs de desenvolvedores, as primeiras entradas são CoreSimulator e Xcode, e dentro de Xcode as maiores pastas são DerivedData, iOS DeviceSupport e Archives.
du -sh ~/Library/Developer/* ~/Library/Developer/Xcode/* 2>/dev/null | sort -hDerivedData: saída de compilação e índices
Caminho: ~/Library/Developer/Xcode/DerivedData. O Xcode cria aqui uma pasta por projeto ou workspace, com objetos compilados, o cache de módulos, o índice de código, logs de compilação e os pacotes Swift que ele baixou para aquele projeto. Pastas de projetos que você apagou há muito tempo ficam para trás.
Esta é a coisa mais segura de remover e, em geral, a maior. O comando abaixo apaga tudo o que há dentro de DerivedData, de todos os projetos. Você também pode abrir a pasta no Finder e remover apenas os projetos em que não trabalha mais.
O que custa: a próxima compilação de cada projeto é completa, o Xcode reindexa o código e os pacotes Swift são resolvidos de novo. Você não perde código-fonte nem ajustes.
rm -rf ~/Library/Developer/Xcode/DerivedData/*DeviceSupport: símbolos dos dispositivos que você conectou
Caminho: ~/Library/Developer/Xcode/iOS DeviceSupport, com pastas equivalentes para watchOS, tvOS e visionOS. Na primeira vez que você conecta um dispositivo com determinada versão do sistema, o Xcode copia os símbolos de sistema daquela versão para poder depurar no dispositivo e simbolizar logs de falha. Cada atualização do sistema em cada dispositivo adiciona mais uma pasta, cada uma com vários GB, e o Xcode nunca remove as antigas.
Abra a pasta no Finder e mova para o Lixo as versões que você não usa mais. Os nomes das pastas incluem a versão do sistema e o número da compilação, então é fácil ver quais são antigas.
O que custa: se você conectar um dispositivo em uma versão que removeu, o Xcode copia os símbolos de novo, o que leva alguns minutos. Mantenha as versões que seus dispositivos atuais usam.
Dispositivos e caches do simulador
Caminho: ~/Library/Developer/CoreSimulator/Devices. Cada simulador é uma pasta com um conjunto completo de dados daquele dispositivo: apps instalados, seus documentos, fotos e ajustes. Depois que você atualiza o Xcode, os simuladores que pertenciam a runtimes que você não tem mais ficam para trás como dispositivos indisponíveis. O comando abaixo remove apenas esses.
Para redefinir os simuladores que você mantém, xcrun simctl erase all apaga o conteúdo e os ajustes de todos os simuladores, mas deixa os dispositivos no lugar. O que custa: os apps e dados de teste dentro desses simuladores.
~/Library/Developer/CoreSimulator/Caches guarda os caches que o Simulator cria para cada runtime. É seguro apagá-la enquanto o Simulator está fechado. O que custa: a próxima inicialização de cada simulador é mais lenta enquanto o cache é recriado.
xcrun simctl delete unavailableRuntimes antigos do simulador
Um runtime é o próprio sistema operacional simulado, como uma determinada versão do iOS. Cada um tem vários GB, e eles se acumulam conforme você instala novas versões do Xcode. Eles ficam guardados em /Library/Developer/CoreSimulator, de todo o sistema, não na sua pasta pessoal, e devem ser removidos pelo Xcode ou pelo simctl, não manualmente.
No Xcode, abra Settings e escolha Components (chamado de Platforms no Xcode 15). Selecione um runtime com o qual você não testa mais e apague-o. Pelo Terminal, o comando abaixo lista os runtimes instalados com seus identificadores, e xcrun simctl runtime delete seguido de um identificador remove um deles.
O que custa: você não pode rodar simuladores daquela versão do sistema até baixar o runtime de novo, e é um download grande.
xcrun simctl runtime listArchives: pense antes de apagar
Caminho: ~/Library/Developer/Xcode/Archives. Toda vez que você escolhe Product e depois Archive, o Xcode guarda o app compilado junto com seus símbolos de depuração (arquivos dSYM). Os archives são agrupados em pastas por data.
Gerencie-os pelo Organizer do Xcode: escolha Window, depois Organizer, selecione Archives, clique com o botão direito em um archive e apague-o.
O que custa: este é o único item que você não consegue recriar de forma exata. Você precisa dos dSYMs de um archive para simbolizar relatórios de falha daquela compilação, e do próprio archive se tiver de exportá-lo ou reenviá-lo. Mantenha os archives das versões que ainda estão publicadas e remova compilações antigas de desenvolvimento e de teste.
Caches de pacotes Swift e previews
O Swift Package Manager mantém um cache compartilhado dos repositórios que clonou em ~/Library/Caches/org.swift.swiftpm. O comando abaixo, executado de dentro de qualquer pasta de pacote, o esvazia. O que custa: os pacotes são baixados de novo na próxima resolução.
Os previews do SwiftUI rodam em seu próprio conjunto de simuladores, guardado em ~/Library/Developer/Xcode/UserData/Previews. Para removê-los, execute xcrun simctl --set previews delete all. O que custa: o próximo preview demora mais para aparecer enquanto o Xcode recria o dispositivo.
Se você usa CocoaPods ou Carthage, eles têm caches próprios fora das pastas do Xcode.
swift package purge-cacheComo o Diskzy lida com as sobras do Xcode
A aba Clean up (Limpeza) do Diskzy encontra essas pastas e define um padrão para cada uma, com o motivo à mostra. DerivedData vem marcada, a não ser que o Xcode esteja aberto. Em DeviceSupport, as duas versões mais recentes são mantidas e as mais antigas vêm marcadas. CoreSimulator Caches vem marcado. CoreSimulator Devices vem desmarcado, porque são os seus simuladores e os dados dos apps deles. Os Archives são listados, mas desmarcados, para você manter os que talvez precise reenviar.
Tudo o que o Diskzy remove vai para o Lixo, então nada se perde até você esvaziá-lo. É um app nativo para Mac, para o macOS 15 Sequoia ou posterior, grátis por 72 horas com tudo liberado, depois US$ 9 uma única vez para 2 Macs.
Perguntas frequentes
- É seguro apagar a DerivedData do Xcode?
- Sim. Ela contém apenas saída de compilação, índices e logs que o Xcode gera de novo. A próxima compilação de cada projeto vai demorar mais, porque nada está em cache.
- Posso apagar a pasta iOS DeviceSupport?
- Sim. O Xcode copia os símbolos de novo na próxima vez que você conectar um dispositivo com aquela versão do sistema. Faz sentido manter as versões que seus dispositivos atuais usam.
- O que o xcrun simctl delete unavailable faz?
- Ele remove os dispositivos de simulador cujo runtime não está mais instalado, o que em geral significa sobras de versões antigas do Xcode. Os simuladores que você ainda consegue rodar não são tocados.
- Devo apagar os archives do Xcode?
- Só os de que você não precisa mais. Um archive guarda os símbolos de depuração usados para simbolizar relatórios de falha daquela compilação, então mantenha os archives das versões que seus clientes ainda usam.
- Por que o Xcode volta a ocupar espaço depois que eu limpo?
- A DerivedData e os caches do simulador são recriados assim que você compila e roda um projeto. Isso é esperado: a economia vem de remover dados de projetos antigos, versões antigas do sistema e simuladores sem uso.
Guias relacionados
- DerivedData~/Library/Developer/Xcode/DerivedData
- iOS DeviceSupport~/Library/Developer/Xcode/iOS DeviceSupport
- CoreSimulator Devices~/Library/Developer/CoreSimulator/Devices
- CoreSimulator Caches~/Library/Developer/CoreSimulator/Caches
- Xcode Archives~/Library/Developer/Xcode/Archives
Guias de desinstalação
Veja para onde foi o espaço do seu Mac
O Diskzy mapeia o disco, explica os Dados do Sistema e limpa o que é seguro. Grátis por 72 horas, depois US$ 9 uma única vez para 2 Macs.
Experimente o Diskzy grátis