Elke iOS-, macOS-, watchOS- en visionOS-ontwikkelaar deelt dezelfde terugkerende nachtmerrie: wakker worden met een waarschuwing dat je Mac minder dan 5 GB schijfruimte over heeft. Je hebt geen games of films gedownload, dus waar is je SSD van 512 GB gebleven? In 95% van de gevallen is de boosdoener Xcode DerivedData en caches bouwen.

Tijdens actieve compilatie genereert Xcode tussenobjectbestanden, vooraf gecompileerde headers, indexerende symbooltabellen en caches van compilermodules. Na maandenlang verschillende takken en afhankelijkheden te hebben opgebouwd, snoeien deze mappen zichzelf nooit. Hier ziet u hoe u op een schone en veilige manier 50 GB tot 100 GB schijfruimte voor ontwikkelaars kunt vrijmaken.

Xcode DerivedData en build-cache-optimalisatie
Veilig opschonen van tussentijdse bouwproducten en symboolgrafieken op Apple Silicon.

Waar Xcode zijn zware schijfcaches verbergt

Xcode distribueert zijn tijdelijke buildproducten en ondersteuningsbestanden over vijf primaire mappen:

  • DerivedData (~/Library/Developer/Xcode/DerivedData): Tussenliggende objectbestanden, indexdatabases en bouwproducten. Verbruikt 20 GB–60 GB.
  • iOS DeviceSupport (~/Library/Developer/Xcode/iOS DeviceSupport): Symbolen van elke fysieke iPhone of iPad die je ooit hebt aangesloten. Verbruikt 5 GB–15 GB per iOS-versie.
  • Archieven (~/Library/Developer/Xcode/Archives): Oude .xcarchive-builds die zijn opgeslagen bij het maken van productieversies in de App Store. Kan in een jaar tijd groeien tot meer dan 40 GB.
  • Swift Package Manager Cache (~/Library/Caches/org.swift.swiftpm): Gekloonde git-opslagplaatsen en gecompileerde betalingsbinaire bestanden voor SPM-afhankelijkheden.
  • XCTestDevices (~/Library/Developer/XCTestDevices): Verweesde tijdelijke simulatorklonen gemaakt tijdens parallelle testruns.

Is het veilig om afgeleide gegevens te verwijderen?

Ja, absoluut. DerivedData is 100% regenereerbaar. De volgende keer dat u een project opent en op Cmd+B drukt, zal Xcode uw code opnieuw indexeren en de benodigde objectbestanden compileren. De enige kosten zijn een iets langere initiële bouwtijd bij de eerste run.

Handmatig verwijderen via Terminal vs. MagicMacCleaner

Je kunt DerivedData handmatig verwijderen door Xcode af te sluiten en het volgende uit te voeren: rm -rf ~/Library/Developer/Xcode/DerivedData/*. Als u echter handmatig een terminal verwijdert, worden al uw projecten in één keer gewist, zelfs het project waar u nu aan werkt.

De speciale Xcode Deep Clean-module van MagicMacCleaner lost dit op door de wijzigingsdatum van elke projectsubmap te lezen. Hiermee kunt u actieve projecten intact houden terwijl u slapende clients en verouderde repository's met één klik opschoont.

Workflow voor mobiele ontwikkelaars: maak opslagruimte vrij op fysieke test-iPhones

Terwijl het wissen van Xcode-caches, simulatorruntimes en buildcontainers vitale ruimte op je Mac vrijmaakt, raken fysieke iOS-testapparaten snel verstopt met testbuilds, crashartefacten, diagnostische schermopnamen en QA-screenshots. Het is van essentieel belang dat u uw fysieke testhardware slank houdt voor snelle foutopsporing op het apparaat en betrouwbare implementatie.

  • Clearly Smart Storage Cleaner: Comprimeert gigabyte-zware schermopnamen van bugrapporten, detecteert dubbele testmedia en ordent rommelige contacten over ontwikkelings- en persoonlijke iPhones.
  • Swipe Photo Cleaner: Bekijk en verwijder snel honderden UI-testscreenshots en demo-bursts met moeiteloze veeg-om-te-verwijderen-gebaren.

Apple Ecosystem-ontwikkelaartip: test apparaatoptimalisatie

Te weinig opslagruimte op verbonden iOS-apparaten kan time-outs voor de draadloze implementatie van Xcode en fouten bij het opsporen van LLDB's veroorzaken. Regelmatige mediaopschoning op het apparaat voorkomt cryptische implementatiefouten bij het bouwen.