Cara selamat membersihkan cache Swift Package Manager
Pasukan AskClean · Dikemas kini 2026-07-31
Gunakan swift package clean untuk artifak binaan pakej semasa, reset untuk menetapkan semula seluruh keadaan setempatnya, dan swift package purge-cache hanya untuk cache repositori global. Simpan Package.swift dan Package.resolved: kedua-duanya menentukan kebergantungan dan bukan cache pakai buang.

SwiftPM mempunyai beberapa lapisan
Pakej baris perintah menyimpan checkout dan produk dalam .build, manakala SwiftPM mengekalkan cache repositori bersama. Xcode boleh menyimpan produk pakej dalam DerivedData projek. Bersihkan lapisan paling sempit yang menerangkan masalah.
Pilih perintah mengikut skop
swift package clean memadam artifak binaan pakej semasa. reset lebih luas dan menyediakan semula keadaan setempat. purge-cache menjejaskan muat turun yang dikongsi beberapa projek, jadi penyelesaian seterusnya mungkin memerlukan rangkaian dan lebih masa.
- Simpan perubahan dan sahkan Package.swift serta Package.resolved.
- Jalankan swift package clean dari akar dan bina semula.
- Gunakan swift package reset hanya jika keadaan setempat masih rosak.
- Gunakan swift package purge-cache hanya jika cache bersama disahkan bermasalah.
- Periksa kebergantungan dan ujian selepas pembersihan.
Jalankan swift package --help; subperintah yang tersedia bergantung pada versi Swift yang dipasang.
Simpan fail penyelesaian
Package.resolved merekodkan versi tertentu. Memadamnya boleh memilih versi lain yang dibenarkan dan menukar pembersihan menjadi kemas kini. Package.swift, Sources, Tests, pemalam dan kebergantungan setempat ialah sumber; jangan padam seperti cache.
Urus Xcode secara berasingan
Bagi masalah yang hanya muncul dalam Xcode, cuba File > Packages > Reset Package Caches dan Resolve Package Versions atau padam DerivedData projek itu. Ukur folder .build sebelum purge global. AskClean menemui kategori, tetapi perintah Swift menentukan skop.
Soalan Lazim
Apa yang dipadam oleh swift package clean?
Artifak binaan pakej semasa; binaan seterusnya akan menciptanya semula.
Adakah reset sama dengan purge-cache?
Tidak. reset menyasarkan pakej semasa, purge-cache menyasarkan cache repositori global.
Perlukah Package.resolved dipadam?
Bukan untuk pembersihan biasa. Padam hanya jika anda sengaja mahukan penyelesaian versi baharu.
Sumber