Brak miejsca na dysku

Opublikowano

Pozostało 500 MB wolnego miejsca na dysku ⚠️ Takie i podobne komunikaty towarzyszyły mi na co dzień w pracy, gdy jako służbowego laptopa otrzymałem MacBook Pro 13 ze 128 GB przestrzeni dyskowej. Ale patrząc optymistycznie, przynajmniej był to już SSD 😂

Łatwo sobie wyobrazić radość, kiedy zmieniłem na nowy model MacBook’a Pro z dyskiem 256 GB, problem wydawał się być już zażegnany… do czasu. Ten dwa razy większy dysk przystał być wystarczalny wraz ze wzrostem liczby projektów. Więc przyszedł czas na rozwiązanie tego problemu i wymieniłem na kolejny model, tym razem 512 GB. Muszę przyznać, że obecnie zbliżyłem się już do magicznej granicy poniżej 10 GB wolnego miejsca na dysku. W końcu ciągłe kupowanie coraz to nowszych komputerów z większym dyskiem nie wydaje się być najefektywniejszym rozwiązaniem.

Na szczęście doświadczenie, kiedy trzeba było sobie radzić z rzeczywistością gdy miało się do dyspozycji tylko 128 GB, bardzo mi pomogło. Zmusiło mnie to do przestudiowania tematu i dzięki temu znalazłem kilka przydatnych wskazówek, które podaję poniżej.

🛑 Zanim jednak usuniesz jakiekolwiek pliki, upewnij się że posiadasz pełny backup. Wszelkie operacje wykonujesz na własną odpowiedzialność.

Porady dla programistów

W tej części przedstawię kilka wskazówek, które zapewne okażą się przydatne dla programistów aplikacji m.in. dla iOS. Mój rekord, korzystając z poniższych wskazówek, to uwolnione ~70 GB miejsca na dysku. A więc warto. Zaczynajmy 🚀

Device Support

Po podłączeniu iPhone do komputera w celu testowania tworzonych przez nas aplikacji, generowane są specjalne pliki. Jeśli zaktualizujemy system w naszym urządzeniu testowym, po kolejnym jego podłączeniu wygenerowane zostaną nowe pliki w Device Support, a poprzednie (które są już bezużyteczne) będą tam zalegały niepotrzebnie dopóki ktoś tego nie posprząta. Ponadto jeśli korzystamy z kilku urządzeń testowych, dla każdego z nich akcja zostanie powtórzona z osobna. Dlatego warto od czasu do czasu posprzątać to miejsce. Aby to zrobić, otwórz Finder i wybierz Idź → Idź do folderu… (lub skorzystaj ze skrótu ⌘ + ⇧ + G), następnie wklej poniższą ścieżkę:

~/Library/Developer/Xcode/iOS DeviceSupport

Po przejściu do folderu usuń wszystkie katalogi oprócz najnowszej wersji plików. Alternatywnie możesz bez obaw usunąć wszystkie katalogi, a przy kolejnym podłączeniu urządzenia do komputera, pliki zostaną automatycznie wygenerowane ponownie. Jedyny minus to czas, który musimy odczekać na wygenerowanie nowych plików zanim będziemy mogli przystąpić do pracy. W zależności od komputera, ten czas wynosi kilka minut.

Archiwa

Kolejnym miejscem są zbudowane aplikacje. Tutaj zalecam szczególną ostrożność, jeśli np. zamierzasz kiedyś pobierać Debug Symbols za pomocą Organizera w Xcode. Prezentowane tam archiwa znajdują się tutaj:

~/Library/Developer/Xcode/Archives

W miarę jak archiwizowane są kolejne wersje aplikacji, ten folder może rozrosnąć się do niebotycznych rozmiarów. Jeśli wiesz, że nie będziesz już więcej potrzebował starych archiwów, możesz je usunąć.

Symulatory

Wraz z czasem w systemie pozostają wersje symulatorów, które są już stare i nie będą więcej używane. Aby szybko się ich pozbyć należy wykonać w terminalu następujące polecenie:

xcrun simctl delete unavailable

Możesz także sprawdzić poniższą ścieżkę, w której znajdują się wszystkie symulatory zainstalowane w systemie i usunąć te niepotrzebne.

~/Library/Developer/CoreSimulator

Derived Data

W tym miejscu przechowywane są cache, logi oraz build’y aplikacji oraz bibliotek w nich wykorzystanych. Jak sobie łatwo wyobrazić, miejsce to bardzo szybko się rozrasta w miarę jak aktualizowane są chociażby dependency użyte w naszej aplikacji. Ponadto zauważyłem, że wiele problemów napotkanych przy aktualizacji projektu do nowej wersji Xcode, można prosto rozwiązać poprzez usunięcie Derived Data, dzięki czemu przy kolejnym budowaniu projektu zostaną one od nowa wygenerowane. Często okazuje się że samo wykonanie Clear w projekcie nie jest wystarczające. Te pliki znajdują się tutaj:

~/Library/Developer/Xcode/DerivedData/

Zawsze usuwam wszystkie pliki znajdujące się w tej lokalizacji 🗑

Xcode cache

Pozostaje jeszcze ostatnie miejsce, jest to cache aplikacji Xcode, dzięki któremu zapamiętane są ustawienia naszego IDE . Znajduje się on tutaj:

~/Library/Caches/com.apple.dt.Xcode

Aplikacje zarządzające

Edit: Dodano 12.06.2023r.

W zarządzaniu zasobami Xcode’a mogą pomóc aplikacje:

Obie aplikacje posiadają unikalne funkcje, choć szkoda że nie ma jednej uniwersalnej aplikacji która oferuje je w jednym miejscu.

Porady dla nie-programistów

Jeśli poprzedni rozdział nie okazał się przydatny dla Ciebie, ponieważ nie tworzysz aplikacji mobilnych, nic jeszcze straconego. Jest kilka metod, które powinny Ci pomóc odzyskać trochę wolnego miejsca na dysku.

Restart systemu

Pierwszą, najłatwiejszą metodą jest … restart systemu. Tak, wiem, maki się nie restartuje, je się po prostu zamyka 😆 — i masz rację. Jednak istnieją pewne miejsca w systemie (np. /private/var/, oraz /var/folders), przechowujące tymczasowe pliki, które są czyszczone częściowo podczas restartu systemu, a pozostała część czyszczona jest wg ustawionych wewnętrznych harmonogramów w systemie.

🛑 UWAGA: Pamiętaj, by nie usuwać powyższych folderów manualnie, ponieważ może to prowadzić do nieodwracalnych szkód, zwłaszcza gdy nie posiadasz backup’u systemu.

Dlatego po restarcie systemu, zwłaszcza który dawno nie był wykonany, możemy liczyć na sporo zaoszczędzonego miejsca, nawet kilka GB.

Cache przeglądarki

Tutaj już dużo nie obiecuję, ale jest to kolejne miejsce które warto wyczyścić. Jeśli korzystasz z przeglądarki Safari, możesz to zrobić poprzez wybranie z belki menu Programowanie → Opróżnij pamięci podręczne. Po kliknięciu pamięć podręczna cache przeglądarki zostanie usunięta, niestety bez żadnego okna dialogowego potwierdzającego wykonaną akcję.

Jeśli menu Programowanie w Safari jest niewidoczne, należy je włączyć w Preferencjach Safari, co zaznaczono na poniższym screen’ie:

Cache aplikacji

Jeśli nadal szukasz kolejnych pomysłów na zaoszczędzenie miejsca na dysku, sprawdź folder w którym znajduje się cache wszystkich aplikacji używanych przez aktualnego użytkownika:

~/Library/Caches

W czacie pisanie tego artykułu, mój folder z Cache zajmuje … 76,53 GB. Tak więc jest o co walczyć.

Duże pliki na dysku

Jako już ostatni podpunkt polecam aby usunąć niepotrzebne, duże pliki zalegające na dysku 🤓 Niby oczywiste, niby łatwe, ale nie do końca. Jak szybko znaleźć takie newralgiczne miejsca? Tutaj bardzo przydatna okazała się dla mnie aplikacja Omni Disk Sweeper (darmowa), która pomimo swojej prostoty rozwiązuje w łatwy sposób problem znalezienia największych plików zalegających w systemie.

Po kliknięciu w Sweep „Macintosh HD” Drive (lub odpowiednia nazwa dysku jeśli jest inna), aplikacja przeszukuje całą strukturę folderów na dysku i sortuje je wg wielkości. Od największego do najmniejszego. Dzięki temu w prosty sposób odnajdziemy największe pliki zalegające na dysku. Dla przykładu zamieszczam screen poniżej na którym widoczne jest, że bardzo dużo miejsca w moim wypadku zabiera cache Carthage:

Zauważyłem także, że wielkość plików i folderów jest troche inaczej liczona przez System niż przez Omni Disk Sweeper — podana przeze mnie wcześniej wielkość folderu Cache wskazywana przez System to 76,53 GB, natomiast w aplikacji zapisane jest jako 78,6 GB. Pomimo tej drobnej rozbieżności wynikającej z metody liczenia, aplikacja nadal skutecznie pozwala wyeliminować największe pliki i foldery.

Tutorial by Apple

Jako ostatni sposób, zamieszczam poniżej wideo przygotowane przez support Apple, na którym przedstawiono jak zwolnić miejsce na dysku za pomocą narzędzie systemowego.

To już wszystkie sposoby. Nie zapomnij podzielić się w komentarzu ile udało się Tobie odzyskać miejsca na dysku dzięki powyższym metodom.

Macuser poleca (-10% zniżki z poniższego linku):

Kup hosting 10% taniej

Autor: macuser

Na co dzień pracuje jako iOS Developer, a w czasie wolnym uwielbia tworzyć muzykę w swoim domowym studio. Lubi czytać książki na temat psychologii, technik marketingu, oraz być ciągle na bieżąco z nowymi trendami w świecie technologii.