iCloud Integration Audit
Scan your codebase for iCloud anti-patterns that cause sync failures, data conflicts, and CloudKit errors.
What It Scans
CRITICAL (Data Corruption Risk)
- Missing NSFileCoordinator – Reading/writing iCloud Drive files without coordination causes race conditions with sync
- Unsafe file access – Direct Data(contentsOf:) on iCloud URLs
HIGH (Sync Failures)
- Missing CloudKit error handling – Operations without CKError handling (quotaExceeded, serverRecordChanged, notAuthenticated)
- Missing entitlement checks – Accessing ubiquitous container without checking availability
- SwiftData + CloudKit anti-patterns – Using @Attribute(.unique) with CloudKit sync
MEDIUM (Data Loss Risk)
- Missing conflict resolution – Not handling hasUnresolvedConflicts for iCloud Drive
- Legacy CloudKit APIs – Using CKDatabase operations instead of CKSyncEngine (iOS 17+)
Usage
bash
# Run iCloud audit
/axiom:audit icloudExample Output
=== ICLOUD INTEGRATION AUDIT ===
CRITICAL Issues (Data Corruption Risk):
src/Managers/DocumentManager.swift:78
Writing to iCloud URL without coordination
Fix: Wrap in NSFileCoordinator
HIGH Issues (Sync Failures):
src/Sync/CloudKitManager.swift:123
CKDatabase.save() without error handling
Fix: Handle quotaExceeded, serverRecordChanged
Summary:
- 1 CRITICAL (data corruption risk)
- 2 HIGH (sync failures)
- 1 MEDIUM (missing conflict resolution)CloudKit Errors to Handle
All CloudKit operations should handle:
.quotaExceeded– User's iCloud storage full.networkUnavailable– No internet connection.serverRecordChanged– Conflict (concurrent modification).notAuthenticated– User signed out of iCloud
Related
- cloud-sync-diag – Sync troubleshooting
- swiftdata – SwiftData CloudKit integration