Jak bezpiecznie wyczyścić pamięć podręczną Swift Package Manager
Zespół AskClean · Zaktualizowano 2026-07-31
Użyj swift package clean dla artefaktów kompilacji bieżącego pakietu, reset do pełnego odtworzenia jego stanu lokalnego, a swift package purge-cache wyłącznie dla globalnej pamięci podręcznej repozytoriów. Zachowaj Package.swift i Package.resolved: definiują zależności i nie są pamięcią podręczną do wyrzucenia.

SwiftPM ma kilka warstw
Pakiet wiersza poleceń trzyma checkouty i produkty w .build, a SwiftPM utrzymuje wspólną pamięć podręczną repozytoriów. Xcode może przechowywać produkty pakietów w DerivedData projektu. Czyść najwęższą warstwę wyjaśniającą problem.
Dobierz polecenie do zakresu
swift package clean usuwa artefakty kompilacji bieżącego pakietu. reset działa szerzej i odtwarza jego stan lokalny. purge-cache wpływa na pobrania wspólne dla wielu projektów, więc następne rozwiązywanie może wymagać sieci i więcej czasu.
- Zapisz zmiany i sprawdź Package.swift oraz Package.resolved.
- Uruchom swift package clean w katalogu głównym i zbuduj ponownie.
- Użyj swift package reset tylko, jeśli lokalny stan nadal jest uszkodzony.
- Użyj swift package purge-cache tylko przy potwierdzonym problemie wspólnej pamięci podręcznej.
- Po czyszczeniu sprawdź zależności i testy.
Uruchom swift package --help; dostępne podpolecenia zależą od zainstalowanej wersji Swift.
Zachowaj pliki rozwiązywania
Package.resolved zapisuje konkretne wersje. Usunięcie może wybrać inne dozwolone wersje i zmienić czyszczenie w aktualizację. Package.swift, Sources, Tests, wtyczki i zależności lokalne są źródłami — nie usuwaj ich jak pamięci podręcznej.
Obsłuż Xcode osobno
Dla problemu tylko w Xcode spróbuj File > Packages > Reset Package Caches i Resolve Package Versions lub usuń DerivedData danego projektu. Zmierz katalogi .build przed globalnym czyszczeniem. AskClean odnajduje kategorię, lecz zakres definiują polecenia Swift.
Porównanie decyzji i ryzyka
Rozróżnij clean, reset i purge-cache, wyczyść artefakty Xcode i zachowaj Package.resolved.
| Decyzja | Gdzie sprawdzić | Granica bezpieczeństwa |
|---|---|---|
| SwiftPM ma kilka warstw | .build / DerivedData / repository cache | Pakiet wiersza poleceń trzyma checkouty i produkty w .build, a SwiftPM utrzymuje wspólną pamięć podręczną repozytoriów. Xcode może przechowywać produkty pakietów w DerivedData projektu. Czyść najwęższą warstwę wyjaśniającą problem. |
| Dobierz polecenie do zakresu | swift package clean / reset / purge-cache | swift package clean usuwa artefakty kompilacji bieżącego pakietu. reset działa szerzej i odtwarza jego stan lokalny. purge-cache wpływa na pobrania wspólne dla wielu projektów, więc następne rozwiązywanie może wymagać sieci i więcej czasu. |
| Zachowaj pliki rozwiązywania | Package.swift / Package.resolved | Package.resolved zapisuje konkretne wersje. Usunięcie może wybrać inne dozwolone wersje i zmienić czyszczenie w aktualizację. Package.swift, Sources, Tests, wtyczki i zależności lokalne są źródłami — nie usuwaj ich jak pamięci podręcznej. |
| Obsłuż Xcode osobno | File > Packages / DerivedData | Dla problemu tylko w Xcode spróbuj File > Packages > Reset Package Caches i Resolve Package Versions lub usuń DerivedData danego projektu. Zmierz katalogi .build przed globalnym czyszczeniem. AskClean odnajduje kategorię, lecz zakres definiują polecenia Swift. |
FAQ
Co usuwa swift package clean?
Artefakty kompilacji bieżącego pakietu; następna kompilacja utworzy je ponownie.
Czy reset i purge-cache są tym samym?
Nie. reset dotyczy bieżącego pakietu, purge-cache czyści globalną pamięć podręczną repozytoriów.
Czy usuwać Package.resolved?
Nie przy zwykłym czyszczeniu. Zrób to tylko, gdy celowo chcesz nowego rozwiązania wersji.
Źródła