如何启用iOS文件应用将文件复制到我的应用中?

问题描述

我有一个使用iCloud Drive存储纯文本文件的应用程序,它运行良好-我可以将文件保存到iCloud Drive,并且我的应用程序文件夹正确显示,并且我创建的文件在那里,可以将其复制出来,共享等...。

我现在希望允许用户使用“文件”应用程序将自己的文本文件复制到我的应用程序文件夹中,但是在“文件”应用程序中,只要选择了我的应用程序文件夹,“移动”按钮都将被禁用。

我已经在info.plist的CFBundleTypes中添加了一个条目:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array/>
        <key>CFBundleTypeName</key>
        <string>Text</string>
        <key>LSHandlerRank</key>
        <string>Alternate</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.plain-text</string>
        </array>
    </dict>
</array>

并启用文件共享和打开:

<key>UIFileSharingEnabled</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>

但这没什么区别。我也尝试过添加这样的导入声明:

<key>UTImportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.text</string>
        </array>
        <key>UTTypeDescription</key>
        <string>Text file</string>
        <key>UTTypeIconFiles</key>
        <array/>
        <key>UTTypeIdentifier</key>
        <string>public.text</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>txt</string>
            <key>public.mime-type</key>
            <string>text/plain</string>
        </dict>
    </dict>
</array>

但是,即使重新启动iPhone,这也无济于事。只要选择了我的应用程序文件夹,“文件”应用程序的“移动”按钮就会变成灰色。

我怀疑我可能走错了路,这确实是某种权限问题,但是我在Apple的文档中没有看到关于权限的任何信息,只是有关文件类型的信息。在我的Mac上,该文件夹显示正常,我可以毫无问题地将文件拖入其中,并且我的应用程序可以识别它们。仅iOS文件应用程序不会保存到我的文件夹中。

是否有人了解如何在“文件”应用程序中将文本文件复制到我的应用程序的文件夹中,或者是什么导致“文件”应用程序拒绝将文件移动到其中?

解决方法

我写信给Apple开发人员支持部门,并收到了非常有益的答复。简短的答案是增加应用程序的内部版本号,以使iCloud注意到更改,并且内部版本号必须高于任何以前的内部版本号(换句话说,不要只是将其更改为另一个值,而应将其更改)更高的值。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...