Slik tømmer du Swift Package Manager-cachen trygt
AskClean-teamet · Oppdatert 2026-11-02
Bruk swift package clean for byggeartefaktene i ett prosjekt, swift package reset for hele cachen og byggemappen til den pakken, og swift package purge-cache for den delte repository-cachen til SwiftPM. Behold Package.swift og Package.resolved: De definerer avhengighetene og skal ikke slettes som cache.

SwiftPM har flere lag
En pakke du bygger på kommandolinjen, har vanligvis en .build-mappe med utsjekkede avhengigheter, byggeresultater og arbeidsområdestatus. SwiftPM har i tillegg en delt repository-cache, slik at flere prosjekter slipper å hente de samme avhengighetene på nytt. Xcode legger pakkeutsjekkinger og byggeprodukter i prosjektets DerivedData. Rydd det smaleste laget som forklarer symptomet – en prosjektopprydding er raskere å komme seg etter og gjør ikke andre repositoryer tregere.
Velg kommando etter omfang
swift package clean sletter byggeartefaktene til pakken og er førstevalget ved utdaterte kompileringsresultater eller når du vil rydde plass i ett repository. swift package reset nullstiller hele cachen og byggemappen til pakken, så avhengigheter og arbeidsområdestatus må forberedes på nytt. swift package purge-cache tømmer den globale repository-cachen som prosjektene deler, så neste avhengighetsoppløsning eller neste bygg kan trenge nettverk og ta lengre tid i flere repositoryer.
- Commit eller stash endringer i kildekoden, og kontroller at Package.swift og Package.resolved ligger der prosjektet forventer.
- Kjør swift package clean fra rotmappen til pakken, og prøv det opprinnelige bygget på nytt.
- Er arbeidsområdet til pakken fortsatt inkonsistent, kjører du swift package reset, henter avhengighetene og bygger på nytt.
- Kjør swift package purge-cache bare hvis den delte repository-cachen er unormalt stor eller skadet.
- Kontroller avhengighetsgrafen og bygget før du rydder i DerivedData for Xcode.
Hvilke kommandoer som finnes, avhenger av Swift-verktøykjeden du har installert. Kjør swift package --help for å se hvilke underkommandoer Macen din støtter.
Behold Package.resolved
Package.resolved registrerer de bestemte versjonene avhengighetene er låst til, og for apper bør filen ligge i versjonskontroll. Sletter du den, kan neste avhengighetsoppløsning velge andre versjoner som Package.swift tillater – og oppryddingen blir i det stille en oppgradering. Package.swift, Sources, Tests, plugins og lokale stiavhengigheter er kildefiler, ikke cache: Generert innhold i .build kommer tilbake; det du har skrevet selv, gjør ikke nødvendigvis det.
Håndter Xcode separat
Gjelder problemet bare i Xcode, begynner du med File > Packages > Reset Package Caches (hvis Xcode-versjonen din har kommandoen) og deretter File > Packages > Resolve Package Versions. Henger feilen sammen med de kompilerte pakkene i prosjektet, sletter du bare det prosjektets DerivedData-mappe. Mål .build-mappene før du tyr til purge-cache. AskClean kan vise kategoriene rundt SwiftPM, som DerivedData per prosjekt og byggeartefakter i repositoryer, og spør før noe slettes – men det er Swift-kommandoene som bestemmer omfanget av selve cacheoppryddingen.
Oversikt over beslutninger og risiko
Tøm cachen til Swift Package Manager (SPM) trygt: når du bruker swift package clean, reset eller purge-cache, og hvordan du holder Package.resolved intakt.
| Tema | Hvor du sjekker | Konsekvens og grenser |
|---|---|---|
| SwiftPM har flere lag | .build / DerivedData / repository-cache | En pakke du bygger på kommandolinjen, har vanligvis en .build-mappe med utsjekkede avhengigheter, byggeresultater og arbeidsområdestatus. |
| Velg kommando etter omfang | swift package clean / reset / purge-cache | swift package clean sletter byggeartefaktene til pakken og er førstevalget ved utdaterte kompileringsresultater eller når du vil rydde plass i ett repository. |
| Behold Package.resolved | Package.swift / Package.resolved | Package.resolved registrerer de bestemte versjonene avhengighetene er låst til, og for apper bør filen ligge i versjonskontroll. |
| Håndter Xcode separat | File > Packages / DerivedData | Gjelder problemet bare i Xcode, begynner du med File > Packages > Reset Package Caches (hvis Xcode-versjonen din har kommandoen) og deretter File > Packages > Resolve Package Versions. |
Vanlige spørsmål
Hva sletter swift package clean?
Byggeartefaktene til den aktuelle pakken. Kommandoen sletter ikke Package.swift og endrer ikke avhengighetskravene; neste bygg lager det genererte innholdet på nytt.
Er reset og purge-cache det samme?
Nei. reset gjelder hele cachen og byggemappen til den aktuelle pakken, mens purge-cache tømmer den globale repository-cachen som alle prosjektene deler – og påvirker dermed senere nedlastinger i flere prosjekter.
Bør jeg slette Package.resolved?
Ikke ved vanlig opprydding. Filen registrerer hvilke avhengighetsversjoner som er valgt, og sletter du den, kan neste oppløsning velge andre. Fjern den bare når en helt ny avhengighetsoppløsning er målet.
Kilder