AskClean

De Swift Package Manager-cache veilig wissen

AskClean-team · Bijgewerkt 2026-11-02

Gebruik swift package clean voor de buildartefacten van één project, swift package reset voor de volledige cache- en buildmap van dat pakket en swift package purge-cache voor de gedeelde repositorycache van SwiftPM. Bewaar Package.swift en Package.resolved: die leggen je afhankelijkheden vast en zijn geen wegwerpcache.

Isometrische afhankelijkheidsgrafiek met actieve Swift-pakketblokken, gescheiden van dubbele cachelagen
Kies de SwiftPM-opruiming met het kleinste bereik: eerst de buildartefacten van het project, gedeelde downloads alleen als die het probleem zijn.

SwiftPM heeft meer dan één cache

Een pakket dat je in Terminal met swift build bouwt, bewaart checkouts, repositories, buildresultaten en werkruimtestatus in .build. Daarnaast houdt SwiftPM een gedeelde repositorycache bij, zodat projecten dezelfde afhankelijkheden niet steeds opnieuw hoeven te downloaden. Bij Xcode-projecten staan pakketcheckouts en -producten meestal in de DerivedData-map van het project. Ruim de laag met het kleinste bereik op die het probleem verklaart: dat is sneller hersteld, werkt vaker offline en vertraagt andere repositories niet.

Kies het commando op basis van het bereik

swift package clean verwijdert de buildartefacten van het huidige pakket: de eerste keuze bij verouderde gecompileerde code of opruimen binnen één repository. swift package reset gaat verder en wist de volledige cache- en buildmap van het pakket, zodat afhankelijkheden en werkruimtestatus opnieuw moeten worden voorbereid. swift package purge-cache wist de globale repositorycache die projecten delen; de volgende resolve of build kan dan in meerdere projecten netwerktoegang en extra tijd vragen.

  1. Commit of stash je wijzigingen en controleer of Package.swift en Package.resolved aanwezig zijn.
  2. Voer in de hoofdmap van het pakket swift package clean uit en probeer de oorspronkelijke build opnieuw.
  3. Blijft de lokale werkruimte inconsistent, voer dan swift package reset uit en haal de afhankelijkheden opnieuw op voordat je bouwt.
  4. Gebruik swift package purge-cache alleen als de gedeelde cache aantoonbaar te groot of beschadigd is.
  5. Controleer de afhankelijkheden, de build en de tests voordat je ook DerivedData van Xcode opruimt.

Voer swift package --help uit: welke subcommando’s beschikbaar zijn, hangt af van de geïnstalleerde Swift-toolchain.

Bewaar Package.resolved en je bronbestanden

Package.resolved legt vast welke versies zijn gekozen. Verwijder je het, dan kan een volgende resolve andere versies kiezen die Package.swift toestaat, en wordt je opruimactie ongemerkt een update. Package.swift, Sources, Tests, plug-ins en lokale afhankelijkheden zijn bronbestanden: verwijder of wijzig ze nooit als cache. Gegenereerde .build-inhoud komt terug, zelf geschreven pakketbestanden niet altijd.

Behandel Xcode afzonderlijk

Komt het probleem alleen in Xcode voor, kies dan File > Packages > Reset Package Caches en daarna Resolve Package Versions (de menunamen kunnen per Xcode-versie verschillen), of verwijder alleen de DerivedData-map van dat project. Noteer bij een buildfout eerst de oorspronkelijke melding: authenticatiefouten, onbereikbare Git-hosts of een ongeldig manifest los je niet op door downloads te wissen. Meet .build-mappen voordat je de globale cache leegt. AskClean laat zien welke omliggende categorie ruimte inneemt; de Swift-commando’s bepalen het bereik van de opruiming.

Beslissingen en veiligheidsgrenzen op een rij

Wis de cache van Swift Package Manager (SPM) veilig: wanneer je swift package clean, reset of purge-cache gebruikt en hoe je Package.resolved intact houdt.

BeslissingWaar controlerenVeiligheidsgrens
SwiftPM heeft meer dan één cache.build / DerivedData / repositorycacheEen pakket dat je in Terminal met swift build bouwt, bewaart checkouts, repositories, buildresultaten en werkruimtestatus in .build.
Kies het commando op basis van het bereikswift package clean / reset / purge-cacheswift package clean verwijdert de buildartefacten van het huidige pakket: de eerste keuze bij verouderde gecompileerde code of opruimen binnen één repository.
Bewaar Package.resolved en je bronbestandenPackage.swift / Package.resolvedPackage.resolved legt vast welke versies zijn gekozen.
Behandel Xcode afzonderlijkFile > Packages / DerivedDataKomt het probleem alleen in Xcode voor, kies dan File > Packages > Reset Package Caches en daarna Resolve Package Versions (de menunamen kunnen per Xcode-versie verschillen), of verwijder alleen de DerivedData-map van dat project.

Veelgestelde vragen

Wat verwijdert swift package clean?

De buildartefacten van het huidige pakket; de volgende build maakt ze opnieuw. Package.swift blijft staan en je afhankelijkheidseisen veranderen niet.

Wat is het verschil tussen reset en purge-cache?

reset geldt voor de volledige cache- en buildmap van het huidige pakket; purge-cache wist de gedeelde, globale repositorycache van SwiftPM. Die opruiming heeft dus invloed op toekomstige downloads in al je projecten.

Moet ik Package.resolved verwijderen?

Niet bij gewoon opruimen. Het bestand legt de opgeloste versies vast; zonder dat bestand kan de volgende resolve andere versies kiezen. Verwijder het alleen als je bewust opnieuw wilt laten bepalen welke versies je gebruikt.

Bronnen

Meer gidsen over ontwikkelaarsopslag