Xcode zabiera mi całe miejsce
Dwadzieścia do sześćdziesięciu gigabajtów na czynnym Macu, rozłożonych na sześć folderów, z których Xcode nigdy sam żadnego nie sprząta. Oto każdy z nich, po co jest i czy możesz go usunąć.
14 dni za darmo, bez karty. Potem 15 $ jednorazowo na 3 komputery.

Najpierw zmierz
Jedno polecenie mówi, jak suma rozkłada się na foldery Xcode, żebyś wiedział, który wziąć na cel:
du -sh ~/Library/Developer/Xcode/* ~/Library/Developer/CoreSimulator 2>/dev/null | sort -h
Sześć folderów
DerivedData — zwykle największy · bezpieczny do usunięcia
Pliki pośrednie kompilacji, indeksy i pamięci podręczne modułów, jeden folder na projekt, trzymane na zawsze, także dla projektów usuniętych dawno temu.
~/Library/Developer/Xcode/DerivedData
Usunięcie kosztuje jedną wolną kompilację i nic więcej. To także standardowe rozwiązanie, gdy Xcode zachowuje się dziwnie, i dlatego każdy programista iOS zna tę ścieżkę na pamięć.
iOS DeviceSupport — duży · bezpieczny do usunięcia
Pamięci podręczne symboli skopiowane z każdego fizycznego urządzenia, jakie podłączyłeś, jeden folder na wersję iOS. Po kilka gigabajtów każdy i zbierają się dla telefonów, których już nie masz.
~/Library/Developer/Xcode/iOS DeviceSupport
Xcode skopiuje je ponownie, gdy następnym razem podłączysz urządzenie z tą wersją iOS — wolniejsze pierwsze połączenie i nic więcej.
Urządzenia CoreSimulator — duże · w większości bezpieczne
Każde symulowane urządzenie ma własny system plików i nigdy nie są odzyskiwane. Użyj polecenia samego Xcode, zamiast usuwać foldery, żeby jego baza pozostała spójna:
xcrun simctl delete unavailable
Aby pójść dalej, xcrun simctl delete all usuwa każde urządzenie symulowane. Same środowiska symulatorów zarządzane są w Xcode → Ustawienia → Komponenty.
Archiwa — małe, ale niezastąpione · zachowaj
Każda kompilacja, jaką kiedykolwiek wydałeś, wraz z jej symbolami debugowania dSYM.
~/Library/Developer/Xcode/Archives
To ten, który należy zostawić w spokoju. Bez dSYM wydanej kompilacji nie zsymbolizujesz raportów awarii od użytkowników, którzy jej używają — ślady stosu zostaną adresami szesnastkowymi na zawsze. Jeśli musisz tu odzyskać miejsce, zachowaj archiwa każdej wersji, która wciąż jest w obiegu.
I znowu po kolejnym wydaniu iOS
DerivedData wraca w dniu, w którym kompilujesz, DeviceSupport rośnie z każdym podłączonym urządzeniem — to powtarzalny obowiązek, nie rozwiązanie. Bytesweep znajduje wszystkie sześć folderów w jednym przebiegu, trzyma archiwa oznaczone jako do przejrzenia, a nie do sprzątnięcia, i cofa każde sprzątanie przez siedem dni — co ma znaczenie w dniu, w którym wyczyścisz niewłaściwy projekt.
Pamięć podręczna Swift Package Manager — bezpieczna do usunięcia
Sklonowane repozytoria zależności, pobierane ponownie na żądanie.
~/Library/Caches/org.swift.swiftpm
Stare środowiska symulatorów i stare wersje Xcode — z rozwagą
Poprzedni Xcode.app to samo w sobie 15 GB, a jego środowiska kolejne kilka. Zachowaj wersję, której nadal potrzebujesz do starszego projektu; resztę usuń przez Finder, a potem usuń powiązane środowiska w Ustawienia → Komponenty.
Dwa nawyki, które trzymają to w ryzach
Usuwaj DerivedData na projekt, nie hurtem
Każdy podfolder nosi nazwę projektu. Wyczyszczenie całego folderu wymusza przebudowę wszystkiego, nad czym właśnie pracujesz; wyczyszczenie tych z projektów zakończonych w zeszłym roku nie kosztuje absolutnie nic.
Sprawdzaj DeviceSupport po każdym wydaniu iOS
Rośnie o jeden folder na wersję iOS i na każde podłączone urządzenie, więc przez cały rok pnie się w górę po cichu. Dwie minuty każdego września nie pozwalają, by zrobiło się z tego 30 GB.
Znajdź wszystkie sześć naraz
Bytesweep rozpoznaje każdy folder Xcode po nazwie, pokazuje jego rozmiar i oznacza archiwa jako warte przejrzenia, a nie do sprzątnięcia. Wszystko, co czyścisz, trafia do punktu przywracania: cofnięcie jest o jedno kliknięcie przez siedem dni.
Zobacz też: Docker disk space · pełna lista dla Maca
Pytania
Czy bezpiecznie jest usunąć DerivedData?
Tak. Jest w całości wyprowadzony z twojego kodu, i dokładnie to mówi nazwa. Jedynym kosztem jest to, że następna kompilacja każdego objętego projektu będzie pełna.
Czy usunięcie DeviceSupport zepsuje debugowanie na moim telefonie?
Nie. Xcode skopiuje symbole ponownie, gdy następnym razem podłączysz urządzenie z tą wersją iOS. Pierwsze połączenie potem potrwa kilka minut dłużej.
Czy mogę usunąć archiwa Xcode?
Możesz, ale najpierw pomyśl. Archiwa zawierają pliki dSYM wydanych kompilacji, a bez nich raportów awarii z tych wersji nie da się zsymbolizować. Zachowaj wszystko, co wciąż jest u użytkowników; stare bety usuwaj śmiało.
Dlaczego sam Xcode.app jest taki duży?
Około 15 GB, bo zawiera łańcuchy narzędzi, SDK i środowiska symulatorów dla każdej platformy wspieranej przez Apple. Nieużywane środowiska symulatorów możesz usunąć w Xcode → Ustawienia → Komponenty, ale sam pakiet aplikacji jest, jaki jest.
Czy Xcode sprząta coś z tego automatycznie?
Nie. Żaden z tych folderów nie ma limitu rozmiaru ani terminu ważności. To właśnie dlatego ta strona istnieje.