Post

Replies

Boosts

Views

Activity

CoreData loadPersistentStores error
Recently I update my App a new version in App Store . What I do is only add a new Entity and add one new column to an existing Entity.Then over than 200 users run into crash when they update(Not all users run into this). This is how I create Core Data Stack. class AppGroupLocalPersistentContainer: NSPersistentContainer { &#9;&#9;open override class func defaultDirectoryURL() -> URL { &#9;&#9;&#9;&#9;let storeURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.mindo") &#9;&#9;&#9;&#9;return storeURL! &#9;&#9;} } extension NSPersistentContainer { &#9;&#9;var url: URL? { &#9;&#9;&#9;&#9;let url: URL? = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.mindo") &#9;&#9;&#9;&#9;return url?.appendingPathComponent("Mindo.sqlite") &#9;&#9;} } public class LocalCoreData { &#9;&#9;deinit { &#9;&#9;&#9;&#9;Logger.info("LocalCoreData deinit") &#9;&#9;} &#9;&#9;lazy var localContext: NSManagedObjectContext = { &#9;&#9;&#9;&#9;let context = localContainer.viewContext &#9;&#9;&#9;&#9;context.mergePolicy = NSMergePolicy(merge: NSMergePolicyType.mergeByPropertyObjectTrumpMergePolicyType) &#9;&#9;&#9;&#9;context.automaticallyMergesChangesFromParent = true &#9;&#9;&#9;&#9;context.stalenessInterval = 0 &#9;&#9;&#9;&#9;return context &#9;&#9;}() &#9;&#9;lazy var localContainer: NSPersistentContainer = { &#9;&#9;&#9;&#9;let container = AppGroupLocalPersistentContainer(name: "Mindo", managedObjectModel: NSManagedObjectModel.mergedModel(from: [Bundle.main])!) &#9;&#9;&#9;&#9;guard let description = container.persistentStoreDescriptions.first else { &#9;&#9;&#9;&#9;&#9;&#9;fatalError("Failed to retrieve a persistent store description.") &#9;&#9;&#9;&#9;} &#9;&#9;&#9;&#9;description.setOption(true as NSNumber, forKey: NSPersistentHistoryTrackingKey) &#9;&#9;&#9;&#9;description.setOption(false as NSNumber, forKey: NSPersistentStoreRemoteChangeNotificationPostOptionKey) &#9;&#9;&#9;&#9;description.shouldMigrateStoreAutomatically = true &#9;&#9;&#9;&#9;description.shouldInferMappingModelAutomatically = true &#9;&#9;&#9;&#9; &#9;&#9;&#9;&#9;container.loadPersistentStores(completionHandler: { _, error in &#9;&#9;&#9;&#9;&#9;&#9;if let error = error as NSError? { &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;fatalError("Unresolved error \(error), \(error.userInfo)") &#9;&#9;&#9;&#9;&#9;&#9;} &#9;&#9;&#9;&#9;}) &#9;&#9;&#9;&#9;return container &#9;&#9;}() } And here is part of crash log I copy from Xcode Organizer. Thread 0 name: Thread 0 Crashed: 0&#9; libswiftCore.dylib&#9;&#9;&#9;&#9;&#9;&#9; 0x0000000187d45cb4 _assertionFailure(_:_:file:line:flags:) + 492 (AssertCommon.swift:132) 1&#9; libswiftCore.dylib&#9;&#9;&#9;&#9;&#9;&#9; 0x0000000187d45cb4 _assertionFailure(_:_:file:line:flags:) + 492 (AssertCommon.swift:132) 2&#9; Mindo&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x0000000104245088 closure #1 in closure #1 in LocalCoreData.localContainer.getter + 604 (LocalCoreData.swift:39) 3&#9; Mindo&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x00000001042449a0 thunk for @escaping @callee_guaranteed (@guaranteed NSPersistentStoreDescription, @guaranteed Error?) -> () + 64 (<compiler-generated>:0) 4&#9; CoreData&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x000000018a3da570 -[NSPersistentStoreCoordinator _doAddPersistentStoreWithDescription:privateCopy:completeOnMainThread:withHandler:] + 1008 (NSPersistentStoreCoordinator.m:1461) 5&#9; CoreData&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x000000018a28146c -[NSPersistentStoreCoordinator addPersistentStoreWithDescription:completionHandler:] + 268 (NSPersistentStoreCoordinator.m:1507) 6&#9; CoreData&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x000000018a4ae880 -[NSPersistentContainer _loadStoreDescriptions:withCompletionHandler:] + 232 (NSPersistentContainer.m:284) 7&#9; CoreData&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x000000018a289658 -[NSPersistentContainer loadPersistentStoresWithCompletionHandler:] + 316 (NSPersistentContainer.m:271) 8&#9; Mindo&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x0000000104244d10 closure #1 in LocalCoreData.localContainer.getter + 848 (LocalCoreData.swift:36) I know the error is occur in this line :LocalCoreData.swift:39 fatalError("Unresolved error \(error), \(error.userInfo)") But I have no idea how to fix this.
6
5
6.0k
Dec ’20