带有 UTI 的 UIDocumentBrowserViewController 错误

Posted

技术标签:

【中文标题】带有 UTI 的 UIDocumentBrowserViewController 错误【英文标题】:UIDocumentBrowserViewController bug with UTIs 【发布时间】:2017-06-16 23:18:54 【问题描述】:

我使用 UIDocumentViewController(来自 Xcode 9 模板)为 ios 11 创建了一个应用程序。 我注册了支持 .swift 文件(public.swift-script)的文档类型,它可以与 open in place 和 Files 应用程序一起使用,但在应用程序的浏览器中,扩展名为 .swift 的文件被禁用,我无法选择它们。

我不知道是 iOS 11 的错误还是我,因为如果我将文档类型设置为使用 public.item 文件,它就可以工作。

注意:如果我允许选择多个项目,也会发生同样的情况,但如果我单击“全选”,则文件会被正常选择。

【问题讨论】:

【参考方案1】:

我可能没有我需要的所有信息,但使用模板和我对您问题的理解,我需要做的就是将 UTI 添加到 Info.plist,如下所示:

来源

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array/>
        <key>CFBundleTypeName</key>
        <string>Source Code</string>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>LSHandlerRank</key>
        <string>Alternate</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.swift-source</string>
        </array>
    </dict>
    <dict/>
</array>

如果我误解了你的问题,请告诉我。

【讨论】:

哇,谢谢,它成功了,我添加了 public.swift-script 而不是 public.swift-source,用 public.swift-source 成功了 @ColdGrub1384 Here 是我从中提取了 UTI。 @ColdGrub1384 如果它解决了你的问题,请接受这个答案

以上是关于带有 UTI 的 UIDocumentBrowserViewController 错误的主要内容,如果未能解决你的问题,请参考以下文章

macosx 可以在扩展名中注册一个带有点的UTI吗?

使用自定义 UTI 删除 UIDocumentPicker 导入/导出

iOS Photos 框架无法获取图像数据/UTI

iOS UTI(统一类型标识)

自定义 UTI 注册问题

在 UIDocumentPickerViewController 中显示自定义 UTI 的图标