Две части этого вызывают у меня подозрения:
<key>CFBundleTypeRole</key>
<string>None</string>
Разве вы не имеете в виду, что это как минимум Средство просмотра?
<key>NSPersistentStoreTypeKey</key>
<string>InMemory</string>
Что вы пытаетесь сделать здесь?Почему ваш файл на диске должен быть указан как постоянное хранилище Core Data в памяти?Если вы хотите просто загрузить все это в память при загрузке, это называется Binary или XML, а не InMemory.
Я также рекомендую определить UTI для типов документов, а не только для расширений.
Вы также должны перепроверить, что, по мнению Launch Services, происходит с помощью lsregister
.Иногда проблема заключается в том, что у вас есть несколько версий вашего приложения, а Launch Services не нашел ту, которая, по вашему мнению, должна была быть.Вы можете посмотреть базу данных Launch Services следующим образом: /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -dump
Это должно работать на 10.5 и 10.6.10.4 имеет lsregister
в другом месте.Я обычно использую locate
, чтобы найти его, а не пытаться запомнить его.