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