Retour au blog

Dans un simulateur Xcode de 9,8 Go, les apps prenaient 350 Mo

J'ai mesuré le dossier de données de dix simulateurs iOS. Les conteneurs d'apps prenaient de 0,07 à 0,34 Go. Les instantanés des posters de l'écran verrouillé, les journaux, les ressources Siri et les caches de symboles prenaient le reste.

Publié 26 octobre 2026 Auteur Vladimir Chemeris Temps de lecture 6 min de lecture
XcodeSimulatorDeveloper Cleanup

Mon simulateur de QA prenait 9,8 Go, et ce n’était pas à cause de mon app. Ses conteneurs d’apps prenaient 0,34 Go. iOS remplissait le reste : un cache d’instantanés des posters de l’écran verrouillé, le journal système, des ressources Siri et linguistiques téléchargées, et un cache de symboles. J’ai mesuré dix simulateurs sur mon Mac, et la part des apps restait faible sur chacun d’eux.

Règle principale : mesure un simulateur avant de l'effacer, puis efface-le ou supprime-le avec xcrun simctl. Ne supprime pas à la main des dossiers dans son dossier de données.

Réponse rapide

  1. Trouve les simulateurs lourds : du -sh ~/Library/Developer/CoreSimulator/Devices/* | sort -h | tail.
  2. Associe chaque UDID à un nom avec xcrun simctl list devices.
  3. Regarde à l'intérieur de l'un d'eux : du -h -d 4 ~/Library/Developer/CoreSimulator/Devices/<UDID>/data | sort -h | tail -20.
  4. Si tu n'as plus besoin de son état, éteins-le et efface-le : xcrun simctl shutdown <UDID>, puis xcrun simctl erase <UDID>.
  5. Supprime les simulateurs que tu n'utilises jamais avec xcrun simctl delete <UDID>.

Où sont passés les 9,8 Go d’un simulateur

Lors de ma première mesure, un simulateur de QA occupait la moitié du dossier Devices. Un lecteur m’a demandé ce qu’il contenait, alors j’ai ouvert son dossier data. L’appareil est un simulateur iPhone 18 Pro sous iOS 27.0, et il était démarré pendant la mesure.

Diagramme en barres du dossier data de 9,81 Go du simulateur de QA : PRBPosterExtensionDataStore 2,88 Go, var/db/diagnostics 2,07 Go, private/var/MobileAsset 2,03 Go, coresymbolicationd 1,13 Go, var/db/uuidtext 0,49 Go, tout le reste 0,87 Go, et Containers avec toutes les apps 0,34 Go
Le dossier de données du simulateur de QA. L'ensemble des conteneurs d'apps forme la barre la plus courte.
Dossier dans dataTaille
Library/Application Support/PRBPosterExtensionDataStore2,88 Go
var/db/diagnostics2,07 Go
private/var/MobileAsset2,03 Go
Library/Caches/com.apple.coresymbolicationd1,13 Go
var/db/uuidtext0,49 Go
Containers, tous les conteneurs d’apps0,34 Go
Dossier data entier9,81 Go

Containers contient les apps installées, leurs conteneurs de données, les groupes d’apps et les données des extensions. Tout ce que mon app et ses tests ont écrit tient dans ces 0,34 Go.

Dix simulateurs côte à côte

Mon Mac compte 53 simulateurs. Quarante-trois d’entre eux occupent environ 20 Mo chacun, la taille d’un appareil qui n’a jamais fait tourner d’app. Les dix autres sont ceux que j’utilise. Les tailles sont en Go.

Diagramme en barres empilées des dossiers data de dix simulateurs, de 0,63 à 9,81 Go. Les conteneurs d'apps prennent de 0,07 à 0,34 Go sur chaque appareil. Le stockage des posters n'est gros que sur les deux appareils iOS 27.0 démarrés. Le journal système et MobileAsset prennent l'essentiel du reste.
Dix simulateurs, répartis entre conteneurs d'apps, stockage des posters, journal système (diagnostics plus uuidtext), MobileAsset et tout le reste. Un point marque les appareils qui étaient démarrés.
SimulateuriOSÉtatdataStockage des postersdiagnosticsMobileAssetContainers
Appareil de QA, iPhone 18 Pro27.0Démarré9,812,882,072,030,34
iPad Pro 13-inch (M5)27.0Démarré4,591,650,211,700,16
iPhone 1618.6Éteint3,140,031,220,790,24
iPhone SE (3rd generation)26.5Démarré2,620,040,361,000,31
iPhone 11 Pro26.5Éteint2,360,000,151,210,12
iPhone 16, build dogfood18.6Éteint2,030,030,360,900,11
iPhone 16 Pro Max18.6Démarré1,580,050,050,900,15
iPhone 16 Pro Max27.0Éteint1,530,170,020,170,16
iPad Pro 11-inch (M4)18.6Éteint1,470,030,090,780,07
iPhone SE (3rd generation), deuxième app18.6Éteint0,630,030,010,210,08

Trois tendances ressortent :

  • Containers n’a jamais dépassé 0,34 Go. Les apps que je teste ne sont qu’une erreur d’arrondi à côté des données système.
  • MobileAsset apparaît sur chaque simulateur. Il allait de 0,17 à 2,03 Go.
  • Le stockage des posters n’a grossi que sur les deux appareils iOS 27.0 démarrés. Sous iOS 18.6 et 26.5, il restait sous 0,05 Go. Deux appareils ne suffisent pas pour accuser iOS 27.0, mais l’écart est grand.

Ce que contient chaque dossier

PRBPosterExtensionDataStore : instantanés des posters de l’écran verrouillé

Le nom du dossier, tout comme GalleryCache et SnapshotCache.cachedb, est une chaîne du framework privé PosterBoard.framework du runtime de simulateur iOS 27.0. Le runtime fournit aussi une app système, PosterBoard.app, avec l’identifiant com.apple.PosterBoard. Dans le dossier, des sous-dossiers portent les identifiants des extensions de posters d’Apple : WeatherPoster, EmojiPoster, PhotosPosterProvider, KaleidoscopePoster et d’autres. Le guide d’Apple pour créer un écran verrouillé personnalisé cite Météo, Astronomie et les photos parmi les fonds d’écran de l’écran verrouillé.

Sur mon appareil de QA, le dossier contenait 6 776 fichiers. Parmi eux, 2 911 étaient des fichiers d’instantanés .atx d’environ 1 Mo chacun, nommés Composite.atx, Background.atx, Foreground.atx et Floating.atx, et ils totalisaient 2,9 Go. Sur l’iPad, les 939 fichiers d’instantanés avaient tous pour date de modification le jour de la mesure, donc l’appareil écrit ce cache pendant qu’il tourne. Je ne sais pas ce qui le fait grossir, et Apple ne le documente pas.

var/db/diagnostics et var/db/uuidtext : le journal système

Ces dossiers contiennent les données du système de journalisation unifiée. man log décrit un stockage de journaux comme une base de données de journalisation système semblable à celle de /var/db/diagnostics, avec à côté un répertoire uuidtext semblable à /var/db/uuidtext. Chaque simulateur garde sa propre copie dans son dossier de données. Sur mes appareils, elle allait de 0,01 à 2,07 Go, plus 0,49 Go de uuidtext sur l’appareil de QA.

private/var/MobileAsset : les ressources que télécharge iOS

Sur l’appareil de QA, AssetsV2 contenait des ensembles de ressources nommés d’après des fonctions de Siri et de langue :

Ensemble de ressourcesTaille
com_apple_MobileAsset_UAF_Siri_Understanding805 Mo
com_apple_MobileAsset_UAF_LinguisticData409 Mo
com_apple_MobileAsset_UAF_Siri_TextToSpeech289 Mo
com_apple_MobileAsset_UAF_SearchQueryUnderstanding106 Mo
com_apple_MobileAsset_TTSAXResourceModelAssets96 Mo

Le simulateur les télécharge lui-même. Un développeur a signalé sur les Apple Developer Forums le même dossier qui grossissait de plusieurs dizaines de gigaoctets sous iOS 26.5, téléchargés par nsurlsessiond. Le fil n’a reçu aucune réponse.

com.apple.coresymbolicationd : cache de symboles

La page de manuel de coresymbolicationd le décrit comme un « démon qui gère le cache des symboles de débogage » des bibliothèques de l’OS. Il prenait 1,13 Go sur l’appareil de QA et presque rien sur les autres.

Ce que je fais d’un simulateur lourd

Je n’ouvre pas ces dossiers pour y supprimer des fichiers. Apple ne les documente pas, et je ne peux pas te dire ce que provoque sur un simulateur un stockage des posters ou un stockage de journaux à moitié supprimé. Les outils pris en charge agissent sur l’appareil entier :

  • xcrun simctl erase <UDID> efface le contenu et les réglages et garde l’appareil. Éteins d’abord l’appareil.
  • xcrun simctl delete <UDID> supprime l’appareil.
  • xcrun simctl delete unavailable supprime les appareils que le SDK Xcode actuel ne prend plus en charge.

Effacer un appareil retire les apps installées, leurs données et tous les dossiers système ci-dessus, donc tu réinstalles l’app et tu te reconnectes. Garde les appareils dont l’état te sert encore pour un bug ou un test. Le stockage des posters, le journal et les ressources peuvent regrossir dès que l’appareil tourne à nouveau, donc un effacement fait gagner de la place mais ne règle pas la croissance.

Écran Developer caches de StorageRadar : Xcode DerivedData à 41,8 Go sous Safe to clean, avec une note indiquant que le prochain build le reconstruit, et CoreSimulator Data à 34,6 Go sous Review before cleaning
Dans Dev Cleanup de StorageRadar, CoreSimulator Data se trouve sous Review before cleaning, à l'écart de DerivedData, que le build suivant recrée. Capture d'écran issue d'une analyse antérieure, donc les tailles diffèrent de celles de cet article.

Comment j’ai mesuré

J’ai mesuré le 26 octobre 2026 sur un Mac mini M4, sous macOS 27.0.1 avec Xcode 27.1. Toutes les commandes se contentent de lire des données :

xcrun simctl list devices --json
du -sk ~/Library/Developer/CoreSimulator/Devices/<UDID>/data
du -k -d 4 ~/Library/Developer/CoreSimulator/Devices/<UDID>/data | sort -rn | head -20
find ~/Library/Developer/CoreSimulator/Devices/<UDID>/data/Library/Application\ Support/PRBPosterExtensionDataStore -name '*.atx' | wc -l

Les tailles viennent de du, divisées deux fois par 1024, soit les mêmes unités binaires que celles qu’affiche du -h. Les dossiers de chaque ligne ne se recoupent pas, sauf Containers, qui inclut ses sous-dossiers. Les simulateurs démarrés continuent d’écrire, donc leurs chiffres bougent d’heure en heure.

En résumé

Un gros simulateur contient en général des données d’iOS, pas ton app. Sur mon Mac, les conteneurs d’apps prenaient de 0,07 à 0,34 Go par appareil, alors que les instantanés des posters, les journaux, les ressources téléchargées et les caches de symboles prenaient jusqu’à 9,5 Go. Mesure le dossier de données, garde les appareils dont l’état te sert, et efface ou supprime le reste avec simctl.

À propos de l'auteur

Vladimir Chemeris

Fondateur, StorageRadar

Vladimir Chemeris développe StorageRadar, une app macOS d'analyse de stockage axée sur la confidentialité, le nettoyage avec vérification préalable, le stockage développeur et la comparaison avant/après.

Questions fréquemment posées

Pourquoi mon simulateur iOS est-il si gros alors que mon app est petite ?

Ton app n'en représente qu'une petite partie. Sur mon simulateur de QA, les conteneurs d'apps prenaient 0,34 Go sur 9,8 Go. Le reste venait d'iOS lui-même : un cache d'instantanés des posters de l'écran verrouillé, le journal système, des ressources Siri et linguistiques téléchargées, et un cache de symboles.

Qu'est-ce que PRBPosterExtensionDataStore dans le simulateur iOS ?

Un dossier présent dans le dossier de données de chaque simulateur, qui appartient à PosterBoard, le composant d'iOS derrière les posters de l'écran verrouillé. Le nom est une chaîne du framework privé PosterBoard.framework du runtime iOS 27.0. Sur mon Mac, il contenait 2,9 Go sur un simulateur, presque entièrement des fichiers d'instantanés .atx.

Puis-je supprimer à la main des dossiers dans le dossier de données d'un simulateur ?

Moi, je ne le fais pas. Apple ne documente pas ces dossiers, donc personne ne peut te dire ce qui casse. Utilise xcrun simctl erase pour effacer le contenu et les réglages d'un simulateur, ou xcrun simctl delete pour supprimer l'appareil.

Effacer un simulateur supprime-t-il son runtime iOS ?

Non. Erase vide le dossier de données de l'appareil et garde l'appareil et son runtime. Les runtimes sont des images disque séparées, que tu supprimes avec xcrun simctl runtime delete.

Quel dossier correspond à quel simulateur ?

Les dossiers de ~/Library/Developer/CoreSimulator/Devices portent le nom d'un UDID. Lance xcrun simctl list devices pour associer chaque UDID à un nom d'appareil, un runtime et un état.

Sources et références

Vois chaque simulateur à côté du reste de ton stockage de développement.

Dans StorageRadar, Disk Map descend dans chaque dossier de simulateur. Dev Cleanup range CoreSimulator sous Review before cleaning et lance un Dry Run avant toute suppression.