Post

Replies

Boosts

Views

Activity

Reply to CKError 429 from CloudKit, using CKDiscoverAllUserIdentitiesOperation
if there is a question here, the answer is to do what it says "Retry after X seconds". The actual time is included in the info dictionary of the error. Here's a snippet from CloudCore, an open-source sync engine, that shows how it retrieves this info… private func handle(error: Error, …) { guard let cloudError = error as? CKError else { … return } switch cloudError.code { case .requestRateLimited, .zoneBusy, .serviceUnavailable: if let number = cloudError.userInfo[CKErrorRetryAfterKey] as? NSNumber { let pauseUntil = Date(timeIntervalSinceNow: number.doubleValue) } … } }
Dec ’22
Reply to Current CloudKit pricing?
I, too, have noticed that the pricing information seems to have been scrubbed from Apple's websites. Looking at my existing containers, it appears the public storage limits fall and rise based on active users. In the CloudKit dashboard, head over to Telemetry, Usage to see for yourself.
Sep ’22
Reply to How to read/write to App1’s database from App2?
use NSPersistentCloudKitContainerOptions to configure the container identifier to sync with class PersistenceApp1: ObservableObject { static let shared = PersistenceApp1() let container: NSPersistentCloudKitContainer init(…) { container = NSPersistentCloudKitContainer(name: “App1”) let store = NSPersistentStoreDescription() store.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.com.example.App1") container = [store] container.loadPersistentStores… } … } Also, make sure to add both container identifiers to your app's Signing & Capabilities > iCloud > Containers list
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Sep ’22