← 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.
thiennc-tesoglobal/ios-skills · ★ 3 · DevOps & Infrastructure · score 66
Install: claude install-skill thiennc-tesoglobal/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. ## Contents - [Container and Database Setup](#container-and-database-setup) - [Workflow](#workflow) - [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) ## Workflow 1. Choose the database scope and sync owner; verify capability, container, account status, schema, and environment before writing records. 2. Make a local change durable, enqueue it, then let subscriptions or `CKSyncEngine` drive remote work rather than polling. 3. Persist change tokens or sync-engine state after successful application. 4. Test offline edits, partial failure, rate limiting, token expiry, conflict, account loss, zone deletion, and relaunch. 5. On failure, classify the `CKError`, restore the affected fixture or queue item, apply the documented retry/reset/merge action, and rerun the same scenario. Neve