Wat is het MOM-bestandsformaat?
Een .mom-bestand is een gecompileerd Core Data-model geproduceerd door Xcode tijdens het bouwen. Wanneer een ontwikkelaar een dataschema ontwerpt in de .xcdatamodeld bron-editor, compileert Xcode dat ontwerp naar een binair .mom (Managed Object Model) bestand dat wordt meegeleverd in de applicatiebundel en tijdens runtime wordt geladen door NSManagedObjectModel.
Structureel gezien is een .mom een Apple binaire property list die begint met de magic bytes bplist00, waarin entiteiten, attributen, relaties, sjablonen voor ophaalverzoeken en modelconfiguraties zijn gecodeerd die het Core Data-schema van de app definiëren. Het beschrijft de databasestructuur - niet de gegevens zelf.
Voor versieschema's bouwt Xcode een .momd-bundel - een map die één .mom-bestand per schemaversie bevat plus een VersionInfo.plist die versie-hashes per entiteit registreert. Core Data vergelijkt die hashes bij het opstarten om te beslissen of een lichtgewicht migratie mogelijk is of dat een zwaargewicht migratie-mappingmodel nodig is.
Ontwikkelaars bewerken een .mom nooit rechtstreeks; het .xcdatamodeld-bronbestand is het artefact om mee te werken. De .mom is strikt een build-product - handmatige wijziging zou het model beschadigen. Apple-platforms die Core Data gebruiken zijn onder meer macOS, iOS, iPadOS, tvOS en watchOS.
Een nieuwere optie, SwiftData (geïntroduceerd in 2023), bouwt intern voort op Core Data, maar biedt een op Swift-macro's gebaseerde API die .mom-bestanden volledig verbergt voor de ontwikkelaar. Voor apps die zich nog richten op oudere OS-versies, blijft de .xcdatamodeld → .mom pijplijn actueel.
Beveiliging & veiligheid
RISICO: LOWEen .mom is een passief build-artefact (een property list van schemadefinities) en is niet uitvoerbaar, dus het vormt weinig risico. Het onthult het dataschema van een app, maar geen gebruikersgegevens. De enige voorzorgsmaatregel is de gebruikelijke voor onbekende bestanden: inspecteer met plutil in plaats van iets uit te voeren. Vermijd „MOM file opener”-downloadsites - de juiste tools (Xcode, plutil) zijn gratis verkrijgbaar bij Apple.
Formaatdetails
in een notendopProgramma's die MOM-bestanden openen
plutil -p file.mom in Terminal, of een bplist-viewer) om de geserialiseerde inhoud te inspecteren. plutil -p path/to/Model.mom uit om het gecompileerde model als leesbare tekst af te drukken. Technische details
diepe specificaties| Bestandstype | Gecompileerde Apple binaire property list (bplist) |
| Magic bytes | bplist00 (62 70 6C 69 73 74 30 30) op offset 0 |
| Ontwikkelaar | Apple Inc. |
| Codering | Binair (Apple bplist-serialisatie) |
| Typische bestandsgrootte | Een paar KB tot een paar honderd KB (schemabeschrijving, geen app-gegevens) |
| Inhoud | Geserialiseerde NSManagedObjectModel - entiteiten, attributen, relaties, sjablonen voor ophaalverzoeken en configuraties |
| Build-artefact | Gecompileerd door Xcode vanuit een .xcdatamodeld-bron; niet bedoeld voor handmatige bewerking |
| Versiebundel | .momd-map met één .mom per schemaversie plus VersionInfo.plist met versie-hashes per entiteit |
| Geoptimaliseerde variant | .omo (optimized managed object model) - gegenereerd door Xcode voor sneller laden tijdens runtime |
| Migratie-ondersteuning | Versie-hashes per entiteit in VersionInfo.plist sturen lichtgewicht en zwaargewicht Core Data-migratie aan |
| Runtime laden | Geladen via NSManagedObjectModel API; stuurt NSPersistentStoreCoordinator en NSManagedObjectContext aan |
| Bijbehorende platforms | macOS, iOS, iPadOS, tvOS, watchOS |
| Modern alternatief | SwiftData (2023) bouwt voort op Core Data maar verbergt .mom-bestanden achter een op Swift-macro's gebaseerde API |
| Uitgebracht | Core Data, introduced with Mac OS X 10.4 Tiger (2005); built on the earlier Enterprise Objects Framework |
| Laatste versie | Tracks the current Xcode / Core Data tooling (versioned models compile to .momd directories) |
| Specificatie | developer.apple.com |
MOM conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over MOM-bestanden.
Veelgestelde vragen
Wat is een .mom-bestand op mijn Mac?
Hoe open ik een .mom-bestand?
plutil -p file.mom uit in Terminal.