AskCleanAskClean

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.

Graf dependency Swift dipisahkan dari lapisan cache yang terduplikasi
Bersihkan artefak paket lokal lebih dulu dan purge unduhan bersama hanya bila itulah penyebabnya.

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.

  1. Simpan perubahan dan pastikan Package.swift serta Package.resolved ada.
  2. Jalankan swift package clean dari root lalu build kembali.
  3. Gunakan swift package reset hanya bila status lokal tetap rusak.
  4. Gunakan swift package purge-cache hanya bila cache bersama terbukti bermasalah.
  5. 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

Panduan penyimpanan developer lainnya