我正在使用 Xcode 6.3.2 为 iOS 8.3 开发一个应用程序,该应用程序需要从用户的 iCloud 帐户中提取 CSV 文件。这些电子表格将由单独的系统生成并保存到用户的 iCloud Drive 文件夹中(将有多个电子表格,用户将在应用程序中输入确定应访问哪个电子表格的键字符串),这样做的方法将处理我的客户,除非它不能以特殊方式完成,否则无关紧要。应用程序本身需要获取一个密钥字符串并在用户的 iCloud 驱动器中搜索该文件,如果存在,获取文件的内容,如果可能,将其保存在本地,以便即使 iCloud 驱动器不可用也可以访问它。
当前应用程序使用应用程序包中的本地 CSV 文件(我已复制到我的 Xcode 项目中的那些文件),所以现在我需要集成 iCloud 功能。
已解决: 我已经阅读了各种教程,这些教程向您展示了如何向/从 iCloud Drive 上传和下载,尽管我对它的工作原理仍然有些困惑。这让我提出了一个问题。
我目前假设第一个问题的后者是正确的,但是我现在担心我误解了它的工作原理(因此是第一个问题)。我已经将应用程序设置为使用 iCloud - 它成功地获取了无处不在的 URL,但是在查询任何 CSV 文件时它什么都不返回。我目前正在使用模拟器并已阅读它应该可以工作,尽管其他来源表明它不会,在模拟器上我已经使用适当的 Apple ID 登录并启用了 iCloud Drive - 但是我放置在我的 iCloud Drive 文件夹中的文件在我的 iMac 上不可见。进入问题2...
编辑:我已经做了一些进一步的挖掘并设法让 iCloud 在实际设备上工作 - 我猜这回答了问题 2:iCloud 文档存储在 iOS 模拟器上无法正常工作。我还看到教程或屏幕截图显示我对问题 1 的假设是正确的。
现在,当我在 iPad 上转到“设置”>“iCloud”>“存储”>“管理存储”以及转到“系统偏好设置”>“iCloud”>“管理”时,我可以看到我的应用程序已将文档存储在 iCloud 中。我可以看到数据存在,但是当我导航到 Finder > iCloud Drive 时我看不到我的应用程序文件夹。我需要做的是将文件放入我 Mac 上 iCloud Drive 中的应用程序文件夹中,以便可以通过我的应用程序读取它们。我读到只需将“文档”文件夹附加到我的无处不在 URL 的末尾即可使其在 finder 中可见,但这并没有奏效。这使我进入问题 3:
它花了一点时间,但我已经设法自己解决了这个问题,我会为其他为此而苦苦挣扎的人发布解决方案。
该应用程序将创建自己的 iCloud 容器,该容器在管理 iCloud 文档时可见,但默认情况下在 Mac 或 icloud.com 上的 iCloud Drive 文件夹中不可见。通过对 info.plist 文件添加一些内容,应用程序的 iCloud 文件夹可以在 Finder 中可见(请参阅答案 3)。
在模拟器上测试时,我根本看不到任何同步的文档,在移动到 iPad 后,我可以看到来自我的应用程序和其他应用程序(例如 TextEdit)的文档。这让我相信 iCloud 功能在 iOS 模拟器上无法正常工作。也许它可以通过手动将文件添加到适当的容器文件夹来工作 - 但实际上这还不足以完全测试。
如上所述,将应用程序的 iCloud 文件夹设为公开需要对 info.plist 文件进行一些添加。在 Xcode 6.3.2 中,这将如下所示(根据需要设置模糊包标识符和 ContainerName,并分别增加包版本和包版本字符串):

| 归档时间: |
|
| 查看次数: |
1057 次 |
| 最近记录: |