diff --git a/PlantGuide/Data/DataSources/Local/CoreData/CoreDataStack.swift b/PlantGuide/Data/DataSources/Local/CoreData/CoreDataStack.swift index 31af006..f8b79ae 100644 --- a/PlantGuide/Data/DataSources/Local/CoreData/CoreDataStack.swift +++ b/PlantGuide/Data/DataSources/Local/CoreData/CoreDataStack.swift @@ -6,6 +6,7 @@ // for plant identification iOS app. // +import CloudKit import CoreData import Foundation @@ -105,7 +106,7 @@ final class CoreDataStack: CoreDataStackProtocol, @unchecked Sendable { // - The coreDataQueue serializes any direct container operations /// The persistent container managing the Core Data stack - private let persistentContainer: NSPersistentContainer + private let persistentContainer: NSPersistentCloudKitContainer /// Serial queue for thread-safe operations private let coreDataQueue = DispatchQueue(label: "com.plantguide.coredata", qos: .userInitiated) @@ -142,8 +143,8 @@ final class CoreDataStack: CoreDataStackProtocol, @unchecked Sendable { private static func createPersistentContainer( modelName: String, migrationConfig: MigrationConfiguration - ) -> NSPersistentContainer { - let container = NSPersistentContainer(name: modelName) + ) -> NSPersistentCloudKitContainer { + let container = NSPersistentCloudKitContainer(name: modelName) // Configure store description with migration options let storeDescription = container.persistentStoreDescriptions.first @@ -154,6 +155,11 @@ final class CoreDataStack: CoreDataStackProtocol, @unchecked Sendable { storeDescription?.setOption(true as NSNumber, forKey: NSPersistentHistoryTrackingKey) storeDescription?.setOption(true as NSNumber, forKey: NSPersistentStoreRemoteChangeNotificationPostOptionKey) + // Configure CloudKit container + storeDescription?.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions( + containerIdentifier: "iCloud.com.t-t.PlantGuide" + ) + container.loadPersistentStores { storeDescription, error in if let error = error as NSError? { // Log the error - in production, consider recovery strategies diff --git a/PlantGuide/Data/DataSources/Local/CoreData/PlantGuideModel.xcdatamodeld/PlantGuideModel.xcdatamodel/contents b/PlantGuide/Data/DataSources/Local/CoreData/PlantGuideModel.xcdatamodeld/PlantGuideModel.xcdatamodel/contents index 611bf72..f9058ee 100644 --- a/PlantGuide/Data/DataSources/Local/CoreData/PlantGuideModel.xcdatamodeld/PlantGuideModel.xcdatamodel/contents +++ b/PlantGuide/Data/DataSources/Local/CoreData/PlantGuideModel.xcdatamodeld/PlantGuideModel.xcdatamodel/contents @@ -19,11 +19,6 @@ - - - - - @@ -34,11 +29,6 @@ - - - - - @@ -50,11 +40,6 @@ - - - - - @@ -64,11 +49,6 @@ - - - - - @@ -86,10 +66,5 @@ - - - - - diff --git a/PlantGuide/PlantGuide.entitlements b/PlantGuide/PlantGuide.entitlements index 9e0940e..bac9011 100644 --- a/PlantGuide/PlantGuide.entitlements +++ b/PlantGuide/PlantGuide.entitlements @@ -5,7 +5,9 @@ aps-environment development com.apple.developer.icloud-container-identifiers - + + iCloud.com.t-t.PlantGuide + com.apple.developer.icloud-services CloudKit