AskClean

Πώς να διαγράψετε παλιά Xcode Archives χωρίς να χάσετε dSYM

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

Ναι, μπορείτε να διαγράψετε παλιά Xcode Archives, αλλά μόνο αφού επιβεβαιώσετε ότι το build έχει αποσυρθεί και ότι τα dSYM του δεν θα χρειαστούν για αναφορές crash. Ελέγξτε κάθε .xcarchive χωριστά στο Organizer του Xcode, κρατήστε κάθε build App Store, TestFlight, Enterprise ή Ad Hoc που είναι ακόμη σε χρήση και μετακινήστε στον Κάδο μόνο archives που έχουν αντικατασταθεί.

Xcode Archives χωρισμένα σε προστατευμένες ενεργές εκδόσεις και παλιά builds προς έλεγχο
Αντιμετωπίστε τα archives ως τεκμήρια εκδόσεων, όχι ως συνηθισμένη cache: προστατέψτε τα τρέχοντα builds και ελέγξτε τα αποσυρμένα ένα-ένα.

Ένα Archive δεν είναι cache

Το Product > Archive δημιουργεί ένα .xcarchive με το ακριβές binary, τα metadata και συνήθως το αντίστοιχο dSYM στο ~/Library/Developer/Xcode/Archives. Το DerivedData δημιουργείται ξανά από τον κώδικα· ένα dSYM όμως αντιστοιχεί στο UUID ενός συγκεκριμένου build και η νέα μεταγλώττιση του ίδιου commit δεν δίνει ισοδύναμο αρχείο. Χωρίς τα σωστά σύμβολα, οι αναφορές crash εκείνου του build δείχνουν διευθύνσεις μνήμης αντί για ονόματα συναρτήσεων.

Καταγράψτε τα builds πριν από τη διαγραφή

Στο Window > Organizer > Archives βλέπετε την εφαρμογή, την έκδοση, τον αριθμό build, την ημερομηνία και την κατάσταση διανομής. Κρατήστε κάθε build που είναι ακόμη εγκατεστημένο ή βρίσκεται μέσα στην περίοδο υποστήριξης και διερεύνησης crash. Ούτε η ηλικία του αρχείου ούτε μια επιτυχημένη μεταφόρτωση στο App Store Connect κάνουν από μόνες τους το τοπικό archive περιττό.

  1. Ανοίξτε το Window > Organizer και επιλέξτε Archives.
  2. Επιλέξτε την εφαρμογή και καταγράψτε έκδοση και αριθμό build για κάθε build App Store, TestFlight, Enterprise ή Ad Hoc που είναι ακόμη σε χρήση.
  3. Επιβεβαιώστε ότι τα απαραίτητα dSYM έχουν μεταφορτωθεί όπου χρειάζεται και αντιγράψτε τα αναντικατάστατα archives σε χώρο με αντίγραφα ασφαλείας.
  4. Σημειώστε ως υποψήφια μόνο release candidates που αντικαταστάθηκαν, εγκαταλελειμμένα εσωτερικά builds και εκδόσεις εκτός της περιόδου διερεύνησης crash.
  5. Διαγράψτε τα υποψήφια ένα-ένα από το Organizer, ελέγξτε ότι τα υπόλοιπα archives είναι στη θέση τους και μόνο τότε αδειάστε τον Κάδο.

Η ημερομηνία από μόνη της δεν είναι ασφαλές κριτήριο: ένα παλιό build παραγωγής μπορεί να παραμένει εγκατεστημένο σε συσκευές πελατών για μήνες μετά την κυκλοφορία νεότερης έκδοσης.

Διαγράψτε με δυνατότητα επαναφοράς

Προτιμήστε το Organizer και αφαιρείτε έναν υποψήφιο κάθε φορά. Χρησιμοποιήστε το Finder μόνο όταν το Organizer δεν ανοίγει ένα παλιό πακέτο, και μόνο αφού ταυτίσετε το Info.plist με την καταγραφή σας· μη διαγράφετε έναν ολόκληρο φάκελο με ημερομηνία στο όνομα μόνο επειδή είναι παλιός. Μην αλλάζετε το εσωτερικό του .xcarchive και μην αδειάζετε τον Κάδο πριν ολοκληρώσετε τον έλεγχο· η οριστική διαγραφή από το Τερματικό καταργεί αυτό το περιθώριο ασφαλείας χωρίς να κάνει τον καθαρισμό πιο σωστό.

Ορίστε πολιτική διατήρησης

Για κάθε έκδοση καταγράψτε πού βρίσκεται το archive, αν μεταφορτώθηκαν τα σύμβολα, πού υπάρχει αντίγραφο ασφαλείας και πότε επιτρέπεται η διαγραφή. Σε επείγουσα έλλειψη χώρου ξεκινήστε από το DerivedData και άλλα δεδομένα που δημιουργούνται ξανά. Το AskClean εμφανίζει κάθε .xcarchive χωριστά, με προειδοποίηση για μη αναστρέψιμο κόστος, και δεν το θεωρεί cache για μαζική διαγραφή· ό,τι επιβεβαιώσετε σε αυτό διαγράφεται οριστικά και δεν μετακινείται στον Κάδο.

Σύγκριση αποφάσεων και κινδύνων

Ποια Xcode Archives μπορείτε να διαγράψετε, πού βρίσκονται τα .xcarchive, πώς αφαιρείτε παλιά builds από το Organizer και πότε πρέπει να κρατήσετε τα dSYM.

ΑπόφασηΠού να ελέγξετεΌριο ασφάλειας
Ένα Archive δεν είναι cache~/Library/Developer/Xcode/ArchivesΤο Product > Archive δημιουργεί ένα .xcarchive με το ακριβές binary, τα metadata και συνήθως το αντίστοιχο dSYM στο ~/Library/Developer/Xcode/Archives.
Καταγράψτε τα builds πριν από τη διαγραφήWindow > Organizer > ArchivesΣτο Window > Organizer > Archives βλέπετε την εφαρμογή, την έκδοση, τον αριθμό build, την ημερομηνία και την κατάσταση διανομής.
Διαγράψτε με δυνατότητα επαναφοράςOrganizer / Finder / ΚάδοςΠροτιμήστε το Organizer και αφαιρείτε έναν υποψήφιο κάθε φορά.
Ορίστε πολιτική διατήρησηςΚατάλογος εκδόσεων / αντίγραφο ασφαλείαςΓια κάθε έκδοση καταγράψτε πού βρίσκεται το archive, αν μεταφορτώθηκαν τα σύμβολα, πού υπάρχει αντίγραφο ασφαλείας και πότε επιτρέπεται η διαγραφή.

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

Μπορώ να διαγράψω όλο τον φάκελο Archives;

Όχι μαζικά. Μπορεί να περιέχει το μοναδικό binary και τα dSYM μιας έκδοσης που έχει διανεμηθεί. Κρατήστε κάθε build παραγωγής, TestFlight, Enterprise ή Ad Hoc που είναι ακόμη σε χρήση και κάθε έκδοση της οποίας τα crash μπορεί να χρειαστεί να διερευνήσετε.

Θα αφαιρεθεί η εφαρμογή από το App Store;

Όχι. Η διαγραφή ενός τοπικού .xcarchive δεν αφαιρεί την εφαρμογή από το App Store Connect ούτε από τις συσκευές των χρηστών. Χάνετε μόνο το τοπικό αντίγραφο της έκδοσης, που ίσως χρειαστείτε για νέα εξαγωγή ή συμβολοποίηση.

Μπορώ να αναδημιουργήσω το dSYM από το ίδιο commit;

Όχι αξιόπιστα. Το dSYM πρέπει να ταιριάζει ακριβώς με το UUID του binary που διανεμήθηκε, και ένα νέο build έχει διαφορετικό UUID. Κρατήστε το αρχικό archive ή τα αντίστοιχα σύμβολά του.

Πηγές

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