16

我有一个 Mac 和 iOS 应用程序,它通过单个“鞋盒”文件使用 iCloud 共享数据。

大多数情况下,更改会以有效和迅速的方式正确同步。然而,每隔一段时间(尤其是现在)我在一台设备上所做的更改只是坐在那里。

我在我的 Mac 上对共享数据文件进行了更改,并且数据已保存到磁盘。不过不知道是系统无法将数据上传到iCloud,还是iOS设备无法检查新数据,但我在玩弄大拇指。

手机上的 iCloud 状态

下面的 5KB 文件是应该更改的文件。无论我在 Mac 应用程序中进行多少更改,在测试期间每隔一段时间,iCloud 都会停止同步更改。如果我走开 20 分钟然后回来,它可能会重新开始。

进一步:如果我在 Xcode 中运行 Mac 应用程序并密切关注同一个文件,即使我对文件进行了更改并且可以确认磁盘上的文件(在 Finder/终端中)实际上正在更改,iCloud 面板在Xcode 也不会很快接受这些更改:

Mac 上的 iCloud 状态

请注意,我的 Mac 上的本地文件系统上的相同 5KB 文件已更改(在9:01),但 iCloud 只是没有选择它。此文件中存在实际内容更改,而不仅仅是修改日期更改。

所以,我想找到一种方法:

  1. 以编程方式触发同步,甚至使用 Xcode。我知道可以使用模拟器触发 iCloud 同步,但这仅在 iOS 上测试时有效,而且我更喜欢在实际硬件上进行测试。或者,

  2. 确定谁(或什么)对未共享的数据“有过错”。我从一开始就关注 iCloud 文档,确保我使用协调写入来保存更改等。这只是一个非常间歇性的事情,iCloud 会打瞌睡,并使​​测试非常令人沮丧。

4

2 回答 2

1

我不认为您可以触发所选文件的同步,但您可以使用此工具“brctl”来查看引擎盖下发生的事情(或诊断)(在 OSX 上),以诊断它可能是什么。

命令行命令:

$ brctl

例如像这样使用它

brctl log --wait --shorten

或 brctl 诊断

于 2014-12-02T20:25:13.507 回答
1

我意识到当您将任何商店迁移到现有的 iCloud 商店时,iCloud 商店会添加这些数据并强制同步到 iCloud 中的版本。所以我将一个空商店迁移到我现有的 iCloud 商店,并强制同步!

于 2016-11-04T18:16:14.897 回答