← ClaudeAtlas

cloudkitlisted

Implement, review, or improve CloudKit and iCloud sync in iOS/macOS apps. Use when working with CKContainer, CKRecord, CKQuery, CKSubscription, CKSyncEngine, CKShare, NSUbiquitousKeyValueStore, or iCloud Drive file coordination; when syncing SwiftData models via ModelConfiguration with cloudKitDatabase; when handling CKError codes for conflict resolution, network failures, or quota limits; or when checking iCloud account status before performing sync operations.
dpearson2699/swift-ios-skills · ★ 730 · DevOps & Infrastructure · score 80
Install: claude install-skill dpearson2699/swift-ios-skills
# CloudKit Sync data across devices using CloudKit, iCloud key-value storage, and iCloud Drive. Covers container setup, record CRUD, queries, subscriptions, CKSyncEngine, SwiftData integration, conflict resolution, and error handling. Targets iOS 26+ with Swift 6.3; older availability noted where relevant. ## Contents - [Container and Database Setup](#container-and-database-setup) - [CKRecord CRUD](#ckrecord-crud) - [CKQuery](#ckquery) - [CKSubscription](#cksubscription) - [CKSyncEngine (iOS 17+)](#cksyncengine-ios-17) - [SwiftData + CloudKit](#swiftdata--cloudkit) - [NSUbiquitousKeyValueStore](#nsubiquitouskeyvaluestore) - [iCloud Drive File Sync](#icloud-drive-file-sync) - [Account Status and Error Handling](#account-status-and-error-handling) - [Conflict Resolution](#conflict-resolution) - [Common Mistakes](#common-mistakes) - [Review Checklist](#review-checklist) - [References](#references) ## Container and Database Setup Enable iCloud + CloudKit in Signing & Capabilities. A container provides three databases: | Database | Scope | Requires iCloud | Storage Quota | |----------|-------|-----------------|---------------| | Public | All users | Read: No, Write: Yes | App quota | | Private | Current user | Yes | User quota | | Shared | Shared records | Yes | Owner quota | ```swift import CloudKit let container = CKContainer.default() // Or named: CKContainer(identifier: "iCloud.com.example.app") let publicDB = container.publicCloudDatabase let privateDB = contai