NSUbiquitousKeyValueStore同步问题

Rog*_*rat 5 ios icloud nsubiquitouskeyvaluestore

除了NSUbiquitousKeyValueStore,让它在两个设备之间可靠同步外,我什么都没有。它开始使我发疯。狂。

我看着我的代码打电话给:

[[NSUbiquitousKeyValueStore defaultStore] setObject:_someData forKey:@"SomeData"];
[[NSUbiquitousKeyValueStore defaultStore] synchronize];
Run Code Online (Sandbox Code Playgroud)

但是,数据永远不会在其他设备上显示。

我已经看到它在几秒钟内同步,而其他时候我已经等了一个小时,却从未看到过同步。我将设备插入xcode并开始调试,有时数据突然弹出而其他时候却没有。有时确实如此。

进行此调用,退出并重新启动该应用程序之后,如果我阅读了旧数据,则看到的是旧数据,而不是我刚刚发布的新数据。在同一设备上。

当应用启动时,我会打电话给:

_someData = [[NSUbiquitousKeyValueStore defaultStore] stringForKey:@"SomeData"];
Run Code Online (Sandbox Code Playgroud)

我假设没有需要运行的初始化代码。我找不到任何示例。

当它起作用时,它运行得很好。

然后,今晚我正在查看设备日志,并在我最后一次退出后(尝试发送数据)立即找到了该日志:

Jul  8 21:32:03 unknown syncdefaultsd[17296] <Warning>: Error writing storage for com.mycompany.myapp to /private/var/mobile/Applications/4AC8C56E-6060-408B-84F9-F7EC336221D9/Library/SyncedPreferences/com.mycompany.myapp.plist: Error Domain=NSCocoaErrorDomain Code=4 "The operation couldn’t be completed. (Cocoa error 4.)" UserInfo=0xde80d40 {NSFilePath=/private/var/mobile/Applications/4AC8C56E-6060-408B-84F9-F7EC336221D9/Library/SyncedPreferences, NSUnderlyingError=0xde80b20"The operation couldn’t becompleted. No such file or directory"}
Run Code Online (Sandbox Code Playgroud)

该路径不是来自我的Apps沙箱的有效路径(错误的GUID),所以我想知道这是否是我的问题的根源。我确实在开发过程中删除并重新安装了很多应用程序,所以我想知道是否有一些旧路径缓存在某处,并且它正在尝试同步该数据。有没有办法清除它?

我知道我所有的权利都已正确设置,因为有时它确实可以工作。

[[NSUbiquitousKeyValueStore defaultStore] synchronize]正在返回YES

还有其他人看到过这个问题或错误吗?当我的应用程序启动以及将数据发送到云时,我还需要做其他事情吗?根据文档和示例,这似乎很容易。

Jul*_*ien 0

它可能是设备已安装应用程序列表中的陈旧缓存。尝试删除设备上的应用程序并重新安装。或者重新启动设备。

可以肯定的是,您应该向 bugreport.apple.com 提交一份报告