AskClean

Swift Package Manager Önbelleği Nasıl Güvenle Temizlenir?

AskClean Ekibi · Güncellendi 2026-11-02

Tek bir paketin derleme çıktıları için swift package clean, o paketin tüm derleme önbelleğini sıfırlamak için swift package reset, SwiftPM’in ortak depo önbelleği içinse swift package purge-cache kullanın. Package.swift ve Package.resolved dosyalarını koruyun: bağımlılıkları bunlar tanımlar ve önbellek gibi silinmemelidir.

Etkin Swift paketi küplerinin yinelenen önbellek katmanlarından ayrıldığı izometrik bağımlılık grafiği
En dar SwiftPM temizliğini seçin: önce proje derleme çıktıları, ortak indirmeler ise yalnızca sorun onlardaysa.

SwiftPM’in birden fazla önbelleği vardır

Sorunu açıklayan en dar katmanı temizleyin: SwiftPM yeniden oluşturulabilir verileri farklı kapsamlarda tutar. Komut satırından derlenen bir paketin .build klasöründe checkout’lar, depolar, derleme çıktıları ve çalışma alanı durumu bulunur; SwiftPM ayrıca projeler aynı bağımlılıkları her seferinde yeniden indirmesin diye ortak bir depo önbelleği tutar. Xcode ise paket checkout’larını ve derleme ürünlerini genellikle projenin DerivedData klasöründe saklar. Proje düzeyindeki bir temizliğin telafisi daha kolaydır, çoğu zaman çevrimdışı da tamamlanır ve ilgisiz depoları yavaşlatmaz.

Komutu kapsamına göre seçin

swift package clean geçerli paketin derleme çıktılarını siler; eskimiş derleme çıktıları veya tek bir depoyla sınırlı disk temizliği için ilk tercihtir. swift package reset daha geniştir: paketin tüm önbelleğini ve derleme klasörünü sıfırlar, bağımlılıkların ve çalışma alanı durumunun yeniden hazırlanmasını gerektirir. swift package purge-cache ise birden çok projenin paylaştığı genel depo önbelleğini boşaltır; sonraki çözümleme ağ erişimi gerektirebilir ve birçok depoda daha uzun sürebilir.

  1. Değişikliklerinizi commit veya stash ile güvenceye alın; Package.swift ve Package.resolved dosyalarının beklenen yerde olduğunu doğrulayın.
  2. Paket kök dizininde swift package clean çalıştırın ve başarısız olan derlemeyi yeniden deneyin.
  3. Paketin yerel çalışma alanı hâlâ tutarsızsa swift package reset çalıştırın, ardından yeniden çözümleyip derleyin.
  4. Yalnızca ortak depo önbelleği aşırı büyük veya bozuksa swift package purge-cache çalıştırın.
  5. Xcode’a özgü DerivedData’yı temizlemeden önce bağımlılık grafiğini ve derlemeyi doğrulayın.

Alt komutlar kurulu Swift araç zincirine bağlıdır; o Mac’te hangilerinin desteklendiğini swift package --help ile doğrulayın.

Package.resolved dosyasını koruyun

Package.resolved, çözümlenmiş bağımlılık sürümlerini kaydeder; atılabilir bir indirme önbelleği değildir. Silerseniz bir sonraki çözümleme Package.swift’in izin verdiği başka sürümleri seçebilir ve temizlik sessizce bir bağımlılık güncellemesine dönüşür. Package.swift, Sources, Tests, eklentiler ve yerel yol bağımlılıkları kaynak dosyalardır; önbellek temizliği sırasında onları silmeyin veya düzenlemeyin.

Xcode’u ayrı ele alın

Yalnızca Xcode’da görülen bir paket sorununda, kurulu Xcode sürümünde varsa önce File > Packages > Reset Package Caches, ardından File > Packages > Resolve Package Versions komutunu kullanın; menü adları Xcode sürümüne göre değişebilir. Sorun projenin derlenmiş paket çıktılarındaysa DerivedData kökünün tamamını değil, yalnızca o projenin DerivedData klasörünü Xcode Settings > Locations veya Finder üzerinden silin. Genel temizlikten önce .build klasörlerini ölçün. AskClean, SwiftPM’in çevresindeki depolama kategorilerini bulmanıza yardım eder; önbelleğin kapsamını ise Swift’in kendi komutları belirler.

Karar ve risk karşılaştırması

SPM önbelleğini güvenle temizleyin: swift package clean, reset ve purge-cache’i ne zaman kullanacağınızı öğrenin, Package.resolved dosyasını koruyun.

KararNerede kontrol edilirGüvenlik sınırı
SwiftPM’in birden fazla önbelleği vardır.build / DerivedData / depo önbelleğiSorunu açıklayan en dar katmanı temizleyin: SwiftPM yeniden oluşturulabilir verileri farklı kapsamlarda tutar.
Komutu kapsamına göre seçinswift package clean / reset / purge-cacheswift package clean geçerli paketin derleme çıktılarını siler; eskimiş derleme çıktıları veya tek bir depoyla sınırlı disk temizliği için ilk tercihtir.
Package.resolved dosyasını koruyunPackage.swift / Package.resolvedPackage.resolved, çözümlenmiş bağımlılık sürümlerini kaydeder; atılabilir bir indirme önbelleği değildir.
Xcode’u ayrı ele alınFile > Packages / DerivedDataYalnızca Xcode’da görülen bir paket sorununda, kurulu Xcode sürümünde varsa önce File > Packages > Reset Package Caches, ardından File > Packages > Resolve Package Versions komutunu kullanın; menü adları Xcode sürümüne göre değişebilir.

SSS

swift package clean neyi siler?

Geçerli paketin derleme çıktılarını siler. Package.swift dosyasını silmez, bağımlılık gereksinimlerini de güncellemez; sonraki derleme üretilen çıktıları yeniden oluşturur.

reset ile purge-cache arasındaki fark nedir?

reset, geçerli paketin tüm önbelleğini ve derleme klasörünü hedefler; purge-cache ise SwiftPM’in projeler arasında paylaşılan genel depo önbelleğini boşaltır. purge-cache, projelerin sonraki bağımlılık indirmelerini çok daha geniş ölçüde etkiler.

Package.resolved silinmeli mi?

Olağan temizlikte hayır. Çözümlenmiş bağımlılık sürümlerini kaydeder; silmek bir sonraki seferde farklı sürümlerin seçilmesine yol açabilir. Yalnızca bilinçli olarak yeni bir çözümleme istediğinizde silin.

Kaynaklar

Geliştirici depolaması için diğer rehberler