【问题标题】:How do I make my app show up in "open-in"-menu for plist-files in ios13?如何让我的应用程序显示在 ios13 中 plist 文件的“open-in”菜单中?
【发布时间】:2019-10-08 20:41:05
【问题描述】:

我已更新到 iOS 13,现在我的应用将不再显示在新的“打开方式...”对话框中。 如果打开的文件是 .plist 文件,我之前做了以下操作来让我的应用程序显示在那里:

  1. 我编辑了 Info.plist,如下面的屏幕截图所示。
  2. 在我使用的 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


【解决方案1】:

遇到了同样的问题。

在我的情况下,修复是 --> 将 public.item 更改为 public.data

我的应用神奇地重新出现在打开的菜单中。

【讨论】:

  • 我已经将它设置为“public.data”。请参阅我的最后一次编辑,了解我是如何为我修复它的。
  • 我知道,但我的问题略有不同,因为我使用的是 public.item,它应该覆盖 public.data。您的回答对我解决这个问题很有帮助。谢谢。
猜你喜欢
  • 2017-11-29
  • 2018-07-28
  • 2011-12-18
  • 1970-01-01
  • 2017-12-04
  • 2018-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多