Como limpar o cache do Swift Package Manager com segurança
Equipe AskClean · Atualizado 2026-07-31
Use swift package clean para artefatos de build do pacote atual, reset para reiniciar todo o estado local desse pacote e swift package purge-cache somente para o cache global de repositórios. Preserve Package.swift e Package.resolved: eles definem as dependências e não são cache descartável.

O SwiftPM tem várias camadas
Um pacote de linha de comando guarda checkouts e produtos em .build, enquanto o SwiftPM mantém um cache de repositórios compartilhado. O Xcode pode manter produtos dos pacotes no DerivedData do projeto. Limpe a camada mais estreita que explique o problema.
Escolha o comando pelo alcance
swift package clean remove artefatos de build do pacote atual. reset é mais amplo e recria seu estado local. purge-cache afeta downloads compartilhados por vários projetos; a próxima resolução pode exigir rede e levar mais tempo.
- Salve as alterações e confirme Package.swift e Package.resolved.
- Execute swift package clean na raiz e compile novamente.
- Use swift package reset somente se o estado local continuar corrompido.
- Use swift package purge-cache somente se o cache compartilhado for o problema medido.
- Confira dependências e testes depois da limpeza.
Execute swift package --help; os subcomandos disponíveis dependem da versão do Swift instalada.
Preserve os arquivos de resolução
Package.resolved registra versões específicas. Apagá-lo pode selecionar versões diferentes e transformar limpeza em atualização. Package.swift, Sources, Tests, plugins e dependências locais são código-fonte; não os remova como cache.
Trate o Xcode separadamente
Para um problema só no Xcode, tente File > Packages > Reset Package Caches e Resolve Package Versions ou apague o DerivedData desse projeto. Meça diretórios .build antes de uma purga global. O AskClean localiza a categoria, mas os comandos Swift definem seu alcance.
Perguntas frequentes
O que swift package clean remove?
Os artefatos de build do pacote atual; a próxima compilação os recria.
reset e purge-cache são iguais?
Não. reset afeta o pacote atual; purge-cache remove o cache global de repositórios.
Devo apagar Package.resolved?
Não numa limpeza comum. Faça isso apenas quando quiser uma nova resolução de versões.
Fontes