Что такое формат файла MOM?
Файл .mom - это скомпилированная модель Core Data, создаваемая Xcode во время сборки. Когда разработчик проектирует схему данных в редакторе исходного кода .xcdatamodeld, Xcode компилирует этот проект в бинарный файл .mom (Managed Object Model), который помещается внутрь пакета приложения и загружается во время выполнения с помощью NSManagedObjectModel.
Структурно .mom представляет собой бинарный список свойств Apple (property list), начинающийся с магических байтов bplist00. Он кодирует сущности, атрибуты, связи, шаблоны запросов выборки и конфигурации моделей, определяющие схему Core Data приложения. Он описывает структуру базы данных, а не сами данные.
Для версионных схем Xcode создает пакет .momd - директорию, содержащую по одному файлу .mom для каждой версии схемы, а также файл VersionInfo.plist, в котором записываются хэши версий для каждой сущности. Core Data сравнивает эти хэши при запуске, чтобы решить, возможна ли легкая миграция (lightweight migration) или требуется модель сопоставления для тяжелой миграции.
Разработчики никогда не редактируют .mom напрямую; рабочим артефактом является исходный файл .xcdatamodeld. Файл .mom - это исключительно продукт сборки; ручное изменение может повредить модель. Платформы Apple, использующие Core Data, включают macOS, iOS, iPadOS, tvOS и watchOS.
Более современный вариант, SwiftData (представленный в 2023 году), внутренне базируется на Core Data, но предоставляет API на основе макросов Swift, который полностью скрывает файлы .mom от разработчика. Для приложений, ориентированных на старые версии ОС, конвейер .xcdatamodeld → .mom остается актуальным.
Безопасность и защита
РИСК: LOWФайл .mom является пассивным артефактом сборки (списком свойств с определениями схемы) и не является исполняемым, поэтому он представляет минимальный риск. Он раскрывает схему данных приложения, но не пользовательские данные. Единственная мера предосторожности стандартна для неизвестных файлов: проверяйте их с помощью plutil, а не запускайте что-либо. Избегайте сайтов для загрузки «MOM file opener» - нужные инструменты (Xcode, plutil) предоставляются Apple бесплатно.
Детали формата
в двух словахПрограммы, открывающие файлы MOM
plutil -p file.mom в Terminal или любой просмотрщик bplist), чтобы изучить его сериализованное содержимое. plutil -p path/to/Model.mom, чтобы вывести скомпилированную модель в виде читаемого текста. Технические подробности
глубокая спецификация| Тип файла | Скомпилированный бинарный список свойств Apple (bplist) |
| Магические байты | bplist00 (62 70 6C 69 73 74 30 30) по смещению 0 |
| Разработчик | Apple Inc. |
| Кодировка | Бинарная (сериализация Apple bplist) |
| Типичный размер файла | От нескольких КБ до нескольких сотен КБ (описание схемы, а не данные приложения) |
| Содержимое | Сериализованный NSManagedObjectModel - сущности, атрибуты, связи, шаблоны запросов выборки и конфигурации |
| Артефакт сборки | Компилируется Xcode из исходника .xcdatamodeld; не предназначен для ручного редактирования |
| Версионный пакет | Директория .momd, содержащая по одному .mom на версию схемы плюс VersionInfo.plist с хэшами версий сущностей |
| Оптимизированный вариант | .omo (optimized managed object model) - генерируется Xcode для более быстрой загрузки во время выполнения |
| Поддержка миграции | Хэши версий сущностей в VersionInfo.plist управляют легкой и тяжелой миграцией Core Data |
| Загрузка в рантайме | Загружается через API NSManagedObjectModel; управляет NSPersistentStoreCoordinator и NSManagedObjectContext |
| Связанные платформы | macOS, iOS, iPadOS, tvOS, watchOS |
| Современная альтернатива | SwiftData (2023) базируется на Core Data, но скрывает файлы .mom за API на основе макросов Swift |
| Выпущен | Core Data, introduced with Mac OS X 10.4 Tiger (2005); built on the earlier Enterprise Objects Framework |
| Последняя версия | Tracks the current Xcode / Core Data tooling (versioned models compile to .momd directories) |
| Спецификация | developer.apple.com |
Конвертации MOM
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах MOM.
Часто задаваемые вопросы
Что такое файл .mom на моем Mac?
Как открыть файл .mom?
plutil -p file.mom в Terminal.