Come svuotare la cache di Swift Package Manager in sicurezza
Team AskClean · Aggiornato 2026-07-31
Usa swift package clean per gli artefatti di build del pacchetto corrente, reset per azzerare tutto il suo stato locale e swift package purge-cache solo per la cache globale dei repository. Conserva Package.swift e Package.resolved: definiscono le dipendenze e non sono cache usa e getta.

SwiftPM ha più livelli
Un pacchetto a riga di comando conserva checkout e prodotti in .build, mentre SwiftPM mantiene una cache condivisa dei repository. Xcode può tenere i prodotti dei pacchetti nel DerivedData del progetto. Pulisci il livello più ristretto che spiega il problema.
Scegli il comando in base all’ambito
swift package clean rimuove gli artefatti di build del pacchetto corrente. reset è più ampio e ne ricrea lo stato locale. purge-cache influenza download condivisi da più progetti, quindi la prossima risoluzione può richiedere rete e più tempo.
- Salva le modifiche e verifica Package.swift e Package.resolved.
- Esegui swift package clean dalla radice e ricompila.
- Usa swift package reset solo se lo stato locale resta danneggiato.
- Usa swift package purge-cache solo se il problema misurato è la cache condivisa.
- Controlla dipendenze e test dopo la pulizia.
Esegui swift package --help: i sottocomandi disponibili dipendono dalla versione Swift installata.
Conserva i file di risoluzione
Package.resolved registra versioni specifiche. Eliminarlo può selezionare versioni diverse e trasformare una pulizia in aggiornamento. Package.swift, Sources, Tests, plugin e dipendenze locali sono sorgenti: non cancellarli come cache.
Gestisci Xcode separatamente
Per un problema presente solo in Xcode, prova File > Packages > Reset Package Caches e Resolve Package Versions oppure elimina il DerivedData del progetto. Misura le cartelle .build prima di una purga globale. AskClean trova la categoria, ma i comandi Swift ne definiscono l’ambito.
FAQ
Che cosa elimina swift package clean?
Gli artefatti di build del pacchetto corrente; la prossima compilazione li ricrea.
reset e purge-cache sono uguali?
No. reset agisce sul pacchetto corrente; purge-cache elimina la cache globale dei repository.
Devo eliminare Package.resolved?
Non per una pulizia normale. Fallo solo se vuoi intenzionalmente una nuova risoluzione.
Fonti