Så rensar du Swift Package Manager-cachen säkert
AskClean-teamet · Uppdaterad 2026-07-31
Använd swift package clean för byggartefakter i aktuellt paket, reset för att återställa hela dess lokala tillstånd och swift package purge-cache endast för den globala repositorycachen. Behåll Package.swift och Package.resolved: de definierar beroenden och är inte engångscache.

SwiftPM har flera lager
Ett kommandoradspaket lagrar checkout och produkter i .build, medan SwiftPM har en delad repositorycache. Xcode kan lagra paketprodukter i projektets DerivedData. Rensa det smalaste lagret som förklarar problemet.
Välj kommando efter omfattning
swift package clean tar bort byggartefakter för aktuellt paket. reset går längre och förbereder det lokala tillståndet på nytt. purge-cache påverkar hämtningar som delas av flera projekt, så nästa upplösning kan kräva nätverk och mer tid.
- Spara ändringar och kontrollera Package.swift samt Package.resolved.
- Kör swift package clean i roten och bygg igen.
- Använd swift package reset endast om lokalt tillstånd fortfarande är skadat.
- Använd swift package purge-cache endast vid bekräftat problem med delad cache.
- Kontrollera beroenden och tester efter rensningen.
Kör swift package --help; tillgängliga underkommandon beror på installerad Swift-version.
Behåll upplösningsfiler
Package.resolved registrerar specifika versioner. Om den tas bort kan andra tillåtna versioner väljas och en rensning bli en uppdatering. Package.swift, Sources, Tests, insticksprogram och lokala beroenden är källfiler, inte cache.
Hantera Xcode separat
Vid problem enbart i Xcode provar du File > Packages > Reset Package Caches och Resolve Package Versions eller tar bort projektets DerivedData. Mät .build-mappar före en global purge. AskClean hittar kategorin, men Swift-kommandona bestämmer omfattningen.
Vanliga frågor
Vad tar swift package clean bort?
Byggartefakter i aktuellt paket; nästa bygge skapar dem igen.
Är reset och purge-cache samma sak?
Nej. reset gäller aktuellt paket, purge-cache den globala repositorycachen.
Ska Package.resolved raderas?
Inte vid vanlig rensning. Gör det bara om du avsiktligt vill lösa versionerna på nytt.
Källor