Core data NSPersistentCloudKitContainer不在后台同步

Core data NSPersistentCloudKitContainer不在后台同步,core-data,cloudkit,nspersistentcloudkitcontainer,Core Data,Cloudkit,Nspersistentcloudkitcontainer,我目前正在测试NSPersistentCloudKitContainer。 我严格遵守了新文件的指导原则。基本上一切都按预期进行。我使用描述中的选项NSPersistentStoreRemoteChangeNotificationPostOptionKey从远程数据存储接收更新。但是,只有当应用程序位于前台时,才会发送来自远程数据库的更新。但是我想根据后端的数据更改来更新我的小部件 有人知道如何解决这个问题吗 到目前为止我所做的: 功能中的后台模式已启用 已启用推送通知 我打电话给Regist

我目前正在测试NSPersistentCloudKitContainer。 我严格遵守了新文件的指导原则。基本上一切都按预期进行。我使用描述中的选项NSPersistentStoreRemoteChangeNotificationPostOptionKey从远程数据存储接收更新。但是,只有当应用程序位于前台时,才会发送来自远程数据库的更新。但是我想根据后端的数据更改来更新我的小部件

有人知道如何解决这个问题吗

到目前为止我所做的:

  • 功能中的后台模式已启用
  • 已启用推送通知
  • 我打电话给RegisterForemotentifications
  • 对PersistentStore的描述启用了HistoryTracking和RemoteChange选项
同步在前台工作✅

如果应用程序位于后台,则同步不起作用❌

编辑:2020年9月9日

现在看来我们无能为力。 苹果开发者支持部几天前回答了我的问题

感谢您联系Apple开发者技术支持(DTS)。

您描述的行为和由此产生的限制是设计的。

如果您认为苹果公司应该考虑另一种方法,我们鼓励您提交一份增强请求,其中包含此设计决策对您的影响,以及您希望看到的不同做法。

虽然没有承诺行为会改变,但这是确保负责决策的团队看到您对此事的想法的最佳方式。

虽然技术支持事件(TSI)最初是从您的Apple Developer Program帐户中为此请求借记的,但我们已将替换事件分配回您的帐户


它确实在后台工作,也许可以提供更多关于如何测试它的详细信息。我正在使用CloudKit仪表板删除一组数据,然后在AppDelegate中等待DidReceiveMemotentification调用来测试它。如果我将应用程序放在前台,则会调用函数并相应更新数据,如果我将应用程序放在后台,则不会发生任何事情。它运行的是什么版本的Xcode、什么SDK、什么设备、什么版本的iOS?当您测试或正常运行应用程序并使用控制台检查调试输出时,您是否正在运行调试器?我使用的是Xcode 12 Beta 6和iOS 14 GM。我运行应用程序时没有将调试器连接到它。好的,什么设备?它在后台工作,也许可以提供更多关于如何测试它的详细信息。我通过使用CloudKit仪表板删除一组数据并等待AppDelegate中的DidReceiveMemoteNotification调用来测试它。如果我将应用程序放在前台,则会调用函数并相应更新数据,如果我将应用程序放在后台,则不会发生任何事情。它运行的是什么版本的Xcode、什么SDK、什么设备、什么版本的iOS?当您测试或正常运行应用程序并使用控制台检查调试输出时,您是否正在运行调试器?我使用的是Xcode 12 Beta 6和iOS 14 GM。我正在运行应用程序,但没有将调试器连接到它。好的,是什么设备?