Поставщик документов IOS показывает "Не поддерживает тип файла"

Я пытаюсь реализовать расширение для iOS Document Provider, в частности, чтобы веб-страницы могли напрямую обращаться к файлам в моем приложении "Flyskyhy". Я прочитал обычную документацию и использовал стандартный способ в XCode для добавления цели расширения DocumentProvider в проект. Я еще ничего не изменил в этой реализации по умолчанию, но сначала хотел попробовать. Расширение отображается и вызывается правильно при доступе из Почты (через действие Добавить вложение).

Однако, когда я пытаюсь получить к нему доступ с веб-страницы в Safari, расширение не отображается в списке источников по умолчанию:

Затем, когда я нажимаю "Еще", он появляется с текстом "Не поддерживает тип файла":

Кто-нибудь знает, что может происходить, и что я могу сделать, чтобы сделать эту работу?

РЕДАКТИРОВАТЬ:

Поскольку API провайдера документов никогда не вызываются, это, скорее всего, проблема с Info.plist, Для информации, которая показана здесь:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>en</string>
    <key>CFBundleDisplayName</key>
    <string>Flyskyhy Documents</string>
    <key>CFBundleExecutable</key>
    <string>$(EXECUTABLE_NAME)</string>
    <key>CFBundleIdentifier</key>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>$(PRODUCT_NAME)</string>
    <key>CFBundlePackageType</key>
    <string>XPC!</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>1</string>
    <key>NSExtension</key>
    <dict>
        <key>NSExtensionAttributes</key>
        <dict>
            <key>UIDocumentPickerModes</key>
            <array>
                <string>UIDocumentPickerModeImport</string>
                <string>UIDocumentPickerModeExportToService</string>
            </array>
            <key>UIDocumentPickerSupportedFileTypes</key>
            <array>
                <string>public.content</string>
            </array>
        </dict>
        <key>NSExtensionMainStoryboard</key>
        <string>MainInterface</string>
        <key>NSExtensionPointIdentifier</key>
        <string>com.apple.fileprovider-ui</string>
    </dict>
</dict>
</plist>

1 ответ

Решение

В документации Apple говорится, что:

UTI public.content соответствует всем типам документов.

По словам службы технической поддержки Apple, это неверно. Вам нужно добавить public.data UTI для охвата всех типов документов:

        <key>UIDocumentPickerSupportedFileTypes</key>
        <array>
            <string>public.content</string>
            <string>public.data</string>
        </array>
Другие вопросы по тегам