Qu'est-ce que le format de fichier MOM ?
Un fichier .mom est un modèle Core Data compilé produit par Xcode lors de la phase de construction (build). Lorsqu'un développeur conçoit un schéma de données dans l'éditeur source .xcdatamodeld, Xcode compile cette conception en un fichier binaire .mom (Managed Object Model) qui est inclus dans le paquet de l'application et chargé à l'exécution par NSManagedObjectModel.
Structurellement, un .mom est une liste de propriétés binaire Apple (Property List) commençant par les octets magiques bplist00, encodant les entités, les attributs, les relations, les modèles de requêtes de récupération (fetch requests) et les configurations de modèle qui définissent le schéma Core Data de l'application. Il décrit la structure de la base de données - et non les données elles-mêmes.
Pour les schémas versionnés, Xcode génère un paquet .momd - un répertoire contenant un fichier .mom par version de schéma ainsi qu'un fichier VersionInfo.plist qui enregistre les hachages de version par entité. Core Data compare ces hachages au lancement pour décider si une migration légère est possible ou si un modèle de mappage de migration lourde est nécessaire.
Les développeurs ne modifient jamais un .mom directement ; le fichier source .xcdatamodeld est l'artefact de travail. Le .mom est strictement un produit de compilation - le modifier manuellement corromprait le modèle. Les plateformes Apple utilisant Core Data incluent macOS, iOS, iPadOS, tvOS et watchOS.
Une option plus récente, SwiftData (introduite en 2023), s'appuie sur Core Data en interne mais expose une API basée sur des macros Swift qui masque entièrement les fichiers .mom pour le développeur. Pour les applications ciblant encore des versions plus anciennes du système d'exploitation, le pipeline .xcdatamodeld → .mom reste d'actualité.
Sécurité et sûreté
RISQUE : LOWUn fichier .mom est un artefact de compilation passif (une liste de propriétés de définitions de schéma) et n'est pas exécutable, il présente donc peu de risques. Il expose le schéma de données d'une application mais aucune donnée utilisateur. La seule précaution est la prudence habituelle pour les fichiers inconnus : inspectez avec plutil plutôt que d'exécuter quoi que ce soit. Évitez les sites de téléchargement de « MOM file opener » - les outils appropriés (Xcode, plutil) sont fournis gratuitement par Apple.
Détails du format
en brefProgrammes qui ouvrent les fichiers MOM
plutil -p file.mom dans le Terminal, ou n'importe quel visualiseur bplist) pour inspecter son contenu sérialisé. plutil -p path/to/Model.mom pour afficher le modèle compilé sous forme de texte lisible. Détails techniques
spécifications approfondies| Type de fichier | Liste de propriétés binaire Apple compilée (bplist) |
| Octets magiques | bplist00 (62 70 6C 69 73 74 30 30) à l'offset 0 |
| Développeur | Apple Inc. |
| Encodage | Binaire (sérialisation Apple bplist) |
| Taille typique du fichier | De quelques Ko à quelques centaines de Ko (description du schéma, pas les données de l'application) |
| Contenu | NSManagedObjectModel sérialisé - entités, attributs, relations, modèles de requêtes de récupération et configurations |
| Artefact de compilation | Compilé par Xcode à partir d'une source .xcdatamodeld ; non destiné à l'édition manuelle |
| Paquet versionné | Répertoire .momd contenant un .mom par version de schéma plus un VersionInfo.plist avec les hachages de version par entité |
| Variante optimisée | .omo (optimized managed object model) - généré par Xcode pour un chargement plus rapide à l'exécution |
| Support de migration | Les hachages de version par entité dans VersionInfo.plist pilotent les migrations Core Data légères et lourdes |
| Chargement à l'exécution | Chargé via l'API NSManagedObjectModel ; pilote NSPersistentStoreCoordinator et NSManagedObjectContext |
| Plateformes associées | macOS, iOS, iPadOS, tvOS, watchOS |
| Alternative moderne | SwiftData (2023) s'appuie sur Core Data mais masque les fichiers .mom derrière une API basée sur des macros Swift |
| Publié | Core Data, introduced with Mac OS X 10.4 Tiger (2005); built on the earlier Enterprise Objects Framework |
| Dernière version | Tracks the current Xcode / Core Data tooling (versioned models compile to .momd directories) |
| Spécification | developer.apple.com |
Conversions MOM
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers MOM.
Foire aux questions
Qu'est-ce qu'un fichier .mom sur mon Mac ?
Comment ouvrir un fichier .mom ?
plutil -p file.mom dans le Terminal.