Search results for

“NSPersistentCloudKitContainer”

602 results found

Post

Replies

Boosts

Views

Activity

Using Core Data With CloudKit
Hi, I have NSPersistentCloudKitContainer and everything is great until I faced the issue after a while of using it. It takes so long to sync because its loading all the changes that was done on the object and doesn't just fetch the latest values of the object. My solution now is to manually fetch CKRecords to see if there is something or not. If so I'm displaying Loading while CoreData and CloudKit find their way to sync. Thanks
0
0
567
Apr ’21
Implementing an iCloud on off button in SwiftUI results in crash
I've added iCloud into my SwiftUI app and everything seems to be working great, however I need to implement an on off toggle for it. After searching, I found a couple forums posts that suggested to re-create the container when icloud is toggled on off. Here's the code: lazy var persistentContainer: NSPersistentContainer = { ttreturn setupContainer() }() /* This is called when the iCloud setting is turned on and off */ func refreshCoreDataContainer() { tt/* Save changes before reloading */ tttry? self.persistentContainer.viewContext.save() tt/* Reload the container */ ttself.persistentContainer = self.setupContainer() } private func setupContainer() -> NSPersistentContainer { ttlet useCloudSync = UserSettings.shared.enableiCloudSync ttlet container: NSPersistentContainer! tt/* Use the icloud container if the user enables icloud, otherwise use the regular container */ ttif useCloudSync { ttttcontainer = NSPersistentCloudKitContainer(name: App) tt} else { ttttcontainer = NSPersistentContainer(name: A
0
0
1.1k
Nov ’20
CloudKit Synchronized "User Defaults"
I have a CoreData-based application, set up with a private CloudKit container and using NSPersistentCloudKitContainer. However, I need additional CloudKit-synchronized data that lives in this container, but not as part of a CoreData scheme. (I.e., I need to read/write some data to the CloudKit container BEFORE initializing the NSPersistentCloudKitContainer. (1) Is this possible? [I'm assuming that the answer is YES.] (2) Since I'm a complete neophyte with CloudKit, can you give me some guidance as to how to set this all up? One way to think about what I want to do is to create a cloud-synchronized UserDefaults that provides consistent default data to all of a user's devices.
0
0
913
Jun ’21
Changing relationship delete rule & CloudKit
Hi, any side effect to be aware of when changing a core data relationship delete rule from Null to Cascade? I NSPersistentCloudKitContainer to handle CloudKit sync in case that's relevant. It doesn't look like any migration is required, and the cloudkit schema doesn't change so it seems there's nothing to do on the cloudkit-side either. However I'd prefer to double check to avoid making false assumptions. I wasn't able to find any documentation on that particular point so if someone can shade some light on how things work under the hood that would be appreciated. Thanks!
0
0
918
Jun ’22
CoreData & CloudKit toggle iCloud sync (enable/disable)
I want to give the user the option to toggle iCloud sync on and off. So I'm switching between NSPersistentCloudKitContainer and NSPersistenttContainer But... When I switch off the CloudKit synchronization and update the container, the sync is still active. After restarting the app manually the sync is deactivated. This is the same problem some people are describing in the comments here... https://stackoverflow.com/questions/65355720/coredatacloudkit-on-off-icloud-sync-toggle I wasn't able to find a solution. Here is my code: MyApp.swift @main struct MyApp: App { @StateObject private var persistenceContainer = PersistenceController.shared var body: some Scene { WindowGroup { ContentView() .environmentObject(CoreBluetoothViewModel()) .environment(.managedObjectContext, persistenceContainer.container.viewContext) } } } PersistenceController import CoreData class PersistenceController: ObservableObject{ static let shared = PersistenceController() lazy var container: NSPersistentContainer = { setupContain
0
0
1.1k
Feb ’23
NSPersistentCloudKitContainer stop sync when CKErrorDomain 12 error occurred
My app uses NSPersistentCloudKitContainer to implement Coredata and iCloud synchronization data Recently, I received feedback from online users about data synchronization errors, and the error code is CKErrorDomain 12 . In the App, I use NSPersistentCloudKitContainer.eventChangedNotification to monitor the synchronization status, the following is the specific code NotificationCenter.default.publisher(for: NSPersistentCloudKitContainer.eventChangedNotification) .sink(receiveValue: { notification in if let cloudEvent = notification.userInfo?[NSPersistentCloudKitContainer.eventNotificationUserInfoKey] as? NSPersistentCloudKitContainer.Event { let event = SyncEvent(from: cloudEvent) } }) .store(in: &disposables) When the user feedbacks that the data cannot be synchronized, it can be seen from the above code that an error occurred when CoreData + iCloud was exporting data. At the same time, cloudKitEvent.error does not contain any error information, only CKErrorDomain 12 this information, I don’t know
0
0
1.2k
Apr ’23
When using NSPersistentCloudKitContainer, should we prune NSPersistentHistory?
The Apple Demo, which is very thorough, doesn't prune persistent history?And the Forum Thread seems to suggest that persistent history is integral to how NSPersistentCloudKitContainer works.Are we supposed to explicitly prune persistent history ourselves or is it handled for us by NSPersistentCloudKitContainer?Apple Demo: https://developer.apple.com/documentation/coredata/synchronizing_a_local_store_to_the_cloudForum Thread: https://forums.developer.apple.com/message/373336#373336
0
0
573
Feb ’20
Do unique constraints work on an NSPersistentCloudKitContainer?
The documentation - https://developer.apple.com/documentation/coredata/mirroring_a_core_data_store_with_cloudkit/creating_a_core_data_model_for_cloudkit for Creating a Core Data Model for CloudKit states that Unique constraints aren’t supported. but I've tried to set one up and it seems to be working fine (locally, I haven't tried syncing yet) on Xcode 11.5 & iOS 13.5. If I'm not mistaken, when NSPersistentCloudKitContainer was first introduced Xcode displayed an error if you tried to add a constraint to an Entity, but that doesn't seem to happen anymore. Has this restriction been lifted or do I just remember it incorrectly and it never showed any errors? If the restriction has not been lifted, does anyone know how to make sure that Entities are not duplicated? It'll be easy to add a cleanup operation after every sync, but so far I am not aware of any way to know when the sync has fully finished - https://developer.apple.com/forums/thread/652607. Thanks.
0
0
690
Jul ’20
How to get iCloud Notifications for Extra functions?
For the past two days I've been trying to figure out how to get the notification when the iCloud data has changed. I use a NSPersistentCloudKitContainer and am able to see my changes from one device in another. I just added local notifications to my app and I save the notification to an iCloud entity whenever a user sets it.Since I'm adding this notification in iCloud, a remote notification with iCloud changes will be sent to the users devices with iCloud enabled. What I would like to do is when the device gets this notification, read from the new data and set a local notification on the current device if a notification entity is found.But I can not seem to figure out how to intercept this change notification. I tried using didReceive and didReceiveRemoteNotification from the AppDelegate, but none of these functions fired when the device received the iCloud changes. In the Xcode console I can see that the device is notified with the data.How can I intercept the background notification that contains t
0
0
936
Apr ’20
How to import data from iPhone system File to the app other than the app's iCloud at first through Share Extension?
The local data in iPhone system File is inserted to the app core data through Share Extension. The app uses NSPersistentCloudKitContainer to sync core data. But when importing local data from iPhone local File, the data always go to iCloud of the app at first and then syncing data to the app from iCloud. This leads to that the app cannot import data when the iCloud drive is closed or the iCloud is full. Is there any way to import data to the app other than to the app's iCloud at first?
0
0
879
Aug ’20
NSPersistentCloudKitContainer - CloudKit Error 503 after inserting batch of elements
When I sync my large Core Data database with NSPersistentCloudKitContainer, inserting new rows works well for up to 10k rows. (in batches of ~400 inserts) After that, CloudKit receives a 503 Service Unavailable error with a timeout. Here's the log: CoreData: CloudKit: CoreData+CloudKit: -[PFCloudKitExporter exportIfNecessary]_block_invoke_2(153): : Found 22161 objects needing export. 2021-01-14 11:26:54.985447+0100 [1299:350390] [error] error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _exportFinishedWithResult:exporter:](1163): : Export failed with error: The API documentation - https://developer.apple.com/library/archive/documentation/DataManagement/Conceptual/CloudKitWebServicesReference/ErrorCodes.html#//apple_ref/doc/uid/TP40015240-CH4-SW1 says 503 means interal server error (try again later) and also says that for throttling the status code would be 429, so I guess it's not rate limiting? I only found that there is a rate limit of 40 requests/second, but since CoreData is doing batch ins
0
0
690
Jan ’21
Core Data Error - "NSCocoaErrorDomain" - code: 134060
Hi, I am implementing the synchronisation of SwiftData with CloudKit as described in the Apple Documentation titled - Syncing model data across a person’s devices. My app runs fine on iPhone without activating CloudKit under Signing and Capabilities option. But when activated, I get a CoreData error with a code: 134060. My app is in development stage. The following is the code snippet for your reference taken from the main structure adopting the App protocol. init() { do { #if DEBUG let schema = Schema([ Debit.self, Credit.self, ]) let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false) // Use an autorelease pool to make sure Swift deallocates the persistent // container before setting up the SwiftData stack. try autoreleasepool { let desc = NSPersistentStoreDescription(url: modelConfiguration.url) let opts = NSPersistentCloudKitContainerOptions(containerIdentifier: iCloud.com.sureshco.MyFirstApp) desc.cloudKitContainerOptions = opts // Load the store synchronously so it compl
0
0
556
Nov ’24
Using Core Data With CloudKit
Hi, I have NSPersistentCloudKitContainer and everything is great until I faced the issue after a while of using it. It takes so long to sync because its loading all the changes that was done on the object and doesn't just fetch the latest values of the object. My solution now is to manually fetch CKRecords to see if there is something or not. If so I'm displaying Loading while CoreData and CloudKit find their way to sync. Thanks
Replies
0
Boosts
0
Views
567
Activity
Apr ’21
Implementing an iCloud on off button in SwiftUI results in crash
I've added iCloud into my SwiftUI app and everything seems to be working great, however I need to implement an on off toggle for it. After searching, I found a couple forums posts that suggested to re-create the container when icloud is toggled on off. Here's the code: lazy var persistentContainer: NSPersistentContainer = { ttreturn setupContainer() }() /* This is called when the iCloud setting is turned on and off */ func refreshCoreDataContainer() { tt/* Save changes before reloading */ tttry? self.persistentContainer.viewContext.save() tt/* Reload the container */ ttself.persistentContainer = self.setupContainer() } private func setupContainer() -> NSPersistentContainer { ttlet useCloudSync = UserSettings.shared.enableiCloudSync ttlet container: NSPersistentContainer! tt/* Use the icloud container if the user enables icloud, otherwise use the regular container */ ttif useCloudSync { ttttcontainer = NSPersistentCloudKitContainer(name: App) tt} else { ttttcontainer = NSPersistentContainer(name: A
Replies
0
Boosts
0
Views
1.1k
Activity
Nov ’20
CloudKit Synchronized "User Defaults"
I have a CoreData-based application, set up with a private CloudKit container and using NSPersistentCloudKitContainer. However, I need additional CloudKit-synchronized data that lives in this container, but not as part of a CoreData scheme. (I.e., I need to read/write some data to the CloudKit container BEFORE initializing the NSPersistentCloudKitContainer. (1) Is this possible? [I'm assuming that the answer is YES.] (2) Since I'm a complete neophyte with CloudKit, can you give me some guidance as to how to set this all up? One way to think about what I want to do is to create a cloud-synchronized UserDefaults that provides consistent default data to all of a user's devices.
Replies
0
Boosts
0
Views
913
Activity
Jun ’21
Changing relationship delete rule & CloudKit
Hi, any side effect to be aware of when changing a core data relationship delete rule from Null to Cascade? I NSPersistentCloudKitContainer to handle CloudKit sync in case that's relevant. It doesn't look like any migration is required, and the cloudkit schema doesn't change so it seems there's nothing to do on the cloudkit-side either. However I'd prefer to double check to avoid making false assumptions. I wasn't able to find any documentation on that particular point so if someone can shade some light on how things work under the hood that would be appreciated. Thanks!
Replies
0
Boosts
0
Views
918
Activity
Jun ’22
NSPersistentCloudKitContainer: Cocoa error 134420
Some of my users are experiencing synchronization issues when using the NSPersistentCloudKitContainer in CoreData. This error only occurs in Apple Watch so far. I can not find any documents about this error. Does anyone know what this error code means?
Replies
0
Boosts
0
Views
557
Activity
Jun ’22
CoreData & CloudKit toggle iCloud sync (enable/disable)
I want to give the user the option to toggle iCloud sync on and off. So I'm switching between NSPersistentCloudKitContainer and NSPersistenttContainer But... When I switch off the CloudKit synchronization and update the container, the sync is still active. After restarting the app manually the sync is deactivated. This is the same problem some people are describing in the comments here... https://stackoverflow.com/questions/65355720/coredatacloudkit-on-off-icloud-sync-toggle I wasn't able to find a solution. Here is my code: MyApp.swift @main struct MyApp: App { @StateObject private var persistenceContainer = PersistenceController.shared var body: some Scene { WindowGroup { ContentView() .environmentObject(CoreBluetoothViewModel()) .environment(.managedObjectContext, persistenceContainer.container.viewContext) } } } PersistenceController import CoreData class PersistenceController: ObservableObject{ static let shared = PersistenceController() lazy var container: NSPersistentContainer = { setupContain
Replies
0
Boosts
0
Views
1.1k
Activity
Feb ’23
NSPersistentCloudKitContainer stop sync when CKErrorDomain 12 error occurred
My app uses NSPersistentCloudKitContainer to implement Coredata and iCloud synchronization data Recently, I received feedback from online users about data synchronization errors, and the error code is CKErrorDomain 12 . In the App, I use NSPersistentCloudKitContainer.eventChangedNotification to monitor the synchronization status, the following is the specific code NotificationCenter.default.publisher(for: NSPersistentCloudKitContainer.eventChangedNotification) .sink(receiveValue: { notification in if let cloudEvent = notification.userInfo?[NSPersistentCloudKitContainer.eventNotificationUserInfoKey] as? NSPersistentCloudKitContainer.Event { let event = SyncEvent(from: cloudEvent) } }) .store(in: &disposables) When the user feedbacks that the data cannot be synchronized, it can be seen from the above code that an error occurred when CoreData + iCloud was exporting data. At the same time, cloudKitEvent.error does not contain any error information, only CKErrorDomain 12 this information, I don’t know
Replies
0
Boosts
0
Views
1.2k
Activity
Apr ’23
When using NSPersistentCloudKitContainer, should we prune NSPersistentHistory?
The Apple Demo, which is very thorough, doesn't prune persistent history?And the Forum Thread seems to suggest that persistent history is integral to how NSPersistentCloudKitContainer works.Are we supposed to explicitly prune persistent history ourselves or is it handled for us by NSPersistentCloudKitContainer?Apple Demo: https://developer.apple.com/documentation/coredata/synchronizing_a_local_store_to_the_cloudForum Thread: https://forums.developer.apple.com/message/373336#373336
Replies
0
Boosts
0
Views
573
Activity
Feb ’20
Do unique constraints work on an NSPersistentCloudKitContainer?
The documentation - https://developer.apple.com/documentation/coredata/mirroring_a_core_data_store_with_cloudkit/creating_a_core_data_model_for_cloudkit for Creating a Core Data Model for CloudKit states that Unique constraints aren’t supported. but I've tried to set one up and it seems to be working fine (locally, I haven't tried syncing yet) on Xcode 11.5 & iOS 13.5. If I'm not mistaken, when NSPersistentCloudKitContainer was first introduced Xcode displayed an error if you tried to add a constraint to an Entity, but that doesn't seem to happen anymore. Has this restriction been lifted or do I just remember it incorrectly and it never showed any errors? If the restriction has not been lifted, does anyone know how to make sure that Entities are not duplicated? It'll be easy to add a cleanup operation after every sync, but so far I am not aware of any way to know when the sync has fully finished - https://developer.apple.com/forums/thread/652607. Thanks.
Replies
0
Boosts
0
Views
690
Activity
Jul ’20
How to get iCloud Notifications for Extra functions?
For the past two days I've been trying to figure out how to get the notification when the iCloud data has changed. I use a NSPersistentCloudKitContainer and am able to see my changes from one device in another. I just added local notifications to my app and I save the notification to an iCloud entity whenever a user sets it.Since I'm adding this notification in iCloud, a remote notification with iCloud changes will be sent to the users devices with iCloud enabled. What I would like to do is when the device gets this notification, read from the new data and set a local notification on the current device if a notification entity is found.But I can not seem to figure out how to intercept this change notification. I tried using didReceive and didReceiveRemoteNotification from the AppDelegate, but none of these functions fired when the device received the iCloud changes. In the Xcode console I can see that the device is notified with the data.How can I intercept the background notification that contains t
Replies
0
Boosts
0
Views
936
Activity
Apr ’20
How to import data from iPhone system File to the app other than the app's iCloud at first through Share Extension?
The local data in iPhone system File is inserted to the app core data through Share Extension. The app uses NSPersistentCloudKitContainer to sync core data. But when importing local data from iPhone local File, the data always go to iCloud of the app at first and then syncing data to the app from iCloud. This leads to that the app cannot import data when the iCloud drive is closed or the iCloud is full. Is there any way to import data to the app other than to the app's iCloud at first?
Replies
0
Boosts
0
Views
879
Activity
Aug ’20
NSPersistentCloudKitContainer - CloudKit Error 503 after inserting batch of elements
When I sync my large Core Data database with NSPersistentCloudKitContainer, inserting new rows works well for up to 10k rows. (in batches of ~400 inserts) After that, CloudKit receives a 503 Service Unavailable error with a timeout. Here's the log: CoreData: CloudKit: CoreData+CloudKit: -[PFCloudKitExporter exportIfNecessary]_block_invoke_2(153): : Found 22161 objects needing export. 2021-01-14 11:26:54.985447+0100 [1299:350390] [error] error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _exportFinishedWithResult:exporter:](1163): : Export failed with error: The API documentation - https://developer.apple.com/library/archive/documentation/DataManagement/Conceptual/CloudKitWebServicesReference/ErrorCodes.html#//apple_ref/doc/uid/TP40015240-CH4-SW1 says 503 means interal server error (try again later) and also says that for throttling the status code would be 429, so I guess it's not rate limiting? I only found that there is a rate limit of 40 requests/second, but since CoreData is doing batch ins
Replies
0
Boosts
0
Views
690
Activity
Jan ’21
TN3164: Debugging the synchronization of NSPersistentCloudKitContainer
Identify and resolve synchronization issues when working with NSPersistentCloudKitContainer. View Technote TN3164 >
Replies
0
Boosts
0
Views
732
Activity
Feb ’24
TN3163: Understanding the synchronization of NSPersistentCloudKitContainer
Explore the details inside the synchronization of NSPersistentCloudKitContainer by capturing and analyzing a sysdiagnose. View Technote TN3163 >
Replies
0
Boosts
0
Views
682
Activity
Feb ’24
Core Data Error - "NSCocoaErrorDomain" - code: 134060
Hi, I am implementing the synchronisation of SwiftData with CloudKit as described in the Apple Documentation titled - Syncing model data across a person’s devices. My app runs fine on iPhone without activating CloudKit under Signing and Capabilities option. But when activated, I get a CoreData error with a code: 134060. My app is in development stage. The following is the code snippet for your reference taken from the main structure adopting the App protocol. init() { do { #if DEBUG let schema = Schema([ Debit.self, Credit.self, ]) let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false) // Use an autorelease pool to make sure Swift deallocates the persistent // container before setting up the SwiftData stack. try autoreleasepool { let desc = NSPersistentStoreDescription(url: modelConfiguration.url) let opts = NSPersistentCloudKitContainerOptions(containerIdentifier: iCloud.com.sureshco.MyFirstApp) desc.cloudKitContainerOptions = opts // Load the store synchronously so it compl
Replies
0
Boosts
0
Views
556
Activity
Nov ’24