Я обновился до iOS 13, и теперь мое приложение больше не будет отображаться в новых диалоговых окнах «Открыть в…». Ранее я сделал следующее, чтобы мое приложение отображалось там, если открытый файл был файлом .plist:
- Я отредактировал Info.plist, как показано на скриншоте ниже.
- В AppDelegate я использую
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {}
для обработки данного файла.
Любые идеи, что могло измениться или что я мог случайно изменить, чтобы он больше не работал? Насколько мне известно, я следовал шагам, предоставленным Apple. правильно.
Изменить: может быть, они что-то изменили, так что мне нужно сделать что-то другое, потому что .plist, возможно, является известным типом файла, а не настраиваемым?
Редактировать 2: я обнаружил, что это работает, если я изменю «plist» на что-то другое. Я попытался заменить его на «тест» и отправить файл с именем «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 с общими типами файлов.