Jak bezpečně vyčistit mezipaměť Swift Package Manageru
Tým AskClean · Aktualizováno 2026-07-31
Použijte swift package clean pro artefakty sestavení aktuálního balíčku, reset pro úplnou obnovu jeho místního stavu a swift package purge-cache jen pro globální mezipaměť repozitářů. Package.swift a Package.resolved ponechte: určují závislosti a nejsou zahoditelnou mezipamětí.

SwiftPM má více vrstev
Balíček příkazové řádky ukládá checkouty a produkty do .build, zatímco SwiftPM udržuje sdílenou mezipaměť repozitářů. Xcode může produkty balíčků uchovávat v DerivedData projektu. Čistěte nejužší vrstvu, která problém vysvětluje.
Příkaz vybírejte podle rozsahu
swift package clean odstraní artefakty sestavení aktuálního balíčku. reset je širší a obnoví jeho místní stav. purge-cache ovlivní stahování sdílené více projekty, takže další řešení závislostí může vyžadovat síť a více času.
- Uložte změny a ověřte Package.swift a Package.resolved.
- V kořeni spusťte swift package clean a sestavte znovu.
- swift package reset použijte jen při trvale poškozeném místním stavu.
- swift package purge-cache použijte jen při potvrzeném problému sdílené mezipaměti.
- Po čištění ověřte závislosti a testy.
Spusťte swift package --help; dostupné podpříkazy závisí na nainstalované verzi Swift.
Zachovejte soubory řešení
Package.resolved zapisuje konkrétní verze. Jeho smazání může vybrat jiné povolené verze a změnit úklid na aktualizaci. Package.swift, Sources, Tests, pluginy a místní závislosti jsou zdrojové soubory; nemažte je jako mezipaměť.
Xcode řešte samostatně
U problému pouze v Xcode zkuste File > Packages > Reset Package Caches a Resolve Package Versions nebo smažte DerivedData daného projektu. Před globálním čištěním změřte složky .build. AskClean najde kategorii, rozsah však určují příkazy Swift.
Porovnání rozhodnutí a rizik
Rozlišujte clean, reset a purge-cache, vyčistěte artefakty Xcode a ponechte Package.resolved.
| Rozhodnutí | Kde zkontrolovat | Bezpečnostní hranice |
|---|---|---|
| SwiftPM má více vrstev | .build / DerivedData / repository cache | Balíček příkazové řádky ukládá checkouty a produkty do .build, zatímco SwiftPM udržuje sdílenou mezipaměť repozitářů. Xcode může produkty balíčků uchovávat v DerivedData projektu. Čistěte nejužší vrstvu, která problém vysvětluje. |
| Příkaz vybírejte podle rozsahu | swift package clean / reset / purge-cache | swift package clean odstraní artefakty sestavení aktuálního balíčku. reset je širší a obnoví jeho místní stav. purge-cache ovlivní stahování sdílené více projekty, takže další řešení závislostí může vyžadovat síť a více času. |
| Zachovejte soubory řešení | Package.swift / Package.resolved | Package.resolved zapisuje konkrétní verze. Jeho smazání může vybrat jiné povolené verze a změnit úklid na aktualizaci. Package.swift, Sources, Tests, pluginy a místní závislosti jsou zdrojové soubory; nemažte je jako mezipaměť. |
| Xcode řešte samostatně | File > Packages / DerivedData | U problému pouze v Xcode zkuste File > Packages > Reset Package Caches a Resolve Package Versions nebo smažte DerivedData daného projektu. Před globálním čištěním změřte složky .build. AskClean najde kategorii, rozsah však určují příkazy Swift. |
Časté dotazy
Co smaže swift package clean?
Artefakty sestavení aktuálního balíčku; příští sestavení je vytvoří znovu.
Jsou reset a purge-cache stejné?
Ne. reset se týká aktuálního balíčku, purge-cache globální mezipaměti repozitářů.
Mám smazat Package.resolved?
Při běžném čištění ne. Udělejte to jen při záměrně novém řešení verzí.
Zdroje