Swift Package Manager -välimuistin turvallinen tyhjentäminen
AskClean-tiimi · Päivitetty 2026-07-31
Käytä swift package clean -komentoa nykyisen paketin koontiartefakteille, reset-komentoa koko paikallisen tilan nollaamiseen ja swift package purge-cache -komentoa vain globaalille repository-välimuistille. Säilytä Package.swift ja Package.resolved: ne määrittävät riippuvuudet eivätkä ole kertakäyttöistä välimuistia.

SwiftPM:ssä on useita kerroksia
Komentorivipaketti säilyttää checkoutit ja tuotteet .build-kansiossa, kun taas SwiftPM ylläpitää jaettua repository-välimuistia. Xcode voi säilyttää pakettituotteet projektin DerivedDatassa. Tyhjennä suppein ongelman selittävä kerros.
Valitse komento laajuuden mukaan
swift package clean poistaa nykyisen paketin koontiartefaktit. reset toimii laajemmin ja valmistelee paikallisen tilan uudelleen. purge-cache vaikuttaa useiden projektien yhteisiin latauksiin, joten seuraava ratkaisu voi vaatia verkkoa ja enemmän aikaa.
- Tallenna muutokset ja tarkista Package.swift sekä Package.resolved.
- Suorita juuressa swift package clean ja kokoa uudelleen.
- Käytä swift package reset -komentoa vain, jos paikallinen tila on yhä vioittunut.
- Käytä swift package purge-cache -komentoa vain vahvistettuun yhteisen välimuistin ongelmaan.
- Tarkista riippuvuudet ja testit siivouksen jälkeen.
Suorita swift package --help; käytettävissä olevat alikomennot riippuvat asennetusta Swift-versiosta.
Säilytä ratkaisutiedostot
Package.resolved tallentaa tietyt versiot. Sen poistaminen voi valita muita sallittuja versioita ja muuttaa siivouksen päivitykseksi. Package.swift, Sources, Tests, liitännäiset ja paikalliset riippuvuudet ovat lähdetiedostoja, eivät välimuistia.
Käsittele Xcode erikseen
Jos ongelma näkyy vain Xcodessa, kokeile File > Packages > Reset Package Caches ja Resolve Package Versions tai poista kyseisen projektin DerivedData. Mittaa .build-kansiot ennen globaalia tyhjennystä. AskClean löytää luokan, mutta Swift-komennot määräävät laajuuden.
UKK
Mitä swift package clean poistaa?
Nykyisen paketin koontiartefaktit; seuraava koonti luo ne uudelleen.
Ovatko reset ja purge-cache sama asia?
Eivät. reset koskee nykyistä pakettia, purge-cache globaalia repository-välimuistia.
Pitäisikö Package.resolved poistaa?
Ei tavallisessa siivouksessa. Tee se vain, kun haluat tarkoituksella uuden versioratkaisun.
Lähteet