Я пытаюсь реализовать расширение поставщика документов для своего приложения, чтобы разрешить импорт/экспорт/перемещение файлов между приложениями.
Я создал свое основное приложение и добавил в проект как поставщика документов, так и расширения поставщика файлов, проверяя, что все они являются частью одного и того же идентификатора группы приложений в каждой из целевых возможностей.
Информационный plist для целевого поставщика документа имеет следующие настройки:
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>UIDocumentPickerModes</key>
<array>
<string>UIDocumentPickerModeImport</string>
<string>UIDocumentPickerModeExportToService</string>
<string>UIDocumentPickerModeMoveToService</string>
</array>
<key>UIDocumentPickerSupportedFileTypes</key>
<array>
<string>public.content</string>
</array>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>Main</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.fileprovider-ui</string>
</dict>
Пока файл info.plist для поставщика файлов имеет следующие значения:
<dict>
<key>NSExtensionFileProviderDocumentGroup</key>
<string>group.com.myAppGroupId</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.fileprovider-nonui</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).FileProvider</string>
</dict>
Я использую стандартные реализации для подкласса UIDocumentPickerExtensionViewController и подкласса NSFileProviderExtension, которые появляются при создании целей, и я поставил контрольные точки в каждом методе, чтобы проверить, что они работают соответственно.
Но когда я пытаюсь запустить Поставщик документов, я не могу заставить мое приложение отображаться в списке приложений, доступных для совместного использования документа. Я проверил это как с моим устройством, так и с симулятором, выбрав как iPhoto, так и Pages в качестве хост-приложений.
Я что-то пропустил?