# Peut-on supprimer sans risque DerivedData, les anciens simulateurs et iOS DeviceSupport d’Xcode ?

> Ce que contient chaque dossier Xcode de ~/Library/Developer, ce qu’Xcode recrée, pourquoi ménager les Archives, et les commandes simctl des simulateurs.

- URL: https://moreroom.app/fr/learn/xcode-deriveddata-simulators-devicesupport
- Published: 2026-10-17
- Updated: 2026-10-17
- Publisher: MoreRoom (Yando Pte. Ltd.) — https://moreroom.app

## TL;DR

- DerivedData se supprime sans risque : Xcode le reconstruit à la compilation suivante, au prix d’un build plus lent et d’une nouvelle indexation.
- Les dossiers iOS DeviceSupport se suppriment sans risque : Xcode recopie les symboles la prochaine fois que vous branchez un appareil sous cette version.
- Ne supprimez pas les Archives d’Xcode à l’aveugle. Elles contiennent les fichiers dSYM nécessaires pour symboliser les rapports de plantage des versions publiées.
- Supprimez les simulateurs avec xcrun simctl delete unavailable et les runtimes avec xcrun simctl runtime delete, pas en effaçant des dossiers à la main.
- Un runtime de simulateur pèse en général 7 à 10 Go : retirer les versions d’iOS que vous ne testez plus est souvent le gain le plus important.

Pour l’essentiel, oui. **DerivedData, iOS DeviceSupport, les clones d’appareils de test, les simulateurs des aperçus et les caches d’Xcode se suppriment sans risque** : Xcode les recrée quand il en a besoin. **Les simulateurs et leurs runtimes** peuvent aussi être retirés, mais avec l’outil `simctl` d’Apple plutôt que dans le Finder. Le seul dossier à manier avec précaution est **Archives**, car il contient les symboles de débogage des apps que vous avez publiées.

Sur un Mac qui sert au développement iOS, ces dossiers atteignent couramment plusieurs dizaines de gigaoctets. Voici ce que contient chacun d’eux et la façon la plus propre de les supprimer. L’interface d’Xcode n’existant qu’en anglais, les noms de menus sont donnés tels quels.

## Où Xcode range ses données

Presque tout se trouve dans `~/Library/Developer`, dans votre dossier de départ. Les runtimes de simulateur font exception : ce sont des images disque système gérées par macOS.

| Dossier | Chemin | Suppression sans risque ? | Revient ? |
|---|---|---|---|
| DerivedData | `~/Library/Developer/Xcode/DerivedData` | Oui | Oui, au build suivant |
| Archives | `~/Library/Developer/Xcode/Archives` | À vérifier | Non |
| iOS DeviceSupport | `~/Library/Developer/Xcode/iOS DeviceSupport` | Oui | Oui, quand l’appareil est branché |
| Appareils simulés | `~/Library/Developer/CoreSimulator/Devices` | Via `simctl` | À recréer dans Xcode |
| Runtimes de simulateur | `/Library/Developer/CoreSimulator/Volumes` | Via `simctl` | À retélécharger |
| Clones d’appareils de test | `~/Library/Developer/XCTestDevices` | Oui | Oui, lors des tests en parallèle |
| Aperçus SwiftUI | `~/Library/Developer/Xcode/UserData/Previews` | Oui | Oui, à l’affichage des aperçus |
| Caches du simulateur | `~/Library/Developer/CoreSimulator/Caches` | Oui | Oui |
| Caches d’Xcode | `~/Library/Caches/com.apple.dt.Xcode` | Oui | Oui |

La même logique s’applique aux dossiers voisins `watchOS DeviceSupport`, `tvOS DeviceSupport`, `visionOS DeviceSupport` et `macOS DeviceSupport`.

![Carte des dossiers de stockage d’Xcode dans ~/Library/Developer, avec les étiquettes « Sans risque » et « À vérifier »](https://moreroom.app/learn/img/xcode-deriveddata-simulators-devicesupport-map.svg)

## DerivedData : sans risque, Xcode le reconstruit

[DerivedData](https://moreroom.app/glossary#derived-data) contient les produits de compilation intermédiaires, l’index du code source, les journaux de build et les caches de modules, avec un sous-dossier par projet. Le supprimer ne touche jamais à votre code. Le prix à payer, c’est du temps : le build suivant de chaque projet repart de zéro et Xcode réindexe le code avant que la complétion soit de nouveau pleinement disponible.

Quittez d’abord Xcode, puis placez le contenu dans la corbeille :

```sh
open ~/Library/Developer/Xcode/DerivedData
```

Pour nettoyer un seul projet, supprimez uniquement son sous-dossier (nommé d’après le projet, suivi d’un suffixe aléatoire). **Product › Clean Build Folder** dans Xcode supprime les produits de compilation mais laisse en général l’index en place : on récupère donc moins d’espace. Vous pouvez vérifier ou modifier l’emplacement dans **Xcode › Settings › Locations**.

## Archives : gardez ce que vous avez publié

Chaque `.xcarchive` est une version signée créée avec **Product › Archive**, et elle contient les fichiers dSYM de l’app. Xcode s’en sert pour [ajouter les noms de symboles aux rapports de plantage](https://developer.apple.com/documentation/xcode/adding-identifiable-symbol-names-to-a-crash-report) : sans le dSYM correspondant, un plantage de cette version n’affiche que des adresses mémoire au lieu des noms de fonctions. Les outils tiers de suivi des plantages ont besoin des mêmes fichiers.

Passez donc les archives en revue plutôt que de vider le dossier. Dans **Window › Organizer › Archives**, supprimez les versions que plus aucun utilisateur ne lance, comme d’anciennes versions de test internes. Pour les versions encore sur l’App Store ou dans TestFlight, gardez l’archive, ou copiez les paquets `.xcarchive` sur un disque externe avant de les retirer de votre Mac.

## iOS DeviceSupport : sans risque, recopié au besoin

Quand vous branchez un iPhone, un iPad, une Apple Watch, une Apple TV ou un Vision Pro pour le développement, Xcode copie les symboles système de cet appareil afin de pouvoir déboguer et symboliser sur votre Mac. Les versions récentes d’Xcode nomment chaque dossier d’après le modèle, la version du système et le build, par exemple `iPhone15,5 27.0.1 (24A446)`, et un seul dossier pèse souvent plusieurs gigaoctets.

Chaque mise à jour d’iOS sur chaque appareil que vous déboguez ajoute un nouveau dossier, et Xcode ne supprime jamais les anciens. Les dossiers des versions que vous n’utilisez plus peuvent aller à la corbeille sans risque. Si vous en supprimez un dont vous avez encore besoin, Xcode le recopie la prochaine fois que vous branchez l’appareil, ce qui prend quelques minutes.

## Simulateurs : appareils et runtimes sont deux choses différentes

Un **runtime** de simulateur est une image système complète pour une version donnée, comme iOS 27.1, qui pèse en général 7 à 10 Go. Un **appareil** simulé est une petite configuration accompagnée de ses propres données : apps installées, photos et réglages. Plusieurs appareils peuvent partager un même runtime : supprimer un appareil libère ses données, supprimer un runtime libère la grosse image.

![Schéma montrant un runtime de simulateur partagé par plusieurs appareils simulés, et la commande simctl qui supprime chacun](https://moreroom.app/learn/img/xcode-deriveddata-simulators-devicesupport-simulators.svg)

### Supprimer des appareils simulés

Listez les appareils et supprimez ceux qui ne fonctionnent plus avec les runtimes installés :

```sh
xcrun simctl list devices
xcrun simctl delete unavailable
```

`delete unavailable` supprime les appareils que la version actuelle d’Xcode ne prend plus en charge, en général des restes d’anciens runtimes. Pour supprimer un appareil précis, passez son UDID tiré de la liste : `xcrun simctl delete <UDID>`. Vous pouvez aussi le faire dans **Window › Devices and Simulators**. Évitez `xcrun simctl delete all`, sauf si vous voulez vraiment supprimer tous les simulateurs et leurs données. La suppression d’un appareil est définitive ; vous pouvez en recréer un à tout moment dans Xcode.

### Supprimer des runtimes de simulateur

```sh
xcrun simctl runtime list
xcrun simctl runtime delete <identifier>
```

`runtime list` affiche chaque image installée avec sa version, son identifiant et son état, ainsi que la taille totale. `runtime delete` prend l’identifiant (l’UUID affiché sur chaque ligne), puis démonte et supprime l’image. Depuis Xcode 27, `delete` accepte aussi `--dry-run` pour un aperçu, `--notUsedSinceDays <days>`, `--unusable` et `--outdated`. Les versions plus anciennes d’Xcode proposent moins d’options : exécutez `xcrun simctl runtime` pour voir celles que la vôtre accepte.

Dans Xcode, la même opération se fait dans **Xcode › Settings › Components** (**Platforms** dans Xcode 15) : sélectionnez un runtime et supprimez-le. Le guide d’Apple sur le [téléchargement et l’installation de composants Xcode supplémentaires](https://developer.apple.com/documentation/xcode/downloading-and-installing-additional-xcode-components) explique comment en récupérer un, y compris avec `xcodebuild -downloadPlatform iOS` dans Terminal.

Ne supprimez pas à la main les fichiers de runtime dans `/Library/Developer/CoreSimulator/Volumes` ou `/System/Library/AssetsV2`. Les versions récentes d’Xcode stockent les runtimes comme des ressources gérées par le système, et supprimer directement des fichiers peut laisser un runtime enregistré mais inutilisable.

### Clones de test, aperçus et caches du simulateur

- **XCTestDevices** : des clones créés par Xcode pour les tests en parallèle. Ils peuvent aller à la corbeille sans risque quand aucun test n’est en cours.
- **Aperçus SwiftUI** : Xcode exécute les aperçus dans leur propre ensemble de simulateurs. `xcrun simctl --set previews delete all` les supprime ; Xcode les recrée au prochain aperçu.
- **Caches et journaux de CoreSimulator** : `~/Library/Developer/CoreSimulator/Caches` et `~/Library/Logs/CoreSimulator` peuvent être vidés sans risque, l’app Simulator fermée.

## Anciennes versions d’Xcode, toolchains et téléchargements

Chaque copie d’Xcode dans `/Applications` est une grosse app, et les versions bêta ou anciennes gardées pour un projet historique s’additionnent vite. Avant d’en supprimer une, vérifiez quelle version d’Xcode utilisent les outils en ligne de commande :

```sh
xcode-select -p
```

Gardez la copie vers laquelle pointe ce chemin, ainsi que toute version dont un job de CI ou un ancien projet a encore besoin. Regardez aussi dans `~/Downloads` s’il reste des fichiers `.xip` : une fois Xcode installé, l’archive ne sert plus. Les toolchains Swift supplémentaires de swift.org se trouvent dans `~/Library/Developer/Toolchains` ; gardez celles que vos projets sélectionnent.

`~/Library/Caches/com.apple.dt.Xcode` contient le cache propre à Xcode, reconstruit à la demande. Si vous utilisez Xcode depuis de nombreuses années, vous trouverez peut-être aussi dans `~/Library/Developer/Shared/Documentation/DocSets` des jeux de documentation hors ligne téléchargés par de très anciennes versions d’Xcode ; les versions actuelles ne s’en servent plus.

## Un ordre raisonnable

1. Quittez Xcode et Simulator.
2. Supprimez DerivedData, XCTestDevices et les simulateurs des aperçus. C’est sans risque.
3. Exécutez `xcrun simctl delete unavailable`.
4. Retirez les dossiers DeviceSupport et les runtimes de simulateur des versions que vous ne ciblez plus.
5. Passez en revue les Archives et les anciennes copies d’Xcode en dernier, posément.

Videz ensuite la corbeille pour récupérer l’espace. Les dossiers sont les mêmes sous macOS 27 Golden Gate, 26 Tahoe, 15 Sequoia et 14 Sonoma ; les options de `simctl` disponibles dépendent de votre version d’Xcode.

## Comment MoreRoom vous aide

La version gratuite de MoreRoom analyse `~/Library/Developer` et reconnaît chacun de ces dossiers, avec un badge « Sans risque » ou « À vérifier » et l’indication de s’il reviendra. DerivedData, DeviceSupport, les clones de test et les caches partent à la corbeille un élément à la fois, avec Annuler. Pour les appareils et runtimes de simulateur, MoreRoom exécute les commandes d’Apple `xcrun simctl delete` et `xcrun simctl runtime delete` ; elles sont définitives et signalées comme telles. Les Archives sont marquées à conserver.

MoreRoom Pro ajoute le Collecteur, pour nettoyer plusieurs éléments d’un coup, le mode objectif, qui choisit la sélection la plus sûre pour l’espace dont vous avez besoin, et l’hibernation de projets pour les projets inactifs. Déplacer les archives vers un disque externe depuis MoreRoom arrive bientôt ; en attendant, copiez-les vous-même.

## FAQ

### Supprimer DerivedData peut-il casser mon projet Xcode ?

Non. DerivedData ne contient que des produits de compilation, des index et des journaux générés par Xcode. Votre code source et les réglages du projet se trouvent dans le dossier du projet. Le build et l’indexation suivants prennent simplement plus de temps, le temps qu’Xcode recrée ces données.

### Peut-on supprimer les Archives d’Xcode ?

Seulement pour les versions que plus personne n’utilise. Chaque archive contient les fichiers dSYM qui transforment les adresses d’un rapport de plantage en noms de fonctions. Gardez les archives de chaque version encore entre les mains des utilisateurs, ou copiez-les d’abord sur un autre disque.

### Pourquoi iOS DeviceSupport revient-il sans cesse ?

Xcode copie les symboles de débogage de chaque appareil que vous branchez pour le développement, une fois par modèle et par version du système. Si vous supprimez le dossier d’un appareil que vous utilisez encore, Xcode le recopie la prochaine fois que vous le branchez.

### Puis-je simplement supprimer le dossier CoreSimulator ?

Mieux vaut éviter. Les appareils et runtimes de simulateur sont enregistrés auprès du service CoreSimulator, et les runtimes sont des images disque système montées. Utilisez xcrun simctl delete et xcrun simctl runtime delete, ou les réglages d’Xcode, pour que tout reste cohérent.

### Comment récupérer un runtime de simulateur supprimé ?

Téléchargez-le de nouveau depuis Xcode › Settings › Components, ou exécutez xcodebuild -downloadPlatform iOS dans Terminal. Vous pouvez ensuite recréer les appareils simulés dans Window › Devices and Simulators.
