Ошибка iOS15 B4 NSPersistentCloudKitContainer «Учетная запись временно недоступна»

#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 работает, но позже появляется то же сообщение об ошибке.