AskCleanAskClean

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.

Graf zależności Swift oddzielony od zduplikowanych warstw pamięci podręcznej
Najpierw czyść lokalne artefakty pakietu, a wspólne pobrania tylko wtedy, gdy to one są problemem.

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.

  1. Zapisz zmiany i sprawdź Package.swift oraz Package.resolved.
  2. Uruchom swift package clean w katalogu głównym i zbuduj ponownie.
  3. Użyj swift package reset tylko, jeśli lokalny stan nadal jest uszkodzony.
  4. Użyj swift package purge-cache tylko przy potwierdzonym problemie wspólnej pamięci podręcznej.
  5. 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.

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

Więcej poradników o danych deweloperskich