Я обновился до iOS 13, и теперь мое приложение больше не будет отображаться в новых диалоговых окнах «Открыть в ...». Ранее я делал следующее, чтобы мое приложение отображалось там, если открытый файл был .plist:
- Я редактировал Info.plist, как на скриншоте ниже.
- В 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](https://i.stack.imgur.com/EJCib.png)