iCloud Drive 文档未包含在 NSMetadataQuery 结果中

iCloud Drive documents not included in NSMetadataQuery results

我有一个基本的 iOS 8 应用程序,它在应用程序的 iCloud 容器和 iCloud Drive 中列出了用户的文档。

我的问题是直接位于 iCloud Drive(Finder → Go → iCloud Drive)中的文档未作为元数据查询的结果包含在内。仅查询 returns 会在应用的 iCloud 容器的 Documents 文件夹中产生结果。

我这样初始化查询:

self.query = [NSMetadataQuery new];
self.query.searchScopes = @[NSMetadataQueryUbiquitousDataScope,
   NSMetadataQueryUbiquitousDocumentsScope,
   NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope]; // iCloud Drive

权利如下所示:

<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
    <string>$(TeamIdentifierPrefix)com.my.app</string>
    <string>iCloud.com.my.app</string>
</array>

更奇怪的是:iCloud Drive 中的一些文档有时会出现,但是如果我将它们从 iCloud Drive 中移出并重新放入,它们就不再显示了。

想通了。 iCloud Drive 文档不在应用程序的容器中,因此不包含在元数据查询结果中,因为应用程序无法访问外部文件。

一旦使用文档选择器打开文档,应用程序就可以访问该文档,并且从那时起它将成为元数据查询结果的一部分(直到用户将其移出 iCloud Drive)。

我观察到的另一件事:如果用户在 Mac 上将文档移出 iCloud Drive,元数据查询将不会在 iOS 上收到更新。尝试在 iOS 上打开文档只会导致错误(找不到文件)。

我也想获取直接在iCloud里drive.I找到一个叫"Document 5"的APP做过的文件和目录this.This是我的问题:iCloud Drive list directories and files through NSMetadataQuery.