AskCleanAskClean

Πώς να καθαρίσετε με ασφάλεια την cache του Swift Package Manager

Ομάδα AskClean · Ενημερώθηκε 2026-07-31

Χρησιμοποιήστε swift package clean για τεχνουργήματα του τρέχοντος package, reset για πλήρη επαναφορά της τοπικής κατάστασής του και swift package purge-cache μόνο για την καθολική repository cache. Κρατήστε Package.swift και Package.resolved: ορίζουν dependencies και δεν είναι αναλώσιμη cache.

Γράφημα dependencies Swift χωρισμένο από διπλά επίπεδα cache
Καθαρίστε πρώτα τα τοπικά τεχνουργήματα πακέτων και κάντε purge στις κοινές λήψεις μόνο όταν είναι η αιτία.

Το SwiftPM έχει πολλά επίπεδα

Ένα package γραμμής εντολών αποθηκεύει checkouts και προϊόντα στο .build, ενώ το SwiftPM διατηρεί κοινή repository cache. Το Xcode μπορεί να αποθηκεύει προϊόντα package στο DerivedData του project. Καθαρίστε το στενότερο επίπεδο που εξηγεί το πρόβλημα.

Επιλέξτε εντολή βάσει εύρους

Το swift package clean αφαιρεί τεχνουργήματα του τρέχοντος package. Το reset είναι ευρύτερο και προετοιμάζει ξανά την τοπική κατάστασή του. Το purge-cache επηρεάζει λήψεις πολλών projects, οπότε η επόμενη επίλυση μπορεί να χρειαστεί δίκτυο και περισσότερο χρόνο.

  1. Αποθηκεύστε αλλαγές και επιβεβαιώστε Package.swift και Package.resolved.
  2. Εκτελέστε swift package clean στη ρίζα και κάντε νέο build.
  3. Χρησιμοποιήστε swift package reset μόνο αν η τοπική κατάσταση παραμένει κατεστραμμένη.
  4. Χρησιμοποιήστε swift package purge-cache μόνο για επιβεβαιωμένο πρόβλημα κοινής cache.
  5. Ελέγξτε dependencies και tests μετά τον καθαρισμό.

Εκτελέστε swift package --help· οι διαθέσιμες υποεντολές εξαρτώνται από την εγκατεστημένη έκδοση Swift.

Κρατήστε τα αρχεία επίλυσης

Το Package.resolved καταγράφει συγκεκριμένες εκδόσεις. Η διαγραφή του μπορεί να επιλέξει άλλες επιτρεπτές εκδόσεις και να μετατρέψει τον καθαρισμό σε ενημέρωση. Package.swift, Sources, Tests, plugins και τοπικά dependencies είναι source, όχι cache.

Χειριστείτε το Xcode χωριστά

Για πρόβλημα μόνο στο Xcode, δοκιμάστε File > Packages > Reset Package Caches και Resolve Package Versions ή διαγράψτε το DerivedData του project. Μετρήστε φακέλους .build πριν από καθολικό purge. Το AskClean βρίσκει την κατηγορία, οι εντολές Swift ορίζουν το εύρος.

Συχνές ερωτήσεις

Τι διαγράφει το swift package clean;

Τα τεχνουργήματα build του τρέχοντος package· το επόμενο build τα δημιουργεί ξανά.

Είναι ίδια τα reset και purge-cache;

Όχι. Το reset αφορά το τρέχον package, το purge-cache την καθολική repository cache.

Να διαγράψω το Package.resolved;

Όχι για συνηθισμένο καθαρισμό. Μόνο αν θέλετε σκόπιμα νέα επίλυση εκδόσεων.

Πηγές

Περισσότεροι οδηγοί αποθήκευσης για προγραμματιστές