Simperium的问题:
写得不好的XC单元测试从simperium用户帐户(我的)中删除了大部分数据。没问题。我将sqlite文件的一天备份移动到iPhone 5(iOS 9.1)模拟器中,并从同一Documents目录中删除了现在无用的sqlite文件。
我执行了干净(SHIFT-COMMAND-K),并启动了模拟器。我现在所有丢失的数据都出现在应用模拟器中。大。
但是,恢复的核心数据记录没有被同步到相应的Simperium存储桶。令Sizzling,因为Simperium DID成功响应同步创建,更新和删除操作的新记录。
然后我删除了Simperium.com上的整个数据集。结果相同。同步的新记录没有问题,旧记录没有。
删除旧的sqlite文件时是否删除了重要的元数据。如果是这样,(如何)可以让旧记录重新同步?
答案 0 :(得分:1)
正在发生的事情是:应该绕过这些'新旧实体'的方法,因为它们都已经同时包含了Key + GhostData。
这种情况通常应该自动恢复,因为这些实体会以某种方式得到更新(这样lib会选择它们并将它们与后端同步)。
强制重新上传的最简单方法是:
在你的应用程序中,添加一个(临时+辅助方法),在初始化Simperium之后执行 right (因此,核心数据堆栈已连线),但在{{之前1}}方法被调用。
遍历该存储桶中的所有实体并设置为nil, simperiumKey 和 ghostData 值。
只需运行一次应用
杀死这个助手方法(否则可能导致重复的条目!)。
(未经测试),但这应该可以做到!