AskClean

Xcode DerivedData ve Geliştirici Önbelleklerini Güvenle Silin

AskClean Ekibi · Güncellendi 2026-11-02

DerivedData, Xcode’un derleme ürünleri ve indeksler için kullandığı geçici çalışma klasörüdür ve fark ettirmeden onlarca gigabayta büyüyebilir. Silmek güvenlidir: Xcode’dan çıkın, ~/Library/Developer/Xcode/DerivedData klasörünün içeriğini kaldırın; Xcode bir sonraki derlemede her şeyi yeniden oluşturur. Bu rehber bunun yanı sıra simülatörleri, arşivleri ve paket önbelleklerini de ele alıyor.

Xcode DerivedData ve Geliştirici Önbelleklerini Güvenle Silin
Mac’te Xcode DerivedData’yı güvenle silin, eski simülatör çalışma zamanlarını kaldırın; arşivleri, aygıt destek dosyalarını ve paket önbelleklerini temizleyin.

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 gitme (jump-to-definition) için sembol indeksleri ve derleme günlükleri. Varsayılan olarak ~/Library/Developer/Xcode/DerivedData konumunda bulunur ve şimdiye kadar açtığınız her proje veya ç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ı kendiliğinden silmez. Her klasörde yapılandırma ve hedef başına (Debug ve Release, simülatör ve aygıt) ayrı derleme ürünleri bulunur; bu yüzden Mac’inizin ne kadar yer kazanacağını tahmin etmek yerine proje alt klasörlerini ölçün.

İçindeki her şey tanımı gereği yeniden oluşturulabilir; “türetilmiş” (derived) sözcüğünün anlamı da budur. DerivedData’yı silmek kaynak kodunuza, proje ayarlarınıza veya sürüm denetimindeki hiçbir şeye dokunmaz. Tek bedeli zamandır: her projenin bir sonraki derlemesi sıfırdan, temiz bir derleme olur ve indeksleme birkaç dakika boyunca arka planda yeniden çalışır.

DerivedData’yı silin

Xcode’un Clean Build Folder komutu (Product > Clean Build Folder ya da Shift-Command-K) yalnızca o an açık olan projenin derleme ürünlerini temizler; garip bir derleme sorununu çözmekte işe yarar ama disk alanında neredeyse hiçbir fark yaratmaz. Gerçekten yer açmak için DerivedData klasörlerinin kendisini silin: klasörü Xcode’un Locations ayarlarından Finder’da gösterin, doğrudan Finder’da açın ya da Terminal’den kaldırın. Üç yol da aynı sonuca varır.

Proje bazında silmek nokta atışı seçenektir: her gün derlediğiniz iki üç projenin DerivedData’sını tutun, geri kalan projelerin DerivedData klasörlerini kaldırın. Hepsini silmek ise hızlı seçenektir ve o da sorun değildir; yalnızca tam yeniden derleme bedelini bütün projelerde aynı anda ödersiniz.

  1. Önce Xcode’dan çıkın. Xcode çalışırken DerivedData’yı silmek indeksleyicinin kafasını karıştırabilir ve Xcode’un açık tuttuğu dosyalar düzgün silinmeyebilir.
  2. 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 yolunu girin.
  3. Proje alt klasörlerini boyuta göre sıralayın, silmek istediklerinizi seçin (hepsi için Command-A) ve Çöp Sepeti’ne taşıyın. Önce Çöp Sepeti’ne taşımak daha güvenli bir alışkanlıktır: fikriniz değişirse hemen geri alabilirsiniz.
  4. Terminal’den yapmak isterseniz: rm -rf ~/Library/Developer/Xcode/DerivedData her şeyi tek seferde siler. Çok büyük klasörlerde Finder’dan hızlıdır, ama kullanmadan önce aşağıdaki notu okuyun.
  5. Xcode’u yeniden açıp derleyin. Her projenin ilk derlemesinin belirgin biçimde uzun sürmesini ve etkinlik çubuğunda bir süre “Indexing” yazısını görmeyi bekleyin; ikisi de tek seferlik bedellerdir.

rm -rf konusunda dikkatli olun: Çöp Sepeti’ni atlar ve geri alma olanağı olmadan kalıcı olarak siler. Yolu birebir yazın, bu iş için asla sudo ile çalıştırmayın; Terminal’de kendinizi rahat hissetmiyorsanız Finder yolu aynı işi geri alınabilir biçimde yapar.

Eski simülatör çalışma zamanlarını temizleyin

Simülatörler de çoğu zaman geliştirici depolamasında büyük bir kategori oluşturur. İndirilen her iOS, watchOS veya tvOS çalışma zamanının (runtime) kendi boyutu vardır ve her simüle aygıt verilerini ~/Library/Developer/CoreSimulator/Devices altında tutar. Birkaç Xcode yükseltmesinden geçtiyseniz, artık test matrisinizde yer almayan işletim sistemi sürümlerine ait çalışma zamanlarını gözden geçirin.

En hızlı kazanç yerleşik temizlik komutudur: Terminal’de xcrun simctl delete unavailable çalıştırın. Bu komut “unavailable” (kullanılamaz) olarak işaretlenen tüm simülatör aygıtlarını, içlerindeki uygulamalar ve verilerle birlikte siler; bunlar çoğunlukla kaldırılmış çalışma zamanlarından ve eski Xcode sürümlerinden kalan sahipsiz aygıtlardır. Özellikle birden fazla Xcode kuruluysa önce listeyi xcrun simctl list devices ile inceleyin.

Çalışma zamanlarının kendisi için Xcode’da Settings > Components bölümünü açın (Xcode 14–15’te adı Platforms). Yüklü her simülatör çalışma zamanı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 her platform için yalnızca en yeni çalışma zamanını tutun.

Tek tek simüle aygıtları da Window > Devices and Simulators penceresinden ayıklayabilirsiniz: Simulators sekmesine geçin, hiç kullanmadığınız bir aygıta (örneğin eski test çalıştırmalarından veri taşıyan altı kopya iPhone modeline) sağ tıklayın ve Delete’i seçin. Her aygıtın kayıtlı verileri ve uygulamaları da onunla birlikte silinir.

Arşivler, aygıt destek dosyaları ve önbellekler

Bir derlemeyi dağıtmak için Product > Archive’ı her çalıştırdığınızda arşivler ~/Library/Developer/Xcode/Archives konumunda birikir. Her arşiv tam bir uygulama derlemesini ve onun dSYM hata ayıklama sembollerini içerir; tanesi çoğu zaman 100 MB ile 1 GB arasındadır. Silmeden önce bedelini bilin: içindeki dSYM’ler, tam o derlemenin çökme raporlarını sembolleştirmenizi sağlayan dosyalardır. App Store’da 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, arşivleri bağlamıyla birlikte inceleyip silebileceğiniz Xcode Organizer’dır (Window > Organizer > Archives).

iOS DeviceSupport (~/Library/Developer/Xcode/iOS DeviceSupport), Xcode’un bugüne kadar bağladığınız her fiziksel iPhone veya iPad’den kopyaladığı hata ayıklama sembollerini barındırır: her iOS sürümü için bir klasör, genellikle tanesi 2–5 GB. Artık hiçbir aygıtınızın kullanmadığı iOS sürümlerine ait klasörler tamamen gereksiz yüktür; silin. O sürümdeki bir aygıtı ileride yeniden bağlarsanız Xcode sembolleri yeniden kopyalar (bir kez “Preparing debugger support” mesajını görürsünüz). watchOS ve tvOS aygıtları için de benzer klasörler vardır.

Xcode ayrıca kendi önbelleklerini ~/Library/Caches/com.apple.dt.Xcode altında, simülatörler ise kendi önbelleklerini ~/Library/Developer/CoreSimulator/Caches içinde tutar. İkisi de gerektiğinde yeniden oluşturulur; yine de yalnızca Xcode ve Simulator uygulaması kapalıyken temizleyin ve tanımadığınız CoreSimulator önbellek dosyalarına dokunmayın.

Paket yöneticisi önbellekleri (SwiftPM, CocoaPods, npm, Homebrew)

Paket yöneticileri, sonraki kurulumlar hızlı olsun diye indirdikleri bağımlılıkları saklar. Bu yararlıdır, ama yıllardır proje görmüş bir makinede yine de büyük bir disk kategorisine dönüşebilir. Bu indirme önbellekleri yeniden oluşturulabilir; ancak bir sonraki kurulumda paketlerin yeniden indirilmesi gerekir.

Swift Package Manager indirilen paketleri ~/Library/Caches/org.swift.swiftpm konumunda önbelleğe alır; her projenin çözümlenmiş checkout’ları da o projenin DerivedData klasöründe durur. Yani DerivedData’yı temizlemek onları da temizler. Ortak ö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. Projelerinizdeki Pods klasörlerine dokunulmaz; yalnızca indirme önbelleği silinir.

npm’in önbelleği ~/.npm konumundadır ve JavaScript ağırlıklı bir makinede gigabaytlarca yer kaplayabilir. Boşaltmak için npm cache clean --force çalıştırın (npm bu bayrağı şart koşar, çünkü önbellek kendi kendini onarır ve normalde temizlenmesi gerekmez; silmek güvenlidir, paketler bir sonraki kurulumda yeniden indirilir). pnpm kullanıyorsanız bunun yerine pnpm store prune çalıştırabilirsiniz.

Homebrew eski indirmeleri ve güncelliğini yitirmiş paket sürümlerini biriktirir. brew cleanup eski sürümleri ve güncelliğini yitirmiş indirmeleri kaldırır; paket adı verilmeden çalıştırıldığında, HOMEBREW_NO_AUTOREMOVE ayarlı değilse artık hiçbir şeyin ihtiyaç duymadığı bağımlılıkları da kaldırır. brew cleanup --prune=all ise tüm indirme önbelleğini de boşaltır. Neyin silineceğini önce bir deneme listesi (dry run) olarak görmek isterseniz brew cleanup -n çalıştırın.

Otomatikleştirin

Yukarıdakilerin hepsi işe yarar, ama geliştirici artıkları bitmeyen bir döngüdür: normal çalışmayla DerivedData bir hafta içinde geri gelir, önbellekler yeniden dolar ve her Xcode güncellemesi bir çalışma zamanını daha sahipsiz bırakır. Her ay altı ayrı elle temizlik adımını tekrarlamak istemiyorsanız otomatikleştirmeye değer kısım burasıdır; ama sessizce toplu silen değil, gerekçesini gösteren bir araçla.

AskClean geliştirici dosyalarını ayrı kategoriler olarak ele alır: tek bir tarama, Xcode DerivedData’yı proje proje, eski simülatör çalışma zamanlarını (simctl ile okunur, her platformun en yenisi korunur), aygıt destek dosyalarını ve npm, SwiftPM, cargo, uv gibi araçların paket yöneticisi önbelleklerini kalem kalem listeler. Son dönemde çok yer kaplamaya başlayan yerel yapay zeka modellerini de yakalar: Hugging Face modellerini tek tek, Ollama model kitaplığını ise tek bir öğe olarak listeler; hepsi varsayılan olarak seçilmemiş gelir.

Her öğe bir açıklamayla gelir: ne olduğu, yeniden oluşturulup oluşturulamayacağı ve silmenin neye mal olacağı. Siz onaylamadan hiçbir işlem yapılmaz. Onaylanan öğeler Çöp Sepeti’ne taşınmaz, kalıcı olarak silinir; bu yüzden onaylamadan önce her seçimi gözden geçirin. Kaynak kodunuza ve fotoğraf arşivinize asla dokunulmaz. Bu rehberdeki kontrol listesinin aynısıdır; yalnızca bir saatlik Terminal mesaisi yoktur.

Neler yeniden oluşturulabilir, neler oluşturulamaz

Bu tablo bir silme sınırı tablosudur, genel bir tasarruf vaadi değildir. Her işlemden önce ve sonra Mac’inizi ölçün; Xcode simülatör depolaması rehberindeki salt okunur denetim betiği bu klasörleri hiçbir şeyi değiştirmeden raporlar.

KategoriVarsayılan konumSilmenin sonucu
DerivedData~/Library/Developer/Xcode/DerivedDataYeniden derlenir ve indekslenir; kaynak kod ve git geçmişi etkilenmez.
Simülatör aygıtları~/Library/Developer/CoreSimulator/DevicesSeçilen sanal aygıtların uygulamaları ve test verileri kaybolur; simctl veya Xcode üzerinden silin.
Arşivler (Archives)~/Library/Developer/Xcode/ArchivesÇökme raporlarını sembolleştirmek için gereken dSYM’ler silinebilir; önce Organizer’da inceleyin.
DeviceSupport~/Library/Developer/Xcode/iOS DeviceSupportO sistem sürümündeki bir aygıt yeniden bağlandığında hata ayıklama sembolleri yeniden kopyalanır.

SSS

DerivedData’yı silmek güvenli mi?

Evet; bir Mac’te yapılabilecek en güvenli büyük silme işlemlerinden biridir. DerivedData yalnızca Xcode’un kaynak kodunuzdan ürettiği dosyaları içerir: derleme ürünleri, modül önbellekleri, indeksler ve günlükler. Kodunuz, proje dosyalarınız ve git geçmişiniz başka bir yerde durur ve hiçbir şekilde etkilenmez. Tek sonucu, her projenin bir sonraki derlemesinin tam yeniden derleme olması ve indekslemenin yeniden çalışmasıdır.

DerivedData’yı ne sıklıkla temizlemeliyim?

Zorunlu bir takvim yok; anlamlı bir yer kaplayacak kadar büyüdüğünde temizleyin. Etkin geliştiricilerin çoğu için bu, bir iki ayda bir demektir. İki durumda temizlemek her zaman yerindedir: hızla disk alanına ihtiyacınız olduğunda ve bir proje açıklanamayan derleme hataları ya da eskimiş kod tamamlama önerileri gösterdiğinde. İkinci durumda DerivedData’yı silmek 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ı bir derlemeden birkaç kat uzun sürebilir; kod tamamlama ve aramanın tam olarak geri gelmesi için arka plandaki indekslemenin birkaç dakikaya ihtiyacı vardır. Bu ilk turdan sonra performans eskisiyle aynıdır: DerivedData önbellek tutar, kalıcı olarak kaybedeceğiniz iyileştirmeler değil.

Peki ~/Library/Developer/CoreSimulator klasörünü silebilir miyim?

Körü körüne değil. Bu klasör şu an yüklü simülatörlerinizi ve verilerini barındırır; toptan silmek, çalışma zamanlarını yeniden yükleyene kadar simülatörleri bozar. Bunun yerine düzgünce ayıklayın: sahipsiz aygıtlar için xcrun simctl delete unavailable çalıştırın (içlerindeki uygulamalar ve veriler de silinir), eski çalışma zamanlarını Xcode’un Settings > Components bölümünden kaldırın, kullanmadığınız aygıtları Devices and Simulators penceresinden silin ve elle yalnızca Caches alt klasörünü temizleyin; bunu da Xcode ve Simulator kapalıyken yapın.

Clean Build Folder aynı işi yapmaz mı?

Hayır. Product > Clean Build Folder (Shift-Command-K) yalnızca geçerli projenin derleme ürünlerini temizler; indeksleri, 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ğildir; gerçekten yer açmak için DerivedData klasörlerinin kendisini silmeniz gerekir.

Kaynaklar

Adım adım geliştirici depolaması