#ios #swift #cloudkit #nspersistentcloudkitcontainer
Вопрос:
Я использую Nspersistentcloudkittainer в бета-версии 4 iOS15 для синхронизации основных данных между устройствами. При запуске на устройстве, вошедшем в iCloud, я получаю следующую ошибку в журналах:
<NSCloudKitMirroringResult: 0x28167ae60> успех: 0 Изменения: 0 ошибка: <NSCloudKitMirroringResult: 0x28167ae60><Ошибка CK 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)")
}
})
}
Ответ №1:
Похоже, это ошибка, введенная в бета — версии 4- https://developer.apple.com/forums/thread/685857
Ответ №2:
Как отметил @ryannnn, похоже, это ошибка, которая, похоже, исправлена в бета-версии 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 = ***-***-***>
.
Комментарии:
1. Не могли бы вы решить эту проблему ? У меня та же проблема. Сначала синхронизация iCloud работает, но позже появляется то же сообщение об ошибке.