Ответ 1
В настоящий момент нет открытого API 1 для приложения, которое динамически (un) регистрирует типы документов со службами запуска во время выполнения.
Open Emu сталкивается с этой проблемой. Пользователи могут выборочно загружать/устанавливать эмуляторы, которые являются пакетами, чьи файлы Info.plist определяют типы документов. При установке эмулятора типы, определенные в комплекте, должны быть частью типов, определенных в приложении Info.plist. Open Emu перезаписывает приложение Info.plist для этого - см. - updateInfoPlist в OEGameDocumentController.
Обратите внимание, что перезапись пакета Info.plist является нарушением политики магазинов Mac App Store.
У нас есть зарегистрированные радары, требующие регистрации типов документов. Я предлагаю вам добавить еще один файл, который должен быть закрыт как дубликат # 2526726. Даже если его дубликат, его важно записать его в любом случае, чтобы Apple оценила количество людей, которым нужна эта функция.
1 Это может быть возможно через SPI. Когда я изучал это, я наткнулся на _LSRegisterItemFromItemInfo()
в Launch Services.