Geliştirici depolama rehberi

Xcode bütün yerimi kaplıyor

Çalışan bir Mac'te yirmi ila altmış gigabayt, altı klasöre yayılmış ve hiçbirini Xcode kendiliğinden temizlemiyor. İşte her biri: ne işe yarar ve silebilir misiniz.

14 gün ücretsiz deneme, kart gerekmez. Ardından 3 bilgisayar için tek seferlik 15 dolar.

Bytesweep, Xcode'un DerivedData ve aygıt desteği klasörlerini boyuta göre listeliyor

Önce ölçün

Tek bir komut, toplamın Xcode'un klasörleri arasında nasıl dağıldığını söyler; böylece hangisinin peşine düşeceğinizi bilirsiniz:

du -sh ~/Library/Developer/Xcode/* ~/Library/Developer/CoreSimulator 2>/dev/null | sort -h

Altı klasör

DerivedData — genelde en büyüğü · silmesi güvenli

Derleme ara dosyaları, dizinler ve modül önbellekleri; proje başına bir klasör ve çoktan sildiğiniz projeler dâhil sonsuza dek saklanır.

~/Library/Developer/Xcode/DerivedData

Silmenin bedeli yavaş bir yeniden derlemedir, başka bir şey değil. Ayrıca Xcode tuhaf davrandığında standart çözümdür; her iOS geliştiricisinin bu yolu ezbere bilmesinin nedeni budur.

iOS DeviceSupport — büyük · silmesi güvenli

Şimdiye kadar bağladığınız her fiziksel aygıttan kopyalanan sembol önbellekleri; iOS sürümü başına bir klasör. Her biri birkaç gigabayt ve artık sahip olmadığınız telefonlar için birikiyorlar.

~/Library/Developer/Xcode/iOS DeviceSupport

O iOS sürümünü çalıştıran bir aygıtı bir dahaki sefere taktığınızda Xcode bunları yeniden kopyalar — ilk bağlantı yavaş olur, başka bir bedeli yoktur.

CoreSimulator aygıtları — büyük · çoğunlukla güvenli

Her simüle edilen aygıtın kendi dosya sistemi vardır ve bunlar asla geri kazanılmaz. Veritabanı tutarlı kalsın diye klasörleri silmek yerine Xcode'un kendi komutunu kullanın:

xcrun simctl delete unavailable

Daha ileri gitmek için xcrun simctl delete all her simülatör aygıtını kaldırır. Simülatör çalışma ortamlarının kendisi ise şurada yönetilir: Xcode → Ayarlar → Bileşenler.

Arşivler — küçük ama yeri doldurulamaz · saklayın

Şimdiye kadar yayımladığınız her derleme, dSYM hata ayıklama sembolleriyle birlikte.

~/Library/Developer/Xcode/Archives

Dokunmamanız gereken klasör bu. Yayımlanmış bir derlemenin dSYM'i olmadan, onu kullanan kullanıcılardan gelen çökme raporlarını sembolleştiremezsiniz — yığın izleri sonsuza dek onaltılık adresler olarak kalır. Buradan yer açmak zorundaysanız, hâlâ kullanımda olan her sürümün arşivini saklayın.

Ve bir sonraki iOS sürümünden sonra yine

DerivedData derleme yaptığınız gün geri gelir, DeviceSupport taktığınız her aygıtla büyür; yani bu bir çözümden çok bir angaryadır. Bytesweep altı klasörü tek geçişte bulur, Arşivleri süpürmek yerine incelenmek üzere işaretli tutar ve her temizliği yedi gün boyunca geri alır — yanlış projeyi temizlediğiniz gün bunun önemi büyüktür.

Swift Package Manager önbelleği — silmesi güvenli

Klonlanmış bağımlılık depoları; talep üzerine yeniden çekilir.

~/Library/Caches/org.swift.swiftpm

Eski simülatör çalışma ortamları ve eski Xcode sürümleri — dikkatle güvenli

Önceki bir Xcode.app tek başına 15 GB, çalışma ortamları da birkaç GB daha. Eski bir proje için hâlâ ihtiyacınız olan sürümü tutun; gerisini Finder üzerinden silin, sonra ilişkili çalışma ortamlarını Ayarlar → Bileşenler'den kaldırın.

Bunu aşağıda tutan iki alışkanlık

DerivedData'yı toptan değil, proje bazında silin

Her alt klasörün adı bir projeden gelir. Klasörün tamamını temizlemek, üzerinde çalıştığınız her şeyin yeniden derlenmesini zorunlu kılar; geçen yıl bitirdiğiniz projelere ait olanları temizlemenin ise hiçbir bedeli yoktur.

Her iOS sürümünden sonra DeviceSupport'u kontrol edin

Bağladığınız her aygıtta, her iOS derlemesi için bir klasör eklenir; bu yüzden yıl boyunca sessizce tırmanır. Her eylül iki dakika, onun 30 GB olmasını önler.

Altısını birden bulun

Bytesweep her Xcode klasörünü adıyla saptar, boyutunu gösterir ve Arşivleri süpürmeye uygun değil, incelenmeye değer olarak işaretler. Temizlediğiniz her şey bir geri yükleme noktasına gider, böylece geri alma yedi gün boyunca tek tıktır.

İlgili: Docker disk space · tam Mac listesi

Sorular

DerivedData'yı silmek güvenli mi?

Evet. Tamamen kaynağınızdan türetilmiştir; adı da bu anlama gelir. Tek bedeli, etkilenen her projenin bir sonraki derlemesinin tam derleme olmasıdır.

DeviceSupport'u silmek telefonumda hata ayıklamayı bozar mı?

Hayır. O iOS sürümünü çalıştıran bir aygıtı bir dahaki sefere bağladığınızda Xcode sembolleri yeniden kopyalar. Sonraki ilk bağlantı birkaç dakika daha uzun sürer.

Xcode Arşivlerini silebilir miyim?

Silebilirsiniz ama önce düşünün. Arşivler yayımladığınız derlemelerin dSYM dosyalarını tutar ve onlar olmadan o sürümlerden gelen çökme raporları sembolleştirilemez. Hâlâ kullanıcıların elinde olan her şeyi saklayın; eski beta sürümlerini gönül rahatlığıyla silin.

Xcode.app'in kendisi neden bu kadar büyük?

Yaklaşık 15 GB; çünkü Apple'ın desteklediği her platform için araç zincirlerini, SDK'ları ve simülatör çalışma ortamlarını içerir. Kullanmadığınız simülatör çalışma ortamlarını Xcode → Ayarlar → Bileşenler'den kaldırabilirsiniz, ama uygulama paketinin kendisi olduğu gibidir.

Xcode bunların herhangi birini otomatik temizler mi?

Hayır. Bu klasörlerin hiçbirinde boyut sınırı ya da son kullanma süresi yoktur. Bu sayfanın var olma nedeni tam olarak budur.