【发布时间】:2019-10-08 20:41:05
【问题描述】:
我已更新到 iOS 13,现在我的应用将不再显示在新的“打开方式...”对话框中。 如果打开的文件是 .plist 文件,我之前做了以下操作来让我的应用程序显示在那里:
- 我编辑了 Info.plist,如下面的屏幕截图所示。
- 在我使用的 AppDelegate 中
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {}
处理给定的文件。
有什么想法可能会改变或我可能不小心改变了什么,以至于它不再起作用了吗? 据我所知,我正确地遵循了 Apple 提供的steps。
编辑:是不是他们改变了一些东西,所以我必须做一些不同的事情,因为 .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。
【问题讨论】:
-
除非您完全选择不使用场景(您不应该这样做),否则您应该实现相应的 UISceneDelegate 方法。
-
@rmaddy 没有那个我的应用程序不应该仍然显示,但调用无处可去吗?
标签: ios swift xcode ios13 openurl