问题描述
我有一个使用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注意到更改,并且内部版本号必须高于任何以前的内部版本号(换句话说,不要只是将其更改为另一个值,而应将其更改)更高的值。