Как сделать так, чтобы мое приложение отображалось в меню «open-in» для plist-файлов в ios13? - PullRequest
3 голосов
/ 08 октября 2019

Я обновился до iOS 13, и теперь мое приложение больше не будет отображаться в новых диалоговых окнах «Открыть в ...». Ранее я делал следующее, чтобы мое приложение отображалось там, если открытый файл был .plist:

  1. Я редактировал Info.plist, как на скриншоте ниже.
  2. В AppDelegate я использую
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {}

для обработки данного файла.

Любые идеи о том, что могло измениться или что я мог случайно изменить, чтобы он не изменилсяработать больше? Насколько я знаю, я правильно выполнил шаги , предоставленные Apple.

Редактировать: Может быть, они что-то изменили, так что я должен сделать что-то другое, потому что .plist может бытьизвестный тип файла, а не пользовательский?

Редактировать 2: Я обнаружил, что это работает, если я изменю «plist» на что-то другое. Я попытался заменить его на «test» и отправить файл с именем «abc.test» на мой телефон, и он показал, что мое приложение открыло его.

Редактировать 3: В XML это выглядит так:

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeIconFiles</key>
            <array/>
            <key>CFBundleTypeName</key>
            <string>Plist File</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Owner</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>rtm.plist</string>
            </array>
        </dict>
    </array>

<key>UTExportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.data</string>
            </array>
            <key>UTTypeDescription</key>
            <string>Plist File</string>
            <key>UTTypeIconFiles</key>
            <array/>
            <key>UTTypeIdentifier</key>
            <string>rtm.plist</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>public.filename-extension</key>
                <array>
                    <string>plist</string>
                </array>
            </dict>
        </dict>
    </array>

Редактировать 4: Если я просто добавлю «public.data» в качестве типа документа, мое приложение будет показано, и мой код работает. Но я хочу, чтобы он отображался только для plist-файлов.

Редактировать 5: Я удалил все типы документов и UTI и просто добавил «public.plist» в качестве типа документа, и теперь он работает. Похоже, вы больше не можете использовать собственные UTI с общими типами файлов.

enter image description here

1 Ответ

1 голос
/ 11 октября 2019

столкнулся с той же проблемой.

В моем случае исправление было -> изменить public.item на public.data.

И мое приложение волшебным образом появилось в открытом меню.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...