无法初始化 CloudKit 架构,因为协调器中没有存储配置为使用 CloudKit
Posted
技术标签:
【中文标题】无法初始化 CloudKit 架构,因为协调器中没有存储配置为使用 CloudKit【英文标题】:Couldn't initialize CloudKit schema because no stores in the coordinator are configured to use CloudKit 【发布时间】:2021-03-02 05:55:52 【问题描述】:我在尝试初始化 Cloudkit schema 时遇到此错误:
Error Domain=NSCocoaErrorDomain Code=134060 "A Core Data error occurred." UserInfo=NSLocalizedFailureReason=Couldn't initialize CloudKit schema because no stores in the coordinator are configured to use CloudKit: ()
这是我的代码:
private lazy var persistentContainer: NSPersistentContainer =
let container = NSPersistentCloudKitContainer(name: self.objectModelName)
// Create a store description for a CloudKit-backed local store
let cloudStoreLocation = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("iCloud.sqlite")
let cloudStoreDescription = NSPersistentStoreDescription(url: cloudStoreLocation)
cloudStoreDescription.configuration = "iCloud"
// Set the container options on the cloud store
cloudStoreDescription.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.myname.app")
// Update the container's list of store descriptions
container.persistentStoreDescriptions = [
cloudStoreDescription
]
do
try container.initializeCloudKitSchema()
catch
print(error)
container.loadPersistentStores(completionHandler: (storeDescription, error) in
if let error = error as NSError?
fatalError("Unresolved error \(error), \(error.userInfo)")
)
return container
()
这是我的:project configuration
这是我的:data model schema
谁能帮我找出我做错了什么?
谢谢!
【问题讨论】:
【参考方案1】:看在上帝的份上,我只需要使用我的 AppleID 登录 iPhone 的“设置”,并在同一设备上的Settings > My Name > iCloud
中启用 iCloud Drive。
Apple 的开发者文档教程中并未明确提及这一点。
【讨论】:
【参考方案2】:以后可能会遇到这个问题。我遇到了同样的错误,问题与上面的示例代码相同。
我打过电话
container.initializeCloudKitSchema()
打电话之前
container.loadPersistentStores
您需要在调用 container.loadPersistentStores 之后调用 container.initializeCloudKitSchema
【讨论】:
以上是关于无法初始化 CloudKit 架构,因为协调器中没有存储配置为使用 CloudKit的主要内容,如果未能解决你的问题,请参考以下文章
将已删除的 CKRecord 与 CoreData NSManagedObject 协调一致
使用 NSPersistentCloudKitContainer 时,CoreData 架构更改未部署到 CloudKit