Guides Levo · Développeurs : Apple

Pourquoi Xcode est-il si gros ? Ce que l’on peut supprimer sans risque

La liste Ready to free de Levo avec le groupe Xcode build data ouvert, et en dessous Simulators and emulators et les fichiers Device Support

L’app Xcode n’en est qu’une partie. Le vrai poids se trouve dans ~/Library/Developer : données de compilation, simulateurs, runtimes téléchargés et symboles de débogage de chaque appareil que vous avez branché. Presque tout revient, vous pouvez donc le vider. Les deux exceptions sont les archives et les données des simulateurs que vous utilisez encore.

QuoiOùSuppression sûre ?
Xcode.app/Applications/Xcode.appAnciennes versions, oui. Gardez celle que vous utilisez
Données de compilation~/Library/Developer/Xcode/DerivedDataOui, reconstruites à la prochaine compilation
Simulateurs~/Library/Developer/CoreSimulator/DevicesOui, mais les données d’apps à l’intérieur partent aussi
Runtimes de simulateurs/Library/Developer/CoreSimulator (images disque)Oui, à retélécharger au besoin
Device Support~/Library/Developer/Xcode/iOS DeviceSupportOui, recopié à la prochaine connexion
Archives~/Library/Developer/Xcode/ArchivesSeulement si la version est livrée et que ses symboles sont stockés ailleurs
Caches~/Library/Caches/com.apple.dt.XcodeOui
Aperçus SwiftUI~/Library/Developer/Xcode/UserData/PreviewsOui
Outils en ligne de commande/Library/Developer/CommandLineToolsSeulement si vous avez le Xcode complet et n’en avez pas besoin séparément

Comment le faire vous-même

Mesurez d’abord les dossiers pour consacrer votre temps aux plus gros :

du -sh ~/Library/Developer/Xcode/* ~/Library/Developer/CoreSimulator /Library/Developer/CoreSimulator 2>/dev/null
  1. Quittez Xcode, puis supprimez le contenu de DerivedData. Consultez comment supprimer DerivedData.
  2. Supprimez les simulateurs et runtimes que vous n’utilisez pas avec xcrun simctl, ou dans Xcode › Settings › Components. Consultez comment supprimer les anciens simulateurs.
  3. Ouvrez iOS DeviceSupport et supprimez les dossiers des versions d’iOS que vos appareils n’utilisent plus. Consultez ce qu’est DeviceSupport.
  4. Videz les caches de paquets avec les commandes de caches SwiftPM et CocoaPods.
  5. Ouvrez Xcode › Window › Organizer › Archives et regardez ce qui s’y trouve. Les archives sont l’unique copie de la version exacte envoyée à App Store Connect, et les dSYM qu’elles contiennent servent à symboliquer ses rapports d’incident. Ne supprimez les anciennes que si vous avez ces symboles ailleurs.

Les anciennes versions de Xcode dans /Applications pèsent environ 12 à 15 Go chacune. Supprimez-les dans le Finder, ne déplacez pas le dossier Developer pour le mettre de côté.

Ce que coûte le retour de chacun

Le moins coûteux à perdre est DerivedData : une compilation plus lente par projet. Les runtimes de simulateurs coûtent un téléchargement de plusieurs gigaoctets et quelques minutes : ne gardez donc que les versions d’iOS que prend en charge votre app. Device Support coûte une courte attente la prochaine fois que vous branchez un iPhone.

Les archives, c’est différent. Les fichiers dSYM qu’elles contiennent transforment un rapport d’incident brut d’une ancienne version en lignes lisibles. Si vous envoyez les dSYM à votre outil de suivi des plantages au moment de la sortie, l’archive n’est qu’un gros zip que vous pouvez supprimer. Sinon, gardez l’archive de chaque version encore en circulation.

Les mises à jour de Xcode sont aussi une cause discrète. Chaque nouvelle version installée à côté de l’ancienne ajoute 12 à 15 Go, et les bêtas de Xcode s’empilent. Supprimez les anciennes copies dans le Finder, videz la corbeille et l’espace revient aussitôt. Si un Mac est presque plein, faites-le avant toute autre chose, car un disque plein fait échouer l’indexation et les compilations de Xcode de façon étrange.

Comment Levo s’y prend

Levo liste les données de compilation Xcode, les fichiers Device Support, les simulateurs et les caches de paquets sur des lignes distinctes avec leurs tailles : vous voyez lequel des éléments ci-dessus représente vos 80 Go. Les données de compilation et les caches sont cochés en premier quand le projet est ancien ou disparu. Les anciennes versions de Xcode et les archives sont listées mais jamais cochées à votre place.

Levo supprime les simulateurs avec le simctl propre à Xcode et ignore les données de compilation tant que Xcode, xcodebuild ou un simulateur démarré est en cours d’exécution. Consultez Levo pour les développeurs iOS et Mac.

FAQ

Pourquoi Xcode occupe-t-il 100 Go ?

À cause de ce qu’il stocke en dehors de l’app : données de compilation par projet, simulateurs et leurs runtimes, symboles de débogage de chaque appareil connecté, et archives. L’app elle-même pèse environ 15 Go.

Puis-je supprimer le dossier Library/Developer de Xcode ?

Pas le dossier entier. Videz-y DerivedData, les appareils CoreSimulator et DeviceSupport, mais laissez Archives et le dossier UserData, qui contient vos raccourcis clavier et vos thèmes, sauf si vous voulez les perdre.

Supprimer DerivedData cassera-t-il mes projets ?

Non. Votre code source et les réglages de projet n’y sont pas. La prochaine compilation est plus lente, le temps que Xcode reconstruise et réindexe.

Peut-on supprimer sans risque les runtimes de simulateurs ?

Oui. Ce sont des téléchargements : Xcode les récupère de nouveau quand un projet en a besoin. Supprimer un appareil simulé efface les données d’apps qu’il contient.