Ios 苹果手表和核心数据iCloud同步

Ios 苹果手表和核心数据iCloud同步,ios,swift,apple-watch,Ios,Swift,Apple Watch,我为这个问题绞尽脑汁已经有一段时间了,似乎找不到关于这个话题的任何东西。关于如何在Apple Watch上使用核心数据,有很多例子,但没有一个有iCloud支持,所以我希望有人能对这个问题有所帮助 我有一个应用程序,在创建持久存储时使用核心数据和NSPersistentStoreUbiquitousContentNameKey选项,使其与iCloud和设备之间同步。这在iPhone和iPad之间非常有效。然而,苹果手表的同步充其量也只是零星的。有时有效,有时无效,当它进行初始同步时,之后似乎不会

我为这个问题绞尽脑汁已经有一段时间了,似乎找不到关于这个话题的任何东西。关于如何在Apple Watch上使用核心数据,有很多例子,但没有一个有iCloud支持,所以我希望有人能对这个问题有所帮助

我有一个应用程序,在创建持久存储时使用核心数据和NSPersistentStoreUbiquitousContentNameKey选项,使其与iCloud和设备之间同步。这在iPhone和iPad之间非常有效。然而,苹果手表的同步充其量也只是零星的。有时有效,有时无效,当它进行初始同步时,之后似乎不会同步任何内容

我看到的原因是,尽管Watch应用程序是iPhone应用程序的扩展,但因为它使用了NSPersistentStoreUbiquitousContentNameKey,所以它在另一个文件夹下创建了一个数据库,而不是使用与iPhone相同的文件夹

iPhone数据库的路径

iPhone:
PFUbiquitySetupContainerIdentifierKey: 8B652C84-62E1-4FFF-B822-13C90C19DC5F
file:///Users/Aaron/Library/Developer/CoreSimulator/Devices/
6E2EE13A-3148-4693-A92F-7B23C709CF78/data/Containers/Shared/AppGroup/
B7DEE2C6-D345-460C-884D-74C011BF98BA/CoreDataUbiquitySupport/
nobody~simA7716E1E-6B21-5DAA-AF81-CAF6AE77A985/iCloudDATA/
8B652C84-62E1-4FFF-B822-13C90C19DC5F/store/appname)
Apple Watch数据库的路径

Watch:
PFUbiquitySetupContainerIdentifierKey: 44220421-4F7C-46AC-B3D7-6ABEDA62C77B
file:///Users/Aaron/Library/Developer/CoreSimulator/Devices/
6E2EE13A-3148-4693-A92F-7B23C709CF78/data/Containers/Shared/AppGroup/
B7DEE2C6-D345-460C-884D-74C011BF98BA/CoreDataUbiquitySupport/
nobody~simA7716E1E-6B21-5DAA-AF81-CAF6AE77A985/iCloudDATA/
44220421-4F7C-46AC-B3D7-6ABEDA62C77B/store/appname)
请注意,除了路径中的PFUbiquitySetupContainerIdentifierKey之外,平铺路径完全相同,每个设备都有自己的平铺路径

如果我删除存储选项PFUbiquitySetupContainerIdentifierKey,它可以正常工作,但设备将无法彼此同步

我想知道是否有其他人有这个问题,或者有任何可能的解决办法,或者我只是做错了

提前谢谢

编辑:联系Apple开发支持人员后,这似乎是核心数据和iCloud同步的一个已知问题,因为其代码位于扩展中。我必须将所有数据处理移回主捆绑包,以便它再次工作

链接到已知问题线程: