Не удается проверить расширение поставщика документов
Я пытаюсь реализовать расширение провайдера документов для моего приложения, чтобы разрешить импорт / экспорт / перемещение файлов между приложениями.
Я создал свое основное приложение и добавил в проект как поставщика документов, так и расширения поставщика файлов, убедившись, что все они являются частью одного и того же идентификатора группы приложений в каждой из возможностей цели.
Информационный список для цели поставщика документов имеет следующие параметры:
<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