无法注册订阅; CKError 0x19030580,“服务不可用”

时间:2014-11-25 08:36:38

标签: ios8 subscriptions cloudkit

每当我尝试注册订阅时,都会收到错误: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;
        }
    }];

2 个答案:

答案 0 :(得分:7)

我有类似的问题。我的一个记录保持拒绝上传。类似的“拒绝安装旧架构”错误出现了。首先,我认为这是在我的代码中,我尝试解决它的2-3天,但没有。

然后我尝试重置iCloud开发容器(通过iCloud仪表板)。再次制作记录。然后尝试再次运行它。它有效。

我认为这是Apple方面的错误。顺便说一句,我受影响的记录虽然没有订阅。但你可能想尝试一下。

提示,您可能需要先检查您的应用是否已在订阅前先订阅。我在NSUserDefaults中调用subscribe方法时保存subscriptionID。如果取消订阅方法,我将删除它。

答案 1 :(得分:0)

当用户在其设备上禁用了iCloud Drive时,CloudKit会发送CKError.serviceUnavailable。