AskCleanAskClean

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.

Grafo di dipendenze Swift separato dai livelli duplicati della cache
Pulisci prima gli artefatti locali e purga i download condivisi solo quando sono la causa.

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.

  1. Salva le modifiche e verifica Package.swift e Package.resolved.
  2. Esegui swift package clean dalla radice e ricompila.
  3. Usa swift package reset solo se lo stato locale resta danneggiato.
  4. Usa swift package purge-cache solo se il problema misurato è la cache condivisa.
  5. 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

Altre guide sullo spazio per sviluppatori