如何在OS X应用程序提供的iOS8上的iCloud Drive中公开和检索文件

时间:2015-08-31 22:25:39

标签: ios macos icloud icloud-drive ubiquitycontainer

我可以使用具有相同Apple ID的常用ubiquity标识符(例如:iCloud.com.mycompany.CommonFiles)从OS X应用程序(10.10)和iOS应用程序(8.4)以编程方式将文件存储到iCloud Drive中。

在OS X应用程序中,我可以识别或检索iCloud Drive中的所有文件,无论它们来自何处(本地或远程),使用“常用”普遍存在ID和NSFileManager contentsOfDirectoryAtURL:等等。

在iOS 8中,虽然iOS应用程序似乎将文件放在iCloud Drive中的正确位置(这样它们在OS X Finder中可见,并且可以在OS X中检索),但它只能识别和检索文件它生成的内容 - 在任何其他设备上创建的iCloud Drive中的文件对iOS应用程序是不可见的。

在iOS应用中我需要做什么来查看和使用(以编程方式,而不是通过UIDocumentPicker)所有在相同的普遍普遍存在标识符下发起的Documents目录的无处不在的内容?

(这曾经用于旧的“文档和数据” - pre iCloud Drive - 技术,其中“普通”无处不在标识符以我们公司团队ID为前缀 - 现在用“iCloud”替换。一旦用户选择加入然而,iCloud Drive在OS X和iOS上的应用程序之间共享文件共享的方法已经丢失。)

1 个答案:

答案 0 :(得分:2)

您只应使用NSMetadataQuery枚举应用的iCloud Drive文件夹中的文件。该目录中的文件只有在您明确要求下载后才会显示,为了提出要求,您需要知道它们存在于云中(您只能通过NSMetaDataQuery查找)。

参见例如https://www.raywenderlich.com/12816/icloud-and-uidocument-beyond-the-basics-part-3以及详细信息https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/SpotlightQuery/Concepts/QueryingMetadata.html