iCloud无处不在的容器url是nill



我正在为tvOS创建一个.pdf阅读器。我想将.pdfs存储在iCloud Drive文件夹中,并以只读方式访问它们。毫不奇怪,我在让iCloud工作时遇到了困难:FileManager.default.url(forUbiquityContainerIdentifier: nil)总是返回零。

我假设我需要将条目添加到info.plist中(为什么Xcode不这样做?(我包括以下内容。密钥将我的捆绑包ID与前缀"iCloud"匹配。

<dict>
<key>iCloud.com.spiffcleanser.books</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerName</key>
<string>books</string>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>Any</string>
</dict>
</dict>

我有很多问题,但都是相关的,所以我希望一次问所有问题是可以接受的。在这一点上,我只是试图获得容器URL。

  1. 我使用默认的泛在容器。我已经创建了一个iCloud授权,并检查了CloudKit。我需要从列表中指定一个容器吗?如果我没有指定,那么它是隐式使用的默认容器吗
  2. 我在开发者叹息上的标识符表明我有一个iCloud实体。容器分配与我在Xcode中指定的内容相匹配。如果我使用的是默认容器,那么列表应该是空的,还是应该以与.plist文件中相同的方式使用应用程序的捆绑包ID配置容器
  3. 我知道,在修改权限后,我需要重新构建配置文件,切换"自动管理签名"是否足够,还是需要显式创建配置文件
  4. 每次更改配置时是否需要更改版本号?我认为增加内部版本号就足够了

感谢您的帮助。

我已经解决了这个问题。iCloud对文档的支持在tvOS上不可用。这是因为只有最低限度的本地存储可用。