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.

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.
- 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.
- Paket kök dizininde swift package clean çalıştırın ve başarısız olan derlemeyi yeniden deneyin.
- Paketin yerel çalışma alanı hâlâ tutarsızsa swift package reset çalıştırın, ardından yeniden çözümleyip derleyin.
- Yalnızca ortak depo önbelleği aşırı büyük veya bozuksa swift package purge-cache çalıştırın.
- 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.
| Karar | Nerede kontrol edilir | Güvenlik sınırı |
|---|---|---|
| SwiftPM’in birden fazla önbelleği vardır | .build / DerivedData / depo önbelleği | Sorunu açıklayan en dar katmanı temizleyin: SwiftPM yeniden oluşturulabilir verileri farklı kapsamlarda tutar. |
| Komutu kapsamına göre seçin | swift package clean / reset / purge-cache | 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. |
| Package.resolved dosyasını koruyun | Package.swift / Package.resolved | Package.resolved, çözümlenmiş bağımlılık sürümlerini kaydeder; atılabilir bir indirme önbelleği değildir. |
| Xcode’u ayrı ele alın | File > Packages / DerivedData | 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. |
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