AskClean

Cara Aman Membersihkan Cache Swift Package Manager

Tim AskClean · Diperbarui 2026-11-02

Gunakan swift package clean untuk artefak build satu proyek, swift package reset untuk seluruh cache dan direktori build paket itu, dan swift package purge-cache untuk cache repositori bersama milik SwiftPM. Simpan Package.swift dan Package.resolved: keduanya menentukan dependensi dan tidak boleh dihapus sebagai cache.

Graf dependensi isometrik dengan kubus paket Swift yang aktif, terpisah dari lapisan cache duplikat
Pilih pembersihan SwiftPM yang paling sempit: artefak build proyek lebih dulu, unduhan bersama hanya jika memang itu sumber masalahnya.

SwiftPM memiliki beberapa lapisan cache

Paket command-line biasanya memiliki direktori .build berisi checkout, repositori, hasil build, dan status workspace, sedangkan SwiftPM juga memelihara cache repositori bersama agar banyak proyek tidak perlu mengunduh dependensi yang sama berulang kali. Xcode menambah satu lapisan lagi: checkout dan produk paket untuk aplikasi biasanya terkait dengan DerivedData proyek. Bersihkan lapisan tersempit yang menjelaskan gejalanya.

Pilih perintah berdasarkan cakupan

swift package clean menghapus artefak build paket saat ini — pilihan pertama untuk hasil kompilasi yang usang atau pembersihan ruang yang terbatas pada satu repositori. swift package reset mengatur ulang seluruh cache dan direktori build paket itu, sehingga dependensi dan status workspace-nya harus disiapkan lagi. swift package purge-cache mengosongkan cache repositori global SwiftPM yang dipakai bersama banyak proyek, sehingga resolve atau build berikutnya mungkin butuh jaringan dan waktu lebih lama; jangan jadikan ini kebiasaan rutin.

  1. Commit atau stash perubahan kode sumber, lalu pastikan Package.swift dan Package.resolved ada di tempat yang diharapkan proyek.
  2. Dari root paket, jalankan swift package clean lalu coba lagi build yang tadi gagal.
  3. Jika workspace lokal paket masih tidak konsisten, jalankan swift package reset, lalu resolve dan build lagi.
  4. Jalankan swift package purge-cache hanya jika cache repositori bersama terbukti terlalu besar atau rusak.
  5. Periksa graf dependensi dan hasil build sebelum membersihkan DerivedData khusus Xcode.

Ketersediaan perintah mengikuti toolchain Swift yang terpasang. Jalankan swift package --help untuk memastikan subperintah yang didukung di Mac tersebut.

Simpan Package.resolved kecuali Anda memang ingin memperbarui versi

Package.resolved adalah status resolusi dependensi, bukan cache unduhan sekali pakai. Menghapusnya dapat membuat resolusi berikutnya memilih versi lain yang diizinkan Package.swift, sehingga pembersihan diam-diam berubah menjadi pembaruan dependensi. Package.swift, Sources, Tests, plugin, dan dependensi jalur lokal adalah sumber yang Anda tulis; jangan pernah menghapusnya sebagai cache. Isi .build bisa dibuat lagi, sedangkan berkas paket yang Anda tulis belum tentu.

Tangani paket di Xcode secara terpisah

Untuk masalah yang hanya muncul di Xcode, coba File > Packages > Reset Package Caches lalu Resolve Package Versions (nama menu dapat berbeda antarversi Xcode). Jika masalahnya terkait artefak paket hasil kompilasi, hapus hanya DerivedData proyek itu lewat Xcode Settings > Locations atau Finder, bukan seluruh root DerivedData. Untuk ruang disk, ukur dulu folder .build dan cache bersama sebelum purge global. AskClean dapat menunjukkan kategori penyimpanan pengembang di sekitar SwiftPM, tetapi perintah Swift resmi tetap menjadi acuan cakupan cache.

Ringkasan keputusan dan risiko

Bersihkan cache Swift Package Manager (SPM) dengan aman: kapan memakai swift package clean, reset, atau purge-cache, dan cara mempertahankan Package.resolved.

KeputusanTempat memeriksaBatas keamanan
SwiftPM memiliki beberapa lapisan cache.build / DerivedData / cache repositoriPaket command-line biasanya memiliki direktori .build berisi checkout, repositori, hasil build, dan status workspace, sedangkan SwiftPM juga memelihara cache repositori bersama agar banyak proyek tidak perlu mengunduh dependensi yang sama berulang kali.
Pilih perintah berdasarkan cakupanswift package clean / reset / purge-cacheswift package clean menghapus artefak build paket saat ini — pilihan pertama untuk hasil kompilasi yang usang atau pembersihan ruang yang terbatas pada satu repositori.
Simpan Package.resolved kecuali Anda memang ingin memperbarui versiPackage.swift / Package.resolvedPackage.resolved adalah status resolusi dependensi, bukan cache unduhan sekali pakai.
Tangani paket di Xcode secara terpisahFile > Packages / DerivedDataUntuk masalah yang hanya muncul di Xcode, coba File > Packages > Reset Package Caches lalu Resolve Package Versions (nama menu dapat berbeda antarversi Xcode).

FAQ

Apa yang dihapus swift package clean?

Artefak build untuk paket saat ini. Perintah ini tidak menghapus Package.swift dan tidak sengaja memperbarui persyaratan dependensi; build berikutnya membuat ulang keluaran yang dihapus.

Apakah reset sama dengan purge-cache?

Tidak. reset menargetkan seluruh cache dan direktori build paket saat ini, sedangkan purge-cache menargetkan cache repositori global yang dipakai bersama oleh SwiftPM. Purge berdampak lebih luas pada pengunduhan dependensi berikutnya di semua proyek.

Haruskah Package.resolved dihapus?

Tidak untuk pembersihan biasa. Berkas ini mencatat versi dependensi yang sudah di-resolve, dan menghapusnya dapat mengubah versi yang dipilih berikutnya. Hapus hanya jika Anda memang sengaja menginginkan resolusi baru.

Sumber

Panduan penyimpanan pengembang lainnya