Can someone please shed some light? I have an app that uses Core Data
and CloudKit
, up until the last version, I was able to sync data between devices but now after I added two new Entities
for some reason it stopped syncing between devices.
Here is how I did the change:
- Created a new Core Data container.
- Added the new Entities and their Attributes
- Tested the new Entities locally to be able to send the new schema to
CloudKit
. - Went to CloudKit and made sure that the new Entities and Attributes were reflected on the Developent database.
- Deploy Schema Cahnges.
- Went to the Production database to make sure the new schema was deployed; and it was, both databases look the same.
Testing:
- Tested in the simulator and with a real device and everything syncs, even the new Entities.
- If I download the app from the App Store on two different devices they do NOT sync.
Based on the procedure I'm describing above, is there any important step I may have missed when doing the migration?
I'm not sure if this is related to the syncing issue but after testing a few times, I no longer can turn the iCloud on, I get the following message when I try to turn iCloud Sync On.
CoreData: error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate resetAfterError:andKeepContainer:]: <NSCloudKitMirroringDelegate: 0x282c488c0> - resetting internal state after error: Error Domain=NSCocoaErrorDomain Code=134410 "CloudKit setup failed because there is another instance of this persistent store actively syncing with CloudKit in this process." UserInfo={NSURL=file:///var/mobile/Containers/Data/Application/73F19BC7-4538-4098-85C7-484B36192CF3/Library/Application%20Support/CoreDataContainer.sqlite, NSLocalizedFailureReason=CloudKit setup failed because there is another instance of this persistent store actively syncing with CloudKit in this process., NSUnderlyingException=Illegal attempt to register a second handler for activity identifier com.apple.coredata.cloudkit.activity.setup.8D4C04F6-8040-445A-9447-E5646484521}
Any idea of what could be wrong and preventing the devices from syncing? Any idea or suggestion is welcome.
Thanks