5

我在 iOS15 beta 4 上使用 NSPersistentCloudKitContainer 跨设备同步核心数据。在设备上启动并登录 iCloud 时,我在日志中收到以下错误:

<NSCloudKitMirroringResult:0x28167ae60> 成功:0 madeChanges:0 错误:<CKError 0x2818a94d0:“帐户暂时不可用”(1028/2011);“由于身份验证令牌错误或丢失,帐户暂时不可用”>

我有以下代码:

init(inMemory: Bool = false) {
        container = NSPersistentCloudKitContainer(name: "AppName")
        if inMemory {
            let storeDescription = NSPersistentStoreDescription(url: URL(fileURLWithPath: "/dev/null"))
            container.persistentStoreDescriptions = [storeDescription]
        } else {
            let storeURL = URL.storeURL(for: "my.app.group", databaseName: "AppName")
            let storeDescription = NSPersistentStoreDescription(url: storeURL)
            storeDescription.cloudKitContainerOptions = NSPersistentCloudKitContainerOptions(containerIdentifier: "iCloud.my.app")
            container.persistentStoreDescriptions = [storeDescription]
        }
        
        container.loadPersistentStores(completionHandler: { (storeDescription, error) in
            if let error = error as NSError? {
                fatalError("Unresolved error \(error), \(error.userInfo)")
            }
        })
    }
4

2 回答 2

4

这似乎是 beta 4 中引入的一个错误 - https://developer.apple.com/forums/thread/685857

于 2021-07-28T15:49:51.467 回答
1

正如@ryannnn 指出的那样,这似乎是一个似乎已在 beta 5 中修复的错误。我在公共 CK 数据库中遇到了类似的问题。如果我可以确认 b5 为我修复了它,我将对其进行编辑...

编辑:它确实解决了这个Account Temporarily Unavailable问题。但是,iCloud 同步仍然只发生在应用安装后的第一个会话中。再次运行它时,安装后我仍然得到<CKError 0x281fe43f0: "Server Rejected Request" (15/2027); server message = "Custom zones are not allowed in public DB"; op = *****; uuid = ***-***-***>.

于 2021-08-11T07:53:37.033 回答