提问者:小点点

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


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

我现在想让用户使用files应用程序将他们自己的文本文件复制到我的应用程序文件夹中,但是在files应用程序中,每当我的应用程序的文件夹被选中时,移动按钮就会被禁用。

我在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's docs中没有看到任何关于权限的东西,只是关于文件类型的东西。在我的Mac上,这个文件夹显示得很好,我可以毫无问题地将文件拖入其中,我的应用程序也能像它应该的那样识别它们。只有iOS文件应用程序不会保存到我的文件夹。

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


共1个答案

匿名用户

我写信给Apple开发支持部门,收到了非常有帮助的回复。简单的答案是,为了让iCloud注意到这些变化,将应用程序的内部版本号调高,并且内部版本号要高于任何以前的内部版本号(换句话说,不要只是将它改成另一个值,而是改成更高的值),这一点很重要。