核心数据没有icloud同步...再次

Core data no icloud sync... again

大约 2 年前,我在这里 () 询问我在 iCloud 上同步核心数据时遇到的问题。问题已解决,将架构部署到生产环境。

到目前为止没有问题,但几个月前我注意到我的应用程序有时同步,有时不同步。

现在的问题是,完全不同步,在模拟器上运行正常,我打开 2 个设备,它们同步没有问题。

上线(从 AppStore 下载应用程序),使用 2 iPhone 秒,同一个 iCloud 帐户,99% 的时间不同步。

例如:

  1. 从两个 iPhone
  2. 中删除该应用程序
  3. 从 AppStore 下载应用程序
  4. 应用程序加载已存储在 iCloud 上的记录,我可以在两个 iPhones
  5. 上看到相同的数据
  6. 在iPhoneA上添加一条新记录,iPhoneB收到新数据...ok
  7. 在任何 iPhone 上添加第二条记录,从这里开始,none 新数据已同步
  8. 为了查看步骤 4 中的数据是否保存在 iCloud 上,应用程序再次从两者中删除 phone 并重新开始,在步骤 3 中,数据已加载但步骤 4 中的新记录丢失.

有什么想法吗?

AppDelegate.swift

lazy var persistentContainer: NSPersistentCloudKitContainer = {
    let container = NSPersistentCloudKitContainer(name: "whatever")
    container.loadPersistentStores(completionHandler: { (storeDescription, error) in
        if let error = error as NSError? {
            
            fatalError("Unresolved error \(error), \(error.userInfo)")
        }
    })
    container.viewContext.automaticallyMergesChangesFromParent = true
    container.viewContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
    return container
}()

func saveContext () {
    let context = persistentContainer.viewContext
    if context.hasChanges {
        do {
            try context.save()
        } catch {
            let nserror = error as NSError
            fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
        }
    }
}

发现问题...

我不小心在数据模型中创建了第二个配置,删除它解决了问题,iCloud 再次同步没有任何问题。