Не удается проверить расширение поставщика документов

Я пытаюсь реализовать расширение провайдера документов для моего приложения, чтобы разрешить импорт / экспорт / перемещение файлов между приложениями.

Я создал свое основное приложение и добавил в проект как поставщика документов, так и расширения поставщика файлов, убедившись, что все они являются частью одного и того же идентификатора группы приложений в каждой из возможностей цели.

Информационный список для цели поставщика документов имеет следующие параметры:

<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 в качестве хост-приложений.

Я что-то здесь упускаю?

1 ответ

Убедитесь, что ваша группа приложений совпадает с той, что написана для info.plist вашего провайдера файлов

<key>NSExtensionFileProviderDocumentGroup</key>
<string>group.com.myAppGroupId</string>

Это случилось со мной, но когда я изменил его на правильное имя группы приложений выше, сборщик начал работать.

Спасибо,

Vsh

Другие вопросы по тегам