Ontwikkelaars

Mag je Xcode DerivedData, oude simulators en iOS DeviceSupport veilig verwijderen?

Wat elke Xcode-map in ~/Library/Developer bevat, wat Xcode zelf opnieuw opbouwt, waarom Archives zorg vragen en hoe je simulators met simctl verwijdert.

6 min. leestijdDoor het MoreRoom-team, Yando Pte. Ltd.Deze pagina als Markdown

In het kort

  • DerivedData kun je veilig verwijderen: Xcode bouwt het bij de volgende build opnieuw op. Het kost je één tragere build en een nieuwe index.
  • Mappen in iOS DeviceSupport kun je veilig verwijderen; Xcode kopieert de symbolen opnieuw zodra je een apparaat met die versie aansluit.
  • Verwijder Xcode-Archives niet blindelings. Ze bevatten de dSYM-bestanden die Xcode nodig heeft om crashrapporten van gepubliceerde builds te symboliseren.
  • Verwijder simulators met xcrun simctl delete unavailable en runtimes met xcrun simctl runtime delete, niet door zelf mappen weg te gooien.
  • Een simulatorruntime is doorgaans 7–10 GB, dus de iOS-versies verwijderen waarop je niet meer test, levert vaak de grootste winst op.

Zo ruim je de opslag van Xcode veilig op

  1. Stop Xcode en Simulator. Stop Xcode en de Simulator-app, zodat geen build, indexering of opgestart apparaat de mappen gebruikt die je gaat opruimen.
  2. Verwijder DerivedData. Open ~/Library/Developer/Xcode/DerivedData in de Finder en verplaats de inhoud naar de prullenmand. Xcode bouwt bij de volgende build opnieuw op wat het nodig heeft.
  3. Verwijder oude DeviceSupport-mappen. Verplaats in ~/Library/Developer/Xcode/iOS DeviceSupport de mappen van besturingssysteemversies en apparaten waarop je niet meer debugt naar de prullenmand.
  4. Verwijder niet-beschikbare simulators. Voer xcrun simctl delete unavailable uit in Terminal om simulatorapparaten te verwijderen waarvan de runtime niet meer is geïnstalleerd.
  5. Verwijder simulatorruntimes die je niet meer nodig hebt. Voer xcrun simctl runtime list uit en daarna xcrun simctl runtime delete met de ID van elke runtime waarop je niet meer test, of gebruik Xcode › Settings › Components.
  6. Bekijk de Archives als laatste. Open Window › Organizer › Archives en bewaar elk archief van een build die gebruikers nog kunnen draaien. Kopieer oudere archieven naar een andere schijf voordat je ze verwijdert.

Grotendeels wel. DerivedData, iOS DeviceSupport, klonen van testapparaten, previewsimulators en de caches van Xcode kun je veilig verwijderen: Xcode maakt ze opnieuw aan wanneer het ze nodig heeft. Ook simulators en simulatorruntimes mogen weg, maar gebruik daarvoor Apples tool simctl en niet de Finder. Wees alleen voorzichtig met Archives: daarin staan de debugsymbolen van apps die je hebt uitgebracht.

Op een Mac waarmee je voor iOS ontwikkelt, lopen deze mappen samen al snel op tot tientallen gigabytes. Hieronder lees je wat elke map is en hoe je hem het netst verwijdert.

Waar Xcode zijn gegevens bewaart

Bijna alles staat onder ~/Library/Developer in je thuismap. De uitzondering zijn simulatorruntimes: dat zijn schijfkopieën van het systeem die macOS zelf beheert.

Map Pad Veilig te verwijderen? Komt terug?
DerivedData ~/Library/Developer/Xcode/DerivedData Ja Ja, bij de volgende build
Archives ~/Library/Developer/Xcode/Archives Eerst bekijken Nee
iOS DeviceSupport ~/Library/Developer/Xcode/iOS DeviceSupport Ja Ja, als je het apparaat aansluit
Simulatorapparaten ~/Library/Developer/CoreSimulator/Devices Via simctl Opnieuw aanmaken in Xcode
Simulatorruntimes /Library/Developer/CoreSimulator/Volumes Via simctl Opnieuw downloaden
Klonen van testapparaten ~/Library/Developer/XCTestDevices Ja Ja, bij parallelle tests
SwiftUI-previews ~/Library/Developer/Xcode/UserData/Previews Ja Ja, als previews draaien
Simulatorcaches ~/Library/Developer/CoreSimulator/Caches Ja Ja
Xcode-caches ~/Library/Caches/com.apple.dt.Xcode Ja Ja

Voor de mappen watchOS DeviceSupport, tvOS DeviceSupport, visionOS DeviceSupport en macOS DeviceSupport op dezelfde plek geldt hetzelfde als voor DeviceSupport.

Overzicht van de opslagmappen van Xcode onder ~/Library/Developer, met de labels Veilig te verwijderen en Eerst bekijken

DerivedData: veilig, Xcode bouwt het opnieuw op

DerivedData bevat tussentijdse buildproducten, de broncode-index, buildlogs en modulecaches, met één submap per project. Je code blijft altijd onaangeroerd als je het verwijdert. Het kost je alleen tijd: de volgende build van elk project begint vanaf nul, en Xcode indexeert opnieuw voordat codeaanvulling weer volledig werkt.

Stop eerst Xcode en verplaats daarna de inhoud naar de prullenmand:

open ~/Library/Developer/Xcode/DerivedData

Wil je maar één project opschonen, verwijder dan alleen de submap daarvan (de projectnaam plus een willekeurig achtervoegsel). Product › Clean Build Folder in Xcode verwijdert de buildproducten, maar laat de index meestal staan en maakt dus minder vrij. De locatie kun je bekijken of wijzigen in Xcode › Settings › Locations.

Archives: bewaar wat je hebt uitgebracht

Elk .xcarchive is een ondertekende build die je met Product › Archive hebt gemaakt, inclusief de dSYM-bestanden van de app. Xcode gebruikt die om symboolnamen aan crashrapporten toe te voegen: zonder de bijbehorende dSYM toont een crash van die build geheugenadressen in plaats van functienamen. Crashrapportagediensten van derden hebben dezelfde bestanden nodig.

Bekijk je archieven dus één voor één in plaats van de map leeg te maken. Verwijder in Window › Organizer › Archives builds die geen enkele gebruiker meer draait, zoals oude interne testbuilds. Van versies die nog in de App Store of in TestFlight staan, bewaar je het archief, of je kopieert de .xcarchive-bundels naar een externe schijf voordat je ze van je Mac verwijdert.

iOS DeviceSupport: veilig, wordt opnieuw gekopieerd als het nodig is

Sluit je een iPhone, iPad, Apple Watch, Apple TV of Vision Pro aan om te ontwikkelen, dan kopieert Xcode de systeemsymbolen van dat apparaat, zodat het op je Mac kan debuggen en symboliseren. Recente versies van Xcode noemen elke map naar het apparaatmodel, de systeemversie en de build, bijvoorbeeld iPhone15,5 27.0.1 (24A446), en één map is vaak al meerdere gigabytes.

Elke iOS-update op elk apparaat waarop je debugt, voegt een nieuwe map toe, en Xcode ruimt de oude niet op. Mappen van systeemversies die je niet meer gebruikt, kun je veilig naar de prullenmand verplaatsen. Verwijder je er een die je nog nodig hebt, dan kopieert Xcode hem opnieuw zodra je dat apparaat aansluit. Dat duurt een paar minuten.

Simulators: apparaten en runtimes zijn twee verschillende dingen

Een simulatorruntime is een volledige systeemkopie van één besturingssysteemversie, zoals iOS 27.1, doorgaans 7–10 GB groot. Een simulatorapparaat is een kleine configuratie met eigen gegevens: geïnstalleerde apps, foto’s en instellingen. Meerdere apparaten kunnen één runtime delen. Een apparaat verwijderen maakt dus de gegevens daarvan vrij, een runtime verwijderen de grote systeemkopie.

Schema van één simulatorruntime die door meerdere simulatorapparaten wordt gedeeld, en welke simctl-opdracht elk onderdeel verwijdert

Simulatorapparaten verwijderen

Toon de apparaten en verwijder de apparaten die niet meer werken met je geïnstalleerde runtimes:

xcrun simctl list devices
xcrun simctl delete unavailable

delete unavailable verwijdert apparaten die de huidige Xcode niet meer ondersteunt, meestal overblijfselen van oudere runtimes. Wil je één bepaald apparaat verwijderen, geef dan de UDID uit de lijst op: xcrun simctl delete <UDID>. Dat kan ook in Window › Devices and Simulators. Gebruik xcrun simctl delete all alleen als je echt elke simulator met alle gegevens wilt verwijderen. Een apparaat verwijderen is definitief; je kunt in Xcode altijd een nieuw apparaat aanmaken.

Simulatorruntimes verwijderen

xcrun simctl runtime list
xcrun simctl runtime delete <identifier>

runtime list toont elke geïnstalleerde systeemkopie met versie, ID en status, plus de totale grootte. runtime delete verwacht de ID (de UUID op elke regel), en ontkoppelt en verwijdert dan de kopie. Sinds Xcode 27 accepteert delete ook --dry-run om eerst te kijken wat er gebeurt, plus --notUsedSinceDays <days>, --unusable en --outdated. Oudere versies van Xcode kennen minder opties; voer xcrun simctl runtime uit om te zien wat jouw versie ondersteunt.

In Xcode zelf kan hetzelfde via Xcode › Settings › Components (in Xcode 15 heette dat Platforms): selecteer een runtime en verwijder hem. Apples handleiding over het downloaden en installeren van extra Xcode-componenten legt uit hoe je er een terugkrijgt, ook met xcodebuild -downloadPlatform iOS in Terminal.

Verwijder runtimebestanden niet met de hand uit /Library/Developer/CoreSimulator/Volumes of /System/Library/AssetsV2. Recente versies van Xcode bewaren runtimes als assets die het systeem beheert. Haal je de bestanden rechtstreeks weg, dan kan een runtime geregistreerd blijven terwijl hij niet meer werkt.

Testklonen, previews en simulatorcaches

  • XCTestDevices: klonen die Xcode aanmaakt voor parallelle tests. Veilig naar de prullenmand te verplaatsen zolang er geen tests draaien.
  • SwiftUI-previews: Xcode draait previews in een eigen set simulators. xcrun simctl --set previews delete all verwijdert ze; Xcode maakt ze opnieuw aan zodra er weer een preview draait.
  • Caches en logbestanden van CoreSimulator: ~/Library/Developer/CoreSimulator/Caches en ~/Library/Logs/CoreSimulator kun je veilig leegmaken terwijl de Simulator-app gesloten is.

Oude Xcode-versies, toolchains en downloads

Elke kopie van Xcode in /Applications is een grote app, en bèta’s of oudere kopieën die je voor een ouder project bewaart, tellen snel op. Controleer voordat je er een verwijdert welke Xcode de opdrachtregeltools gebruiken:

xcode-select -p

Bewaar de kopie waarnaar dat pad verwijst, en elke versie die een CI-taak of oud project nog nodig heeft. Kijk ook in ~/Downloads naar .xip-bestanden: zodra Xcode is geïnstalleerd, heb je het archief niet meer nodig. Extra Swift-toolchains van swift.org staan in ~/Library/Developer/Toolchains; bewaar de toolchains die je projecten gebruiken.

~/Library/Caches/com.apple.dt.Xcode is de eigen cache van Xcode en wordt opnieuw opgebouwd wanneer dat nodig is. Gebruik je Xcode al vele jaren, dan vind je misschien ook offline documentatiesets die veel oudere versies van Xcode in ~/Library/Developer/Shared/Documentation/DocSets hebben gezet; huidige versies gebruiken ze niet meer.

Een logische volgorde

  1. Stop Xcode en Simulator.
  2. Verwijder DerivedData, XCTestDevices en previewsimulators. Dat is zonder risico.
  3. Voer xcrun simctl delete unavailable uit.
  4. Verwijder DeviceSupport-mappen en simulatorruntimes van systeemversies waarvoor je niet meer ontwikkelt.
  5. Bekijk Archives en oude Xcode-kopieën als laatste, en neem er de tijd voor.

Leeg daarna de prullenmand om de ruimte echt terug te krijgen. De mappen zijn hetzelfde op macOS 27 Golden Gate, 26 Tahoe, 15 Sequoia en 14 Sonoma; welke simctl-opties beschikbaar zijn, hangt af van je Xcode-versie.

Hoe MoreRoom helpt

De gratis versie van MoreRoom scant ~/Library/Developer en herkent elk van deze mappen, met een label “Veilig te verwijderen” of “Eerst bekijken” en de vermelding of de map terugkomt. DerivedData, DeviceSupport, testklonen en caches gaan één voor één naar de prullenmand, met Herstel. Voor simulatorapparaten en runtimes gebruikt MoreRoom Apples eigen xcrun simctl delete en xcrun simctl runtime delete; die opdrachten zijn definitief en worden ook zo gelabeld. Archives worden gemarkeerd als iets om te bewaren.

MoreRoom Pro voegt de Verzamelaar toe om meerdere onderdelen in één keer op te ruimen, Doelmodus, die de veiligste selectie kiest voor de ruimte die je nodig hebt, en Projectwinterslaap voor inactieve projecten. Archieven vanuit MoreRoom naar een externe schijf verplaatsen komt binnenkort; kopieer ze tot die tijd zelf.

Veelgestelde vragen

Gaat mijn Xcode-project kapot als ik DerivedData verwijder?

Nee. DerivedData bevat alleen buildproducten, indexen en logbestanden die Xcode zelf aanmaakt. Je broncode en projectinstellingen staan in je projectmap. De volgende build en indexering duren wel langer, terwijl Xcode de gegevens opnieuw aanmaakt.

Kan ik Xcode-Archives veilig verwijderen?

Alleen van builds die niemand meer gebruikt. Elk archief bevat de dSYM-bestanden die adressen in crashrapporten omzetten in functienamen. Bewaar de archieven van elke versie die gebruikers nog hebben, of kopieer ze eerst naar een andere schijf.

Waarom komt iOS DeviceSupport steeds terug?

Xcode kopieert debugsymbolen van elk apparaat dat je voor ontwikkeling aansluit, één keer per apparaatmodel en besturingssysteemversie. Verwijder je de map van een apparaat dat je nog gebruikt, dan kopieert Xcode hem opnieuw zodra je dat apparaat weer aansluit.

Kan ik niet gewoon de map CoreSimulator verwijderen?

Liever niet. Simulatorapparaten en runtimes zijn geregistreerd bij de CoreSimulator-dienst, en runtimes zijn gekoppelde schijfkopieën van het systeem. Gebruik xcrun simctl delete en xcrun simctl runtime delete, of de instellingen van Xcode, zodat de administratie klopt.

Hoe krijg ik een verwijderde simulatorruntime terug?

Download hem opnieuw via Xcode › Settings › Components, of voer xcodebuild -downloadPlatform iOS uit in Terminal. Daarna kun je simulatorapparaten opnieuw aanmaken in Window › Devices and Simulators.

Mappen in deze handleiding