【发布时间】:2013-11-26 04:19:29
【问题描述】:
我有一个 Mac 和 iOS 应用程序,它使用 iCloud 通过单个“鞋盒”文件共享数据。
大多数情况下,更改会以高效且迅速的方式正确同步。但是,每隔一段时间(尤其是现在),我在一台设备上所做的更改都会坐在那里。
我在我的 Mac 上对共享数据文件进行了更改,并且数据已保存到磁盘。但是,我不知道是系统未能上传数据到iCloud,还是iOS设备未能检查新数据,但我在玩弄我的拇指。
下面的 5KB 文件是应该更改的文件。无论我在 Mac 应用程序中进行多少更改,在测试期间每隔一段时间,iCloud 都会停止同步更改。如果我走开 20 分钟然后回来,它可能会重新开始。
进一步:如果我在 Xcode 中运行 Mac 应用程序并密切关注同一个文件,即使我对文件进行了更改并且可以确认磁盘上的文件(在 Finder/ Terminal) 实际上正在发生变化,Xcode 中的 iCloud 面板也不会很快接受这些变化:
请注意,我的 Mac 上的本地文件系统上的相同 5KB 文件已更改(在 9:01),但 iCloud 只是没有接收到它。此文件中有实际的内容更改,而不仅仅是修改日期更改。
所以,我想找到一种方法:
以编程方式触发同步,甚至使用 Xcode。我知道可以使用模拟器触发 iCloud 同步,但这仅在 iOS 上测试时有效,而且我更喜欢在实际硬件上进行测试。或者,
确定谁(或什么)对未共享的数据“有过错”。我从一开始就关注 iCloud 文档,确保我使用协调写入来保存更改等。这只是一个非常间歇性的事情,iCloud 会打瞌睡,让测试非常令人沮丧。
【问题讨论】:
-
没有“立即同步”API。它只是起作用,除非它不起作用。但是你至少可以通过使用developer.icloud.com 来解决更改是否上传的问题,以查看 iCloud 认为文件的样子。
-
啊-该链接非常有用!我用两部 iPhone 进行了一些测试——这两款设备确实都在将更改推送到云端,但只有一台设备成功收到通知,并将它们拉下来。 (即使他们都运行同一个应用程序的完全相同的版本。) Womp womp!
-
如果它让你感觉更好(它不会)我观察到苹果应用程序同样不活跃。例如,页面可能会或可能不会立即同步(我已经看到需要几分钟)。当我使用 Mac 时,我会看到我的旧文本,几分钟后,它会“自动”更新。当您拥有 100,000 字的文档时,这可能会非常可怕。
标签: ios xcode macos cocoa icloud