Для полноты и, возможно, моей собственной справки ниже, вот некоторые подробности, которые заставили меня работать:
Объявление типов документов, поддерживаемых вашим приложением
(например, базы данных sqlite3)
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeIdentifier</key>
<string>com.company.sqlite3.database</string>
<key>UTTypeReferenceURL</key>
<string>http://www.company.com/</string>
<key>UTTypeDescription</key>
<string>MyCompany SQLite Database</string>
<key>UTTypeIconFile</key>
<array>
<string>Icon-Small.png</string>
<string>Icon.png</string>
</array>
<key>UTTypeConformsTo</key>
<array>
<string>public.database</string>
<string>public.data</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>sqlite</string>
</array>
<key>public.mime-type</key>
<array>
<string>application/x-sqlite3</string>
<string>application/octet-stream</string>
</array>
</dict>
</dict>
</array>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>MyCompany SQLite Database</string>
<key>CFBundleTypeIconFiles</key>
<array>
<string>Icon-Small.png</string>
<string>Icon.png</string>
</array>
<key>CFBundleTypeExtensions</key>
<array>
<string>sqlite</string>
</array>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-sqlite3</string>
<string>application/octet-stream</string>
</array>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>com.company.sqlite3.database</string>
</array>
<key>NSPersistentStoreTypeKey</key>
<string>SQLite</string>
</dict>
</array>
Скопируйте и вставьте приведенный выше XML в ваш файл Info.plist.
Установка «Тип хранилища» на «SQLite» не стала для меня решающим фактором.
В моем предыдущем посте упоминался довольно неправильный способ заставить его работать, который принимает все файлы и неправильно экспортировал тип.
Кроме того, если ваше приложение отправляет эти файлы по электронной почте в виде вложений, убедитесь, что оно соответствует типу MIME, который вы задали для захвата. Приложение / октет-поток не важен, просто старые версии нашего приложения отправляют базы данных по электронной почте с этим типом MIME.
например,
[controller addAttachmentData:[NSData dataWithContentsOfFile:dbPath] mimeType:@"application/x-sqlite3" fileName:filename];
Я очень надеюсь, что любой другой, кто попытается выяснить, как заставить свое приложение поддерживать открытие резервных копий базы данных sqlite3, найдет это полезным.