CloudKit订阅有时不起作用

Mik*_*l S 9 ios ios8 cloudkit cksubscription

如果我尝试使用以下代码订阅CloudKit:

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


    CKNotificationInfo *notification = [[CKNotificationInfo alloc] init];
    notification.alertBody = @"Item Added/Updated/Deleted!";
    itemSubscription.notificationInfo = notification;

    [self.publicDatabase saveSubscription:itemSubscription completionHandler:^(CKSubscription *subscription, NSError *error) {
        if (error) {
            // In your app, handle this error appropriately.
            NSLog(@"An error occured in %@: %@", NSStringFromSelector(_cmd), error);
        } else {

            NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
            [defaults setObject:subscription.subscriptionID forKey:kSubscriptionID];
            [defaults synchronize];
        }
    }];
Run Code Online (Sandbox Code Playgroud)

我有时会收到此错误:

CKError 0x17558460:"服务器拒绝请求"(15/2000); server message ="内部服务器错误"; uuid = B89DE7A4-9D22-42BC-9CD4-4330F3FE04EF; container ID ="iCloud.com.app.testApp"

要么

CKError 0x14fb3510:"服务不可用"(6/2022); server message ="安装架构失败,CAS失败"; uuid = F562D1AD-B40E-4842-A5EA-2A5F800C18F2; container ID ="iCloud.com.app.testApp"

有谁知道如何解决这个问题?我可以用我的代码做点什么吗?这是Apple的问题,我什么都做不了?谢谢.

nin*_*eer 1

我有同样的问题。我最终完全更改了容器(转到项目目标 -> 功能 -> 指定自定义容器 -> 输入新的容器 ID)。之后就完美运行了。

  • 我不确定你在问什么。 (9认同)