Xcode DerivedData ve Geliştirici Önbelleklerini Güvenle Silin
AskClean Team · Updated 2026-07-18
DerivedData, Xcode'un derleme ürünleri ve dizinler için kullandığı karalama klasörüdür ve sessizce onlarca gigabayta büyüyebilir. Silinmesi güvenlidir: Xcode'dan çıkın, ~/Library/Developer/Xcode/DerivedData içeriğini kaldırın; Xcode bir sonraki derlemede her şeyi yeniden oluşturur. Bu rehber bunu, ayrıca simülatörleri, arşivleri ve paket önbelleklerini kapsıyor.
DerivedData nedir ve neden bu kadar büyür
DerivedData, Xcode'un kaynak kodunuzdan türettiği her şeyi tuttuğu yerdir: ara derleme nesneleri, derlenmiş ürünler, modül önbellekleri, kod tamamlama ve tanıma-atlama için sembol dizinleri ve derleme günlükleri. Saptanmış olarak ~/Library/Developer/Xcode/DerivedData konumunda bulunur ve şimdiye kadar açtığınız her proje ya da çalışma alanı için ayrı bir alt klasör içerir.
Büyümesinin yapısal bir nedeni var: Xcode, açtığınız her proje için — bir kez derleyip bir daha hiç dokunmadığınız tek seferlik klonlar dahil — bir DerivedData klasörü oluşturur ve bunların hiçbirini asla silmez. Her klasör, yapılandırma ve hedef başına (Debug ve Release, simülatör ve aygıt) ayrı derleme ürünleri barındırır; bu yüzden orta boy tek bir proje birkaç gigabayt kaplayabilir ve klasörün tamamı çalışan bir geliştirici makinesinde çoğunlukla 20-50 GB'a ulaşır.
İçindeki her şey tanımı gereği yeniden oluşturulabilir — "türetilmiş" (derived) tam olarak bu demektir. DerivedData'yı silmek kaynak kodunuza, proje ayarlarınıza ya da sürüm denetimindeki hiçbir şeye dokunmaz. Tek bedel zamandır: her projenin bir sonraki derlemesi sıfırdan temiz bir derleme olur ve dizinleme birkaç dakika boyunca arka planda yeniden çalışır.
DerivedData'yı silin
Bunu yapmanın üç yolu vardır ve hepsi aynı yere çıkar. Xcode'un Clean Build Folder komutu (Product > Clean Build Folder ya da Command-Shift-K) yalnızca o an açık projenin derleme ürünlerini temizler — tuhaf bir derleme sorununu düzeltmek için yararlıdır ama disk alanı ibresini neredeyse hiç oynatmaz. Gerçek yer kazanmak için DerivedData klasörlerinin kendilerini silin.
Proje bazında silmek cerrahi seçenektir: her gün derlediğiniz iki üç projenin DerivedData'sını tutun, geri kalan her şeyin klasörlerini kaldırın. Tamamını silmek ise hızlı seçenektir ve o da sorun değildir — yalnızca tam yeniden derleme bedelini tüm projelerde aynı anda ödersiniz.
- Önce Xcode'dan çıkın. Xcode çalışırken DerivedData'yı silmek dizinleyicisini karıştırabilir ve Xcode'un açık tuttuğu dosyalar temiz silinmeyebilir.
- Klasörü bulun: Xcode'da Settings > Locations'ı açın ve DerivedData yolunun yanındaki küçük oka tıklayarak klasörü Finder'da gösterin. Ya da Finder'da Command-Shift-G'ye basıp doğrudan ~/Library/Developer/Xcode/DerivedData girin.
- Proje alt klasörlerini boyuta göre sıralayın, gitmesini istediklerinizi seçin (ya da hepsi için Command-A) ve Çöp Kutusu'na taşıyın. Önce Çöp Kutusu daha güvenli alışkanlıktır — fikriniz değişirse anında geri yükleyebilirsiniz.
- Terminal'den yapmak isterseniz: rm -rf ~/Library/Developer/Xcode/DerivedData her şeyi tek seferde siler. Çok büyük klasörler için Finder'dan hızlıdır, ancak kullanmadan önce aşağıdaki notu okuyun.
- Xcode'u yeniden açın ve derleyin. Her projenin ilk derlemesinin gözle görülür şekilde uzun sürmesini ve etkinlik çubuğunda bir süre "Indexing" yazmasını bekleyin — ikisi de tek seferlik bedellerdir.
rm -rf konusunda dikkatli olun: Çöp Kutusu'nu atlar ve geri alma imkânı olmadan kalıcı olarak siler. Yolu birebir yazın, bu iş için asla sudo ile çalıştırmayın; Terminal'de rahat değilseniz Finder yolu aynı işi geri alınabilir şekilde yapar.
Eski simülatör ortamlarını temizleyin
Simülatörler, DerivedData'dan sonra genellikle ikinci en büyük geliştirici alan hırsızıdır. Şimdiye kadar indirdiğiniz her iOS, watchOS veya tvOS ortamı 5-8 GB kaplar ve her simüle aygıt ~/Library/Developer/CoreSimulator/Devices altında kendi veri klasörünü tutar. Birkaç Xcode yükseltmesi geçirdiyseniz, yıllar önce hedeflemeyi bıraktığınız iOS sürümlerine ait ortamlarınız büyük olasılıkla hâlâ duruyordur.
En hızlı kazanç yerleşik temizlik komutudur: Terminal'de xcrun simctl delete unavailable çalıştırın. Ortamı artık yüklü olmayan her simülatör aygıtını — eski Xcode sürümlerinin geride bıraktığı yetimleri — siler ve hâlâ kullanabildiğiniz hiçbir şeye dokunmaz.
Ortamların kendileri içinse Xcode'un Settings > Platforms bölümünü açın (eski Xcode sürümlerinde adı Components). Yüklü her simülatör ortamını boyutuyla birlikte görürsünüz; eski birini seçip silin. Eski işletim sistemi sürümlerinde etkin olarak test yapmıyorsanız, platform başına yalnızca en yeni ortamı tutun.
Tek tek simüle aygıtları da Window > Devices and Simulators içinden budayabilirsiniz: Simulators sekmesine geçin, hiç kullanmadığınız herhangi bir aygıta — eski test koşularının verisini taşıyan altı kopya iPhone modeline — sağ tıklayın ve Delete'i seçin. Her aygıtın kayıtlı verisi ve uygulamaları da onunla birlikte gider.
Arşivler, aygıt destek dosyaları ve önbellekler
Arşivler, bir derlemeyi dağıtmak için Product > Archive'ı her çalıştırdığınızda ~/Library/Developer/Xcode/Archives konumunda birikir. Her arşiv, tam bir uygulama derlemesi artı dSYM hata ayıklama sembollerini içerir — çoğu zaman parça başı 100 MB ile 1 GB arası. Silmeden önce ödünleşimi bilin: içindeki dSYM'ler, tam o derlemenin çökme raporlarını sembolikleştirmenizi sağlayan şeydir. App Store veya TestFlight'ta hâlâ yayında olan sürümlerin arşivlerini tutun (ya da dSYM'lerin App Store Connect'te olduğunu doğrulayın), gerisini silin — en güvenli yol, bunları bağlamıyla birlikte inceleyip silebileceğiniz Xcode'un Organizer'ıdır (Window > Organizer > Archives).
iOS DeviceSupport, ~/Library/Developer/Xcode/iOS DeviceSupport konumunda, Xcode'un şimdiye kadar taktığınız her fiziksel iPhone veya iPad'den kopyaladığı hata ayıklama sembollerini barındırır — iOS sürümü başına bir klasör, genellikle her biri 2-5 GB. Artık hiçbir aygıtınızın çalıştırmadığı iOS sürümlerine ait klasörler saf ölü ağırlıktır: silin; o sürümdeki bir aygıtı bir gün yeniden bağlarsanız Xcode sembolleri yeniden kopyalar (bir kez "Preparing debugger support" görürsünüz). watchOS ve tvOS aygıtları için de kardeş klasörler vardır.
Xcode ayrıca kendi önbelleklerini ~/Library/Caches/com.apple.dt.Xcode altında tutar; simülatörler de kendilerininkini ~/Library/Developer/CoreSimulator/Caches içinde saklar — ikisi de Xcode ve Simulator uygulaması çalışmıyorken güvenle temizlenebilir ve ikisi de gerektiğinde yeniden oluşturulur.
Paket yöneticisi önbellekleri (SwiftPM, CocoaPods, npm, Homebrew)
Paket yöneticileri, gelecekteki kurulumlar hızlı olsun diye indirdikleri her bağımlılığı saklar. Bu iyi mühendislik ama kötü disk hijyenidir: önbellekler yalnızca büyür ve birkaç yıllık proje görmüş bir makinede sessizce 10-20 GB'a ulaşır. Hepsinin temizlenmesi güvenlidir — en kötü senaryoda bir sonraki kurulumunuz paketleri yeniden indirir.
Swift Package Manager, indirilen paketleri ~/Library/Caches/org.swift.swiftpm konumunda önbelleğe alır; her projenin çözümlenmiş kopyaları da kendi DerivedData klasörünün içindedir — yani DerivedData'yı temizlemek onları zaten temizler. Paylaşılan önbelleği Finder'dan ya da o yola rm -rf uygulayarak silebilirsiniz.
CocoaPods, indirdiği pod'ları ~/Library/Caches/CocoaPods içinde tutar. Boşaltmanın temiz yolu yerleşik komuttur: pod cache clean --all. Projelerinizin Pods klasörlerine dokunulmaz; yalnızca indirme önbelleği gider.
npm'in önbelleği ~/.npm konumundadır ve JavaScript ağırlıklı bir makinede gigabaytlarca yer tutabilir. Boşaltmak için npm cache clean --force çalıştırın (npm bayrakta ısrar eder; çünkü önbellek kendi kendini onarır ve normalde temizlenmesi gerekmez — silmek yine de tamamen güvenlidir). pnpm kullanıcıları bunun yerine pnpm store prune çalıştırabilir.
Homebrew, eski indirmeleri ve güncelliğini yitirmiş paket sürümlerini biriktirir. brew cleanup, eski sürümleri ve bayat indirmeleri kaldırır; brew cleanup --prune=all ise tüm indirme önbelleğini de boşaltır. Nelerin gideceğinin bir provasını görmek isterseniz önce brew cleanup -n çalıştırın.
Otomatikleştirin
Yukarıdakilerin hepsi işe yarar; ama geliştirici artıkları bir koşu bandıdır: normal çalışmanın bir haftası içinde DerivedData geri gelir, önbellekler yeniden dolar ve her Xcode güncellemesi bir ortamı daha yetim bırakır. Altı elle yapılan prosedürü her ay yeniden koşturmak istemiyorsanız, otomatikleştirmeye değer kısım burasıdır — sessizce toplu silmek yerine gerekçesini gösteren bir araçla.
AskClean geliştirici dosyalarını birinci sınıf kategoriler olarak ele alır: tek tarama, Xcode DerivedData'yı proje bazında, eski simülatör ortamlarını (simctl üzerinden okunur, platform başına en yenisi tutulur), aygıt destek dosyalarını ve npm, SwiftPM, cargo, uv ve daha fazlası için paket yöneticisi önbelleklerini kalem kalem listeler. Daha yeni alan hırsızlarını da yakalar — Hugging Face ve Ollama model önbellekleri — bunları model bazında listeler ve varsayılan olarak işaretsiz bırakır.
Her öğe bir açıklamayla gelir — bu nedir, yeniden oluşturulabilir mi, silmenin bedeli ne — ve siz onaylamadan hiçbir şey çalışmaz. Silinenler Çöp Kutusu'na gider; böylece yanlış bir tık, sürükle-bırak mesafesinde geri alınır ve kaynak kodunuza, belgelerinize ve fotoğraflarınıza asla dokunulmaz. Bu rehberdeki kontrol listesinin aynısıdır — bir saatlik Terminal mesaisi hariç.
FAQ
DerivedData'yı silmek güvenli mi?
Evet — bir Mac'te yapılabilecek en güvenli büyük silmelerden biridir. DerivedData yalnızca Xcode'un kaynağınızdan ürettiği dosyaları içerir: derleme ürünleri, modül önbellekleri, dizinler ve günlükler. Kodunuz, proje dosyalarınız ve git geçmişiniz başka yerde durur ve asla etkilenmez. Tek sonuç, her projenin bir sonraki derlemesinin tam yeniden derleme olması ve dizinlemenin yeniden çalışmasıdır.
DerivedData'yı ne sıklıkla temizlemeliyim?
Zorunlu bir takvim yok — önemli olacak kadar büyüdüğünde temizleyin; çoğu etkin geliştirici için bu her bir iki ayda bir demektir. İki an her zaman haklı çıkarır: hızla disk alanına ihtiyaç duyduğunuzda ve bir proje açıklanamayan derleme hataları ya da bayat kod tamamlama gösterdiğinde — DerivedData'yı sıfırlamak standart ilk çözümdür.
DerivedData'yı sildikten sonra Xcode yavaşlar mı?
Geçici olarak, evet. Her projenin ilk derlemesi temiz bir derlemedir ve artımlı olandan birkaç kat uzun sürebilir; kod tamamlama ve aramanın tamamen geri gelmesi için arka plan dizinlemesinin birkaç dakikaya ihtiyacı vardır. O ilk döngüden sonra performans eskisiyle birebir aynıdır — DerivedData önbellek tutar, kalıcı olarak kaybettiğiniz iyileştirmeler değil.
Peki ~/Library/Developer/CoreSimulator — silebilir miyim?
Körlemesine değil — şu an yüklü simülatörlerinizi ve verilerini barındırır; topluca silmek, ortamları yeniden yükleyene kadar onları bozar. Bunun yerine düzgün budayın: yetim aygıtlar için xcrun simctl delete unavailable çalıştırın, eski ortamları Xcode'un Settings > Platforms bölümünden kaldırın, kullanılmayan aygıtları Devices and Simulators'tan silin ve elle yalnızca Caches alt klasörünü temizleyin.
Clean Build Folder aynı işi yapmaz mı?
Hayır. Product > Clean Build Folder (Command-Shift-K) yalnızca geçerli projenin derleme ürünlerini temizler; dizinleri, modül önbelleklerini ve diğer tüm projelerin klasörlerini yerinde bırakır. Bir derleme sorunu giderme aracıdır, disk alanı aracı değil — gerçek yer kazanmak DerivedData klasörlerinin kendilerini silmek demektir.
Sources