Xcode belegt zu viel Speicherplatz: Was du sicher löschen kannst
Xcode selbst belegt schon mehrere GB, und was es hinterlässt, wird oft noch viel größer: Build-Ordner, Simulatoren, Simulator-Laufzeiten und Debug-Symbole für jedes Gerät, das du je angeschlossen hast.
Kurz gesagt: DerivedData, die Device-Support-Ordner, Vorschau-Simulatoren und Simulatoren, die du nicht mehr nutzt, kannst du bedenkenlos entfernen: Xcode baut sie neu oder lädt sie wieder herunter, sobald es sie braucht. Deine Archive behältst du besser, solange du nicht sicher bist, dass du sie nicht mehr brauchst.
Wo speichert Xcode all diese Daten?
~/Library/Developer/Xcode/DerivedData: Build-Ergebnisse und Indizes für jedes Projekt, das du geöffnet hast. Sicher: Wird beim nächsten Build neu erzeugt, der dann einmal langsamer ist.~/Library/Developer/Xcode/iOS DeviceSupport(und die Ordner fürwatchOS,tvOS,macOSundvisionOS): Debug-Symbole, die von jedem angeschlossenen Gerät und jeder Systemversion kopiert wurden. Sicher: Werden beim nächsten Anschließen des Geräts erneut kopiert.~/Library/Developer/CoreSimulator/Devices: deine Simulatoren samt den darin installierten Apps und Daten. Simulatoren, deren Laufzeit nicht mehr da ist, sind toter Ballast.- Simulator-Laufzeiten (ein komplettes iOS, watchOS oder visionOS für den Simulator, jeweils mehrere GB). macOS zählt sie zu den Systemdaten, nicht zu Xcode.
~/Library/Developer/Xcode/UserData/Previews: Simulatoren für SwiftUI-Vorschauen. Sicher: Werden automatisch neu angelegt.~/Library/Developer/CoreSimulator/Cachesund~/Library/Developer/XCTestDevices: Simulator-Caches und die Klone für paralleles Testen. Sicher.~/Library/Developer/Xcode/Archives: jeder Build, den du für den App Store oder TestFlight archiviert hast. Prüfen: siehe unten.
Wie lösche ich DerivedData?
- Beende Xcode.
- Wähle im Finder Gehe zu › Gehe zu Ordner (Umschalt-Befehl-G) und füge
~/Library/Developer/Xcode/DerivedDataein. - Wähle die Ordner darin aus und lege sie in den Papierkorb. Um den Platz freizugeben, leere den Papierkorb.
Im Terminal erledigt das dieser Befehl, allerdings am Papierkorb vorbei, also ohne Weg zurück:
rm -rf ~/Library/Developer/Xcode/DerivedData/*
Wie entferne ich alte Simulatoren und Simulator-Laufzeiten?
Überlass das Xcodes eigenem Werkzeug, damit seine Liste der Simulatoren stimmt:
xcrun simctl delete unavailable
xcrun simctl runtime list
xcrun simctl runtime delete <runtime identifier>
Die erste Zeile entfernt Simulatoren, deren Laufzeit nicht mehr installiert ist. Die anderen beiden listen die installierten Laufzeiten auf und entfernen eine, auf der du nicht mehr testest. Eine Laufzeit kannst du auch unter Xcode › Settings › Components entfernen (in älteren Xcode-Versionen Platforms), einzelne Simulatoren unter Window › Devices and Simulators.
Kann ich iOS DeviceSupport bedenkenlos löschen?
Ja. Jeder Ordner enthält die Symbole eines Geräts in einer Systemversion, damit Xcode beim Debuggen auf dem Gerät lesbare Stacktraces zeigen kann. Lösch die Ordner für Versionen, die auf deinen Geräten nicht mehr laufen. Schließt du so ein Gerät wieder an, kopiert Xcode die Symbole erneut, was ein paar Minuten dauert.
Sollte ich Xcode-Archive löschen?
Nur die, bei denen du dir sicher bist. Ein Archiv enthält genau den Build, den du ausgeliefert hast, samt seinen Debug-Symbolen (dSYM). Ohne ihn kannst du Absturzberichte dieser Version nicht mehr in lesbare Stacktraces umwandeln und den Build nicht erneut exportieren. Eine gute Faustregel: Behalte die Archive der Versionen, die noch jemand nutzt.
Warum ist der Platz eine Woche später wieder belegt?
DerivedData wächst mit jedem Build wieder, und jede neue Xcode- oder iOS-Version bringt neue Laufzeiten und neuen Device Support mit. Das ist normal: Diese Ordner sind Caches. Es reicht, sie ab und zu zu leeren oder dann, wenn der Platz knapp wird.