Πλήρης απεγκατάσταση του Xcode από Mac χωρίς απώλεια έργων ή dSYM
Ομάδα AskClean · Ενημερώθηκε 2026-09-01
Πριν αφαιρέσετε πλήρως το Xcode, δημιουργήστε αντίγραφα των έργων και κρατήστε Archives και dSYM που χρειάζονται για διανεμημένα builds. Έπειτα μετακινήστε την εφαρμογή στον Κάδο και ελέγξτε χωριστά DerivedData, simulators, DeviceSupport και εργαλεία γραμμής εντολών.

Προστατέψτε τα μη ανακατασκευάσιμα δεδομένα πριν από την απεγκατάσταση
Οι φάκελοι έργων δεν είναι υπολείμματα Xcode. Προστατέψτε repositories, αρχεία χωρίς commit, τοπικά πακέτα και assets. Κρατήστε Archives/dSYM εκδόσεων που παραμένουν σε App Store, TestFlight ή πελάτες και την απαραίτητη κατάσταση Simulator.
- Τερματίστε πρώτα το Xcode. Η διαγραφή του DerivedData ενώ το Xcode τρέχει μπορεί να μπερδέψει τον indexer του, και αρχεία που το Xcode έχει ανοιχτά ενδέχεται να μη διαγραφούν σωστά.
- Βρείτε τον φάκελο: στο Xcode, ανοίξτε Settings > Locations και κάντε κλικ στο βελάκι δίπλα στη διαδρομή DerivedData για να τον εμφανίσετε στο Finder. Ή στο Finder πατήστε Command-Shift-G και πληκτρολογήστε απευθείας ~/Library/Developer/Xcode/DerivedData.
- Ταξινομήστε τους υποφακέλους των projects κατά μέγεθος, επιλέξτε όσους θέλετε να φύγουν (ή Command-A για όλους) και μεταφέρετέ τους στον Κάδο. Ο Κάδος πρώτα είναι η ασφαλέστερη συνήθεια — μπορείτε να επαναφέρετε αμέσως αν αλλάξετε γνώμη.
- Εναλλακτικά από το Terminal: η rm -rf ~/Library/Developer/Xcode/DerivedData διαγράφει τα πάντα μονομιάς. Είναι πιο γρήγορη από το Finder για πολύ μεγάλους φακέλους, αλλά διαβάστε τη σημείωση παρακάτω πριν τη χρησιμοποιήσετε.
- Ξανανοίξτε το Xcode και κάντε build. Περιμένετε το πρώτο build κάθε project να διαρκέσει αισθητά περισσότερο, και το «Indexing» να τρέχει για λίγο στη γραμμή δραστηριότητας — και τα δύο είναι εφάπαξ κόστη.
Προσοχή με την rm -rf: παρακάμπτει τον Κάδο και διαγράφει οριστικά, χωρίς αναίρεση. Πληκτρολογήστε τη διαδρομή ακριβώς, μην την εκτελέσετε ποτέ με sudo για αυτή τη δουλειά, και αν δεν νιώθετε άνετα στο Terminal, η διαδρομή μέσω Finder κάνει την ίδια δουλειά αναστρέψιμα.
Διαγράψτε το DerivedData
Υπάρχουν τρεις τρόποι να το κάνετε, και καταλήγουν στο ίδιο σημείο. Η εντολή Clean Build Folder του Xcode (Product > Clean Build Folder, ή Command-Shift-K) καθαρίζει μόνο τα προϊόντα build του τρέχοντος ανοιχτού project — χρήσιμη για να διορθώσετε ένα παράξενο build, αλλά μετά βίας κουνά τη βελόνα του χώρου στον δίσκο. Για να ανακτήσετε πραγματικό χώρο, διαγράψτε τους ίδιους τους φακέλους του DerivedData.
Η διαγραφή ανά project είναι η χειρουργική επιλογή: κρατήστε το DerivedData για τα δύο-τρία projects που χτίζετε καθημερινά και αφαιρέστε τους φακέλους όλων των υπολοίπων. Η διαγραφή ολόκληρου του φακέλου είναι η γρήγορη επιλογή, και είναι κι αυτή μια χαρά — απλώς πληρώνετε το κόστος του πλήρους rebuild σε όλα τα projects ταυτόχρονα.
Αφαιρέστε την εφαρμογή με την αρχική μέθοδο εγκατάστασης
Κλείστε Xcode και Simulator και μετακινήστε το σωστό Xcode.app στον Κάδο μέσω Finder. Μη διαγράψετε αυτόματα το /Library/Developer/CommandLineTools· Git, Homebrew, clang και scripts build μπορεί να το χρησιμοποιούν ακόμη.
Cache διαχειριστών πακέτων (SwiftPM, CocoaPods, npm, Homebrew)
Οι διαχειριστές πακέτων κρατούν κάθε εξάρτηση που έχουν κατεβάσει ποτέ, ώστε οι μελλοντικές εγκαταστάσεις να είναι γρήγορες. Αυτό είναι καλή μηχανική και κακή υγιεινή δίσκου: οι cache μόνο μεγαλώνουν, και σε ένα μηχάνημα με μερικά χρόνια projects φτάνουν αθόρυβα τα 10-20 GB. Όλες καθαρίζονται με ασφάλεια — στη χειρότερη περίπτωση, η επόμενη εγκατάσταση ξανακατεβάζει τα πακέτα.
Ο Swift Package Manager αποθηκεύει τα κατεβασμένα πακέτα στο ~/Library/Caches/org.swift.swiftpm, και τα resolved checkouts κάθε project ζουν επίσης μέσα στον φάκελο DerivedData του — οπότε ο καθαρισμός του DerivedData τα καθαρίζει ήδη. Την κοινόχρηστη cache μπορείτε να τη διαγράψετε από το Finder ή με rm -rf σε εκείνη τη διαδρομή.
Επαληθεύστε πριν αδειάσετε τον Κάδο
Ελέγξτε ξανά Applications, διεργασίες και xcode-select -p. Επιβεβαιώστε έργα, απαραίτητα Archives/dSYM και δεδομένα Simulator πριν αδειάσετε τον Κάδο. Το System Data μπορεί να ενημερωθεί αργότερα.
Χάρτης ασφάλειας πλήρους απεγκατάστασης
Αφαιρέστε με ασφάλεια το Xcode, ξεχωρίζοντας τις ανακατασκευάσιμες cache από Archives, DeviceSupport, δεδομένα Simulator και Command Line Tools.
| Απόφαση | Σημείο ελέγχου ή ενέργειας | Συνέπεια και επαλήθευση |
|---|---|---|
| Προστατέψτε τα μη ανακατασκευάσιμα δεδομένα πριν από την απεγκατάσταση | Projects / Xcode Organizer / Archives | Οι φάκελοι έργων δεν είναι υπολείμματα Xcode. Προστατέψτε repositories, αρχεία χωρίς commit, τοπικά πακέτα και assets. Κρατήστε Archives/dSYM εκδόσεων που παραμένουν σε App Store, TestFlight ή πελάτες και την απαραίτητη κατάσταση Simulator. |
| Αφαιρέστε την εφαρμογή με την αρχική μέθοδο εγκατάστασης | /Applications/Xcode.app / Finder | Κλείστε Xcode και Simulator και μετακινήστε το σωστό Xcode.app στον Κάδο μέσω Finder. Μη διαγράψετε αυτόματα το /Library/Developer/CommandLineTools· Git, Homebrew, clang και scripts build μπορεί να το χρησιμοποιούν ακόμη. |
| Επαληθεύστε πριν αδειάσετε τον Κάδο | xcode-select -p / Activity Monitor | Ελέγξτε ξανά Applications, διεργασίες και xcode-select -p. Επιβεβαιώστε έργα, απαραίτητα Archives/dSYM και δεδομένα Simulator πριν αδειάσετε τον Κάδο. Το System Data μπορεί να ενημερωθεί αργότερα. |
Συχνές ερωτήσεις
Μπορώ να διαγράψω ολόκληρο το ~/Library/Developer;
Όχι. Περιέχει ανακατασκευάσιμο DerivedData μαζί με Archives/dSYM, DeviceSupport, runtimes και κατάσταση Simulator· αξιολογήστε κάθε κατηγορία χωριστά.
Είναι ασφαλές να διαγράψω το DerivedData;
Ναι — είναι μία από τις ασφαλέστερες μεγάλες διαγραφές σε ένα Mac. Το DerivedData περιέχει μόνο αρχεία που το Xcode παράγει από τον πηγαίο κώδικά σας: προϊόντα build, cache modules, ευρετήρια και αρχεία καταγραφής. Ο κώδικας, τα αρχεία project και το ιστορικό git σας ζουν αλλού και δεν επηρεάζονται ποτέ. Η μόνη συνέπεια είναι ότι το επόμενο build κάθε project είναι πλήρες rebuild και η δημιουργία ευρετηρίου τρέχει ξανά.
Πόσο συχνά πρέπει να καθαρίζω το DerivedData;
Δεν υπάρχει υποχρεωτικό πρόγραμμα — καθαρίστε το όταν είναι αρκετά μεγάλο ώστε να έχει σημασία, δηλαδή για τους περισσότερους ενεργούς προγραμματιστές κάθε έναν-δύο μήνες. Δύο στιγμές το δικαιολογούν πάντα: όταν χρειάζεστε γρήγορα χώρο στον δίσκο, και όταν ένα project εμφανίζει ανεξήγητα σφάλματα build ή μπαγιάτικη αυτόματη συμπλήρωση, όπου το σβήσιμο του DerivedData είναι η τυπική πρώτη λύση.
Πηγές