Apple Watch и основные данные iCloud Syncing

Я боролся с этой проблемой некоторое время и не могу найти ничего на эту тему. Есть много примеров того, как использовать Core Data с Apple Watch, но никто из них не поддерживает iCloud, поэтому я надеюсь, что кто-то может пролить свет на эту тему.

У меня есть приложение, которое использует Core Data и параметр NSPersistentStoreUbiquitousContentNameKey при создании постоянного хранилища, чтобы синхронизировать его с iCloud и между устройствами. Это отлично работает между iPhone и iPad. Тем не менее, синхронизация Apple 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, он отлично работает, но тогда устройства не будут синхронизироваться друг с другом.

Мне было интересно, есть ли у кого-нибудь еще эта проблема или какое-либо возможное решение, или я просто делаю все это неправильно?

Заранее спасибо!

EDIT: После обращения в службу поддержки Apple, похоже, это известная проблема с синхронизацией Core Data & iCloud, когда код для этого находится в расширении. Мне пришлось переместить всю обработку данных обратно в основной пакет, чтобы он снова работал.

Ссылка на известную проблему: https://devforums.apple.com/message/1051015#1051015

Давайте будем гением компьютера.