simperium:sqlite数据库恢复到Xcode Simulator(Xcode 7.1.1)。新记录同步。旧记录没有



Simperium问题:

一个写得不好的XC单元测试从simperium用户帐户(我的)中删除了大部分数据。没问题。我将sqlite文件的一天备份移到了iPhone 5(iOS 9.1)模拟器中,并从同一个Documents目录中删除了现在无用的sqlite文件。

我执行了一次清理(SHIFT-COMMAND-K),并启动了模拟器。我所有丢失的数据现在都出现在应用程序模拟器中。太棒了

但是恢复的核心数据记录并没有同步到相应的Simperium存储桶。令人困惑的是,Simperium在创建、更新和删除操作时成功同步了新记录。

然后我删除了Simperium.com上的整个数据集。结果也是一样。新记录同步没有问题,旧记录没有

在删除旧的sqlite文件时,是否有我删除的重要元数据。如果是,(如何)使旧记录重新同步?

现在的情况是:应该拾取那些"新的-旧的实体"的方法被绕过了,因为它们都已经同时具有这两个实体,即Key+GhostData。

这种情况通常应该自动恢复,前提是这些实体以某种方式得到更新(这样lib就会拾取它们并将它们与后端同步)。

强制重新上传的最简单方法是:

  • 在您的应用程序中,添加一个(临时+助手方法),在Simperium初始化后(因此,核心数据堆栈已连接),但在调用authenticate方法之前执行

  • 循环遍历该bucket中的所有实体,并将simperiumKeyghostData值都设置为nil。

  • 只运行一次应用程序

  • 杀死这个helper方法(否则可能会导致重复条目!)。

(未经测试),但这应该奏效!

最新更新