Che cos'è il formato di file MOM?
Un file .mom è un modello Core Data compilato prodotto da Xcode durante la fase di build. Quando uno sviluppatore progetta uno schema dati nell'editor sorgente .xcdatamodeld, Xcode compila quel progetto in un file binario .mom (Managed Object Model) che viene incluso nel pacchetto dell'applicazione e caricato a runtime da NSManagedObjectModel.
Strutturalmente, un .mom è una property list binaria Apple che inizia con i magic bytes bplist00, codificando entità, attributi, relazioni, modelli di richieste di recupero (fetch request templates) e configurazioni del modello che definiscono lo schema Core Data dell'app. Descrive la struttura del database, non i dati stessi.
Per gli schemi con versionamento, Xcode crea un bundle .momd: una directory contenente un file .mom per ogni versione dello schema più un file VersionInfo.plist che registra gli hash di versione per ogni entità. Core Data confronta questi hash all'avvio per decidere se è possibile una migrazione leggera (lightweight migration) o se è necessario un modello di mappatura per una migrazione pesante.
Gli sviluppatori non modificano mai direttamente un file .mom; il file sorgente .xcdatamodeld è l'artefatto su cui lavorare. Il .mom è rigorosamente un prodotto di build: modificarlo manualmente corromperebbe il modello. Le piattaforme Apple che utilizzano Core Data includono macOS, iOS, iPadOS, tvOS e watchOS.
Un'opzione più recente, SwiftData (introdotta nel 2023), si basa internamente su Core Data ma espone un'API basata su macro Swift che nasconde interamente i file .mom allo sviluppatore. Per le app che puntano ancora a versioni precedenti del sistema operativo, la pipeline .xcdatamodeld → .mom rimane quella attuale.
Sicurezza e incolumità
RISCHIO: LOWUn file .mom è un artefatto di build passivo (una property list di definizioni di schema) e non è eseguibile, quindi presenta rischi minimi. Espone lo schema dei dati di un'app ma nessun dato utente. L'unica cautela è quella consueta per i file sconosciuti: ispezionare con plutil invece di eseguire qualsiasi cosa. Evita i siti di download di «MOM file opener»: gli strumenti corretti (Xcode, plutil) sono forniti gratuitamente da Apple.
Dettagli del formato
in sintesiProgrammi che aprono file MOM
plutil -p file.mom nel Terminale o qualsiasi visualizzatore bplist) per ispezionarne il contenuto serializzato. plutil -p path/to/Model.mom per stampare il modello compilato come testo leggibile. Dettagli tecnici
specifiche approfondite| Tipo di file | Property list binaria Apple compilata (bplist) |
| Magic bytes | bplist00 (62 70 6C 69 73 74 30 30) all'offset 0 |
| Sviluppatore | Apple Inc. |
| Codifica | Binaria (serializzazione bplist Apple) |
| Dimensione tipica del file | Da pochi KB a poche centinaia di KB (descrizione dello schema, non dati dell'app) |
| Contenuto | NSManagedObjectModel serializzato: entità, attributi, relazioni, modelli di richieste di recupero e configurazioni |
| Artefatto di build | Compilato da Xcode a partire da un sorgente .xcdatamodeld; non destinato alla modifica manuale |
| Bundle con versionamento | Directory .momd contenente un .mom per versione dello schema più VersionInfo.plist con hash di versione per entità |
| Variante ottimizzata | .omo (optimized managed object model): generato da Xcode per un caricamento più rapido a runtime |
| Supporto alla migrazione | Gli hash di versione per entità in VersionInfo.plist guidano la migrazione Core Data leggera e pesante |
| Caricamento a runtime | Caricato tramite l'API NSManagedObjectModel; guida NSPersistentStoreCoordinator e NSManagedObjectContext |
| Piattaforme associate | macOS, iOS, iPadOS, tvOS, watchOS |
| Alternativa moderna | SwiftData (2023) si basa su Core Data ma nasconde i file .mom dietro un'API basata su macro Swift |
| Rilasciato | Core Data, introduced with Mac OS X 10.4 Tiger (2005); built on the earlier Enterprise Objects Framework |
| Ultima versione | Tracks the current Xcode / Core Data tooling (versioned models compile to .momd directories) |
| Specifica | developer.apple.com |
Conversioni MOM
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file MOM.
Domande frequenti
Cos'è un file .mom sul mio Mac?
Come si apre un file .mom?
plutil -p file.mom nel Terminale.