Не могу зарегистрировать подписку; CKError 0x19030580, "Сервис недоступен"

Каждый раз, когда я пытаюсь зарегистрировать подписку, я получаю сообщение об ошибке: CKError 0x19030580: "Service Unavailable" (6/2022); server message = "refused to install an older schema (68f93710-7456-11e4-b13e-008cfac0c800) since we already have 693359e0-7456-11e4-8e42-008cfac03128"; uuid = 42F42F6B-98FB-4774-B735-271C1AEF07F1; container ID = "iCloud.com.*.*", И когда я пытаюсь получить все подписки, которые находятся на сервере, я ничего не получаю.

Почему я получаю CKError 0x19030580? Почему я не могу получить подписку? Как мне их починить?


Код:

    NSPredicate *truePredicate = [NSPredicate predicateWithValue:YES];
    CKSubscription *itemSubscription = [[CKSubscription alloc] initWithRecordType:ItemAssetRecordType
                                                                        predicate:truePredicate
                                                                          options:CKSubscriptionOptionsFiresOnRecordCreation | CKSubscriptionOptionsFiresOnRecordUpdate];


    CKNotificationInfo *notification = [[CKNotificationInfo alloc] init];
    notification.shouldSendContentAvailable = YES;

    notification.alertLocalizationKey = @"New Item available.";
    notification.shouldBadge = NO;

    itemSubscription.notificationInfo = notification;

    [self.privateDatabase saveSubscription:itemSubscription completionHandler:^(CKSubscription *subscription, NSError *error) {
        if (error) {

        } else {
            self.subscribedItems = subscription.subscriptionID;
        }
    }];

3 ответа

У меня похожая проблема. Один из моих записей отказался загружать. Появилась похожая ошибка "отказался установить старую схему". Сначала я подумал, что это в моем коде, 2-3 дня пытаюсь решить, но ничего.

Затем я пытаюсь сбросить контейнер разработки iCloud (через панель управления iCloud). Сделайте снова записи. Затем попробуйте запустить его снова. И это работает.

Я думаю, что это ошибка на стороне Apple. Кстати, мои пострадавшие записи не подписка, хотя. Но вы можете попробовать это.

Советы, вы можете проверить, если ваше приложение уже подписано, прежде чем подписаться. Я сохраняю subscriptionID, в то время как метод подписки вызывается в NSUserDefaults. Затем я удаляю его, если вызывается метод отписки.

У меня была та же самая ошибка "отказался установить старую схему", но с простыми записями, а не подписками. В моем случае я писал запись с несуществующим полем. Теперь я подумал, что в среде разработки схема автоматически добавляет новые типы полей - но в любом случае, когда я добавлял ее вручную с помощью панели мониторинга, она работала.

CloudKit отправляет CKError.serviceUnavailable, когда пользователь отключил iCloud Drive на своем устройстве.

Другие вопросы по тегам