AskCleanAskClean

Supprimer d’anciennes Archives Xcode sans perdre les symboles de crash

Équipe AskClean · Mis à jour 2026-07-31

Ne supprimez une Xcode Archive qu’après avoir confirmé que sa version n’est plus distribuée et que son dSYM ne servira plus à analyser des crashs. Passez par l’Organizer de Xcode, gardez tous les builds App Store, TestFlight, Enterprise et Ad Hoc encore actifs, puis placez uniquement les archives retirées dans la Corbeille.

Archives Xcode séparées entre versions actuelles protégées et anciens builds à examiner
Une Archive est une preuve de livraison, pas un simple cache : protégez les builds actuels et examinez les anciens un par un.

Pourquoi Archives n’est pas DerivedData

Product > Archive crée un build distribuable dans un paquet .xcarchive. Xcode le conserve par défaut sous ~/Library/Developer/Xcode/Archives, classé par date et visible dans l’Organizer. Une app maintenue longtemps accumule candidats, builds TestFlight et versions de production.

DerivedData se recrée depuis le code source. Une Archive peut contenir le binaire exact, les métadonnées et le dSYM de cette livraison. Apple précise qu’un dSYM est lié à un binaire par UUID. Recompiler le même commit ne recrée donc pas un symbole interchangeable.

Le coût de suppression diffère : DerivedData ne demande qu’une nouvelle compilation et indexation. Une Archive supprimée à tort peut empêcher définitivement la traduction d’adresses de crash en fonctions et lignes de code.

Établir la liste à conserver avant la liste à supprimer

Commencez dans Window > Organizer > Archives, pas dans des dossiers datés du Finder. Sélectionnez l’app et vérifiez version, numéro de build, date et état de distribution. Ce contexte est plus fiable qu’un nom qui paraît ancien.

Conservez toutes les versions présentes sur l’App Store, les builds TestFlight actifs, les installations Enterprise ou Ad Hoc encore utilisées et les anciennes productions toujours dans votre fenêtre d’analyse. Gardez aussi tout build de référence nécessaire à un nouvel export, à la signature ou à un incident.

Un téléversement réussi ne rend pas automatiquement l’Archive locale inutile. Apple a peut-être reçu les symboles selon vos réglages, mais sa documentation conseille toujours de garder l’archive de chaque build distribué. Elle relie clairement binaire, dSYM, version et build.

  1. Ouvrez Window > Organizer et choisissez Archives.
  2. Relevez versions et builds de toute production, TestFlight, Enterprise ou Ad Hoc encore utilisée.
  3. Vérifiez l’envoi des symboles et copiez les archives irremplaçables vers un stockage sauvegardé si nécessaire.
  4. Ne marquez que les candidats remplacés, builds internes abandonnés et versions hors période d’analyse.
  5. Supprimez-les une par une, contrôlez ce qui reste puis seulement ensuite videz la Corbeille.

L’âge seul n’est pas une politique sûre : un ancien binaire de production peut rester longtemps installé après une mise à jour.

Mesurer sans supprimer

Dans le Finder, appuyez sur Commande-Maj-G, ouvrez ~/Library/Developer/Xcode/Archives, activez « Calculer toutes les tailles » en vue liste et triez. Cette inspection ne modifie rien.

Dans le Terminal, du -sh ~/Library/Developer/Xcode/Archives donne le total et du -sh ~/Library/Developer/Xcode/Archives/* détaille les dossiers de dates. Ces commandes sont en lecture seule.

Un .xcarchive est un paquet. Vous pouvez inspecter le contenu d’une copie, mais ne retirez pas des fichiers internes de l’original : il peut rester visible tout en devenant inutilisable pour l’export ou la symbolication.

La méthode de suppression la plus sûre

L’Organizer est prioritaire : app, version et build restent visibles au moment de l’action. Sélectionnez seulement une Archive dont le retrait est confirmé.

N’utilisez le Finder que si l’Organizer ne lit pas un vieux paquet endommagé. Comparez son Info.plist à votre audit, puis placez ce seul .xcarchive dans la Corbeille. Ne supprimez jamais tout un dossier parce que sa date est ancienne.

Ne videz pas immédiatement la Corbeille. Rouvrez l’Organizer, contrôlez les exports nécessaires et, si les symboles sont critiques, testez un crash représentatif. Une suppression définitive plus rapide n’améliore pas la décision.

Une conservation qui ne croît pas indéfiniment

Basez la règle sur l’état de livraison : tous les builds distribués, les productions remplacées jusqu’à la fin des crashs acceptés, les Enterprise jusqu’à l’expiration de leurs installations et les jalons imposés par audit ou incident.

Inscrivez dans la checklist de release l’emplacement, l’envoi du dSYM, les droits d’accès et la date d’éligibilité à la suppression. Pour un stockage externe ou cloud, testez réellement restauration et export.

Une courte revue après chaque cycle majeur évite la panique lorsque le disque de démarrage est plein. En urgence, commencez par DerivedData et les éléments régénérables.

Comment AskClean traite les Archives

AskClean ne classe pas Xcode Archives comme un cache régénérable ordinaire. Il liste chaque .xcarchive et signale le coût irréversible au lieu de proposer une suppression globale du dossier.

La décision reste vôtre. AskClean montre taille et chemin et peut déplacer un élément approuvé vers la Corbeille, mais ne connaît pas votre fenêtre de support et ne peut recréer un dSYM perdu.

Frontière de suppression : régénérable ou irremplaçable

Évaluez le coût de récupération avant l’âge ou la taille.

ÉlémentEmplacement par défautConséquence
DerivedData~/Library/Developer/Xcode/DerivedDataSe reconstruit ; la prochaine compilation et indexation seront plus lentes.
Xcode Archive~/Library/Developer/Xcode/ArchivesPeut retirer binaire, métadonnées et dSYM correspondant.
dSYM exportéStockage des releases de l’équipePeut être la seule copie des symboles d’un binaire distribué.
Build interne retiré~/Library/Developer/Xcode/ArchivesCandidat seulement après fin des installations et du support.

FAQ

Puis-je supprimer tout ~/Library/Developer/Xcode/Archives ?

Pas en bloc. Il peut contenir binaires exacts et dSYM de builds distribués. Gardez productions, TestFlight, Enterprise, Ad Hoc actifs et toute version encore analysée.

Supprimer l’Archive retire-t-il l’app de l’App Store ?

Non. App Store Connect et les appareils ne changent pas. Vous perdez seulement votre artefact local pour réexporter ou symboliser.

Puis-je recréer un dSYM avec le même commit ?

Pas de manière fiable. Le dSYM doit correspondre à l’UUID du binaire distribué ; un nouveau build a une autre identité.

Archives ou DerivedData en premier ?

Généralement DerivedData, qui est régénérable. Archives demande un audit version par version car une erreur peut retirer une preuve de débogage unique.

Sources

Poursuivre l’audit Xcode