Supprimer les anciens runtimes de simulateur iOS sur Mac
Les simulateurs iOS de Xcode peuvent silencieusement occuper des gigaoctets de stockage au fil du temps. Voici comment récupérer cet espace.
Le stockage Xcode se répartit entre runtimes, appareils simulés, DerivedData, DeviceSupport et Archives. Ces éléments sont proches dans le Finder, mais leur gestion et leur coût de récupération diffèrent. Mesurez avant de supprimer.
Faire d’abord l’inventaire du stockage Xcode
Apple recommande de gérer les plates-formes supplémentaires dans les réglages Components de Xcode. Après vérification des appareils indisponibles, exécutez :
xcrun simctl list runtimes
xcrun simctl list devices
| Type | Coût après suppression | À conserver si |
|---|---|---|
| Runtime | Nouveau téléchargement, appareils dépendants indisponibles | Plan de test ou reproduction nécessaire |
| Appareil virtuel | Apps, Trousseau, bases et état de test effacés | Un problème doit encore être reproduit |
| DerivedData | Reconstruction et réindexation | Build actuel en cours |
| DeviceSupport | Possible perte de débogage hors ligne pour un OS réel | Appareil ou crash encore suivi |
| Archives | Possible perte du dSYM correspondant au build livré | Des utilisateurs exécutent encore cette version |
Pourquoi les simulateurs iOS prennent-ils autant de place
Un runtime est une image système iOS, watchOS, tvOS ou visionOS téléchargée. Un appareil simulé est un appareil virtuel qui utilise l’un de ces runtimes. Plusieurs appareils peuvent partager la même image; ce ne sont pas deux caches équivalents.
Comment supprimer les simulateurs inutilisés via le Terminal
Commencez par lister runtimes et appareils en lecture seule.
Ces commandes ne désinstallent aucun runtime. Gérez les images téléchargées dans Xcode > Settings > Components. Ne supprimez pas directement les dossiers de /Library/Developer/CoreSimulator ou /System/Library/AssetsV2.
Le plus récent de chaque plate-forme active
Gardez le runtime le plus récent d’une plate-forme développée.
Une ancienne version nécessaire pour reproduire un bug
Gardez cette version si vos tests, la CI ou l’analyse d’un problème signalé en dépendent.
Supprimer séparément les appareils indisponibles
Après vérification, cette commande retire seulement les fiches dont le runtime manque. Elle ne désinstalle aucun runtime.
xcrun simctl delete unavailable
Effacer les caches des simulateurs et les données d'application
Pour réinitialiser l’état de test d’un appareil précis, lancez-le dans Simulator et choisissez Device > Erase All Content and Settings. Le runtime partagé reste en place, mais les apps, le Trousseau et les bases de cet appareil sont effacés.
Gérer séparément DeviceSupport, DerivedData et Archives
DerivedData est reproductible, mais une suppression totale oblige tous les projets à reconstruire et réindexer. DeviceSupport peut servir au débogage d’un appareil réel; les Archives et dSYM d’une version distribuée peuvent servir à analyser un crash futur. Mole liste les runtimes remplacés et retire la sélection via simctl runtime delete. Gérez appareils et archives dans Xcode.
Sélectionner DeviceSupport selon appareils et crashes
Une date ancienne ne suffit pas. Vérifiez quels appareils vous utilisez encore et quels crashes restent à analyser.
Garder les Archives des versions exécutées
Conservez l’archive d’une version encore utilisée, sauf si vous disposez déjà ailleurs d’une copie vérifiée du dSYM et du build.
Une séquence sûre et reproductible
Quittez Xcode, Simulator et les builds, puis mesurez les cinq catégories séparément. Retirez dans Xcode les anciens runtimes confirmés inutiles, vérifiez la liste des appareils, puis lancez xcrun simctl delete unavailable. Traitez DerivedData par ancien projet, DeviceSupport selon les appareils et crashes, et Archives dans Organizer selon les versions encore distribuées. Mesurez à nouveau et arrêtez dès que l’espace suffit.
La limite de Mole
Mole retire seulement les anciens runtimes qu’Apple déclare supprimables, jamais l’état des appareils ou les archives.
FAQ
La suppression d'un simulateur supprimera-t-elle le code de mon projet ?
Le code source du projet reste intact, mais les apps et l’état de test de l’appareil virtuel sont supprimés.
Est-il sûr de supprimer le dossier iOS DeviceSupport ?
Ne traitez pas tout DeviceSupport comme un cache. D’anciennes versions peuvent encore servir au débogage ou à la symbolication.
Mole trouve-t-il les anciens simulateurs ?
Mole liste les runtimes téléchargés qui ont été remplacés et supprime la sélection avec simctl. Il ne retire pas manuellement les autres dossiers CoreSimulator ; il vide seulement le cache système régénérable /Library/Developer/CoreSimulator/Caches, et uniquement quand aucun simulateur ne tourne.