Opslaggids voor ontwikkelaars

Xcode neemt al mijn ruimte in

Twintig tot zestig gigabyte op een werkende Mac, verdeeld over zes mappen, waarvan Xcode er nooit zelf één opruimt. Hier staat van elk waar het voor is, en of je het kunt verwijderen.

14 dagen gratis proberen, geen kaart nodig. Daarna eenmalig $ 15 voor 3 computers.

Bytesweep somt Xcodes DerivedData- en apparaatondersteuningsmappen op grootte op

Meet eerst

Eén commando vertelt je hoe het totaal zich over Xcodes mappen verdeelt, zodat je weet welke je moet aanpakken:

du -sh ~/Library/Developer/Xcode/* ~/Library/Developer/CoreSimulator 2>/dev/null | sort -h

De zes mappen

DerivedData — meestal de grootste · veilig te verwijderen

Tussenbestanden van builds, indexen en modulecaches, één map per project, voor altijd bewaard, ook van projecten die je allang hebt verwijderd.

~/Library/Developer/Xcode/DerivedData

Verwijderen kost één trage build en verder niets. Het is ook de standaardoplossing als Xcode zich vreemd gedraagt, en daarom kent elke iOS-ontwikkelaar dit pad uit het hoofd.

iOS DeviceSupport — groot · veilig te verwijderen

Symboolcaches gekopieerd van elk fysiek apparaat dat je ooit hebt aangesloten, één map per iOS-versie. Elk enkele gigabytes, en ze stapelen zich op voor telefoons die je niet meer hebt.

~/Library/Developer/Xcode/iOS DeviceSupport

Xcode kopieert ze opnieuw zodra je de volgende keer een apparaat met die iOS-versie aansluit — een tragere eerste verbinding, verder niets.

CoreSimulator-apparaten — groot · meestal veilig

Elk gesimuleerd apparaat heeft zijn eigen bestandssysteem, en ze worden nooit teruggepakt. Gebruik Xcodes eigen commando in plaats van mappen te verwijderen, zodat de database consistent blijft:

xcrun simctl delete unavailable

Wil je verder gaan: xcrun simctl delete all verwijdert elk simulatorapparaat. De simulator-runtimes zelf beheer je in Xcode → Instellingen → Componenten.

Archieven — klein maar onvervangbaar · bewaren

Elke build die je ooit hebt uitgebracht, met zijn dSYM-debugsymbolen.

~/Library/Developer/Xcode/Archives

Dit is degene die je met rust moet laten. Zonder het dSYM van een uitgebrachte build kun je crashrapporten van gebruikers die hem draaien niet symboliseren — de stacktraces blijven voor altijd hex-adressen. Moet je hier echt ruimte terugpakken, bewaar dan de archieven van elke versie die nog in omloop is.

En opnieuw na de volgende iOS-release

DerivedData is terug op de dag dat je bouwt, DeviceSupport groeit met elk apparaat dat je aansluit — dit is een terugkerend klusje, geen oplossing. Bytesweep vindt alle zes mappen in één doorloop, houdt archieven gemarkeerd als te beoordelen in plaats van op te ruimen, en draait elke opruimactie zeven dagen lang terug — wat telt op de dag dat je het verkeerde project leegt.

Cache van Swift Package Manager — veilig te verwijderen

Gekloonde afhankelijkheidsrepository's, op verzoek opnieuw opgehaald.

~/Library/Caches/org.swift.swiftpm

Oude simulator-runtimes en oude Xcode-versies — met zorg

Een eerdere Xcode.app is op zichzelf 15 GB, en de runtimes nog een paar. Bewaar de versie die je voor een ouder project nog nodig hebt; verwijder de rest via de Finder en haal daarna de bijbehorende runtimes weg bij Instellingen → Componenten.

Twee gewoontes die het klein houden

Verwijder DerivedData per project, niet in één keer

Elke submap is naar een project genoemd. De hele map legen dwingt tot een herbouw van alles waar je aan werkt; die van projecten die je vorig jaar afrondde legen kost helemaal niets.

Controleer DeviceSupport na elke iOS-release

Het groeit met één map per iOS-versie en per aangesloten apparaat, dus het klimt het hele jaar stilletjes omhoog. Twee minuten elke september voorkomen dat het 30 GB wordt.

Vind alle zes in één keer

Bytesweep herkent elke Xcode-map aan de naam, toont de grootte, en markeert archieven als te beoordelen in plaats van op te ruimen. Alles wat je leegt gaat naar een herstelpunt: ongedaan maken is zeven dagen lang één klik.

Zie ook: Docker disk space · de volledige Mac-lijst

Vragen

Is het veilig om DerivedData te verwijderen?

Ja. Het is volledig afgeleid van je broncode, precies wat de naam zegt. De enige prijs is dat de volgende build van elk betrokken project een volledige is.

Breekt het verwijderen van DeviceSupport het debuggen op mijn telefoon?

Nee. Xcode kopieert de symbolen opnieuw zodra je de volgende keer een apparaat met die iOS-versie aansluit. De eerste verbinding daarna duurt een paar minuten langer.

Kan ik Xcode-archieven verwijderen?

Dat kan, maar denk er eerst over na. Archieven bevatten de dSYM-bestanden van builds die je hebt uitgebracht, en zonder die kunnen crashrapporten van die versies niet gesymboliseerd worden. Bewaar alles wat nog bij gebruikers zit; oude bèta's mogen gerust weg.

Waarom is Xcode.app zelf zo groot?

Ongeveer 15 GB, omdat het de toolchains, SDK's en simulator-runtimes meebrengt voor elk platform dat Apple ondersteunt. Ongebruikte simulator-runtimes kun je weghalen bij Xcode → Instellingen → Componenten, maar het app-bundel zelf is wat het is.

Ruimt Xcode hier automatisch iets van op?

Nee. Geen van deze mappen heeft een groottelimiet of een vervaldatum. Dat is precies waarom deze pagina bestaat.