Cara aman membersihkan cache Swift Package Manager
Tim AskClean · Diperbarui 2026-07-31
Gunakan swift package clean untuk artefak build paket saat ini, reset untuk mengatur ulang seluruh status lokal paket, dan swift package purge-cache hanya untuk cache repository global. Simpan Package.swift dan Package.resolved: keduanya menentukan dependency dan bukan cache sekali pakai.

SwiftPM memiliki beberapa lapisan
Paket command-line menyimpan checkout dan produk di .build, sedangkan SwiftPM memelihara cache repository bersama. Xcode dapat menyimpan produk paket di DerivedData proyek. Bersihkan lapisan paling sempit yang menjelaskan masalah.
Pilih perintah berdasarkan cakupan
swift package clean menghapus artefak build paket saat ini. reset lebih luas dan menyiapkan ulang status lokalnya. purge-cache memengaruhi unduhan yang dipakai banyak proyek, sehingga resolusi berikutnya mungkin memerlukan jaringan dan waktu lebih lama.
- Simpan perubahan dan pastikan Package.swift serta Package.resolved ada.
- Jalankan swift package clean dari root lalu build kembali.
- Gunakan swift package reset hanya bila status lokal tetap rusak.
- Gunakan swift package purge-cache hanya bila cache bersama terbukti bermasalah.
- Periksa dependency dan test setelah pembersihan.
Jalankan swift package --help; subperintah yang tersedia bergantung pada versi Swift terpasang.
Simpan file resolusi
Package.resolved merekam versi tertentu. Menghapusnya dapat memilih versi lain yang diizinkan dan mengubah pembersihan menjadi pembaruan. Package.swift, Sources, Tests, plugin, dan dependency lokal adalah source; jangan hapus sebagai cache.
Tangani Xcode secara terpisah
Untuk masalah yang hanya muncul di Xcode, coba File > Packages > Reset Package Caches dan Resolve Package Versions atau hapus DerivedData proyek tersebut. Ukur folder .build sebelum purge global. AskClean menemukan kategori, tetapi perintah Swift menentukan cakupan.
FAQ
Apa yang dihapus swift package clean?
Artefak build paket saat ini; build berikutnya akan membuatnya kembali.
Apakah reset sama dengan purge-cache?
Tidak. reset menargetkan paket saat ini, purge-cache menargetkan cache repository global.
Haruskah Package.resolved dihapus?
Tidak untuk pembersihan biasa. Hapus hanya bila Anda sengaja menginginkan resolusi versi baru.
Sumber