每当我尝试注册订阅时,都会收到错误: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;
}
}];
答案 0 :(得分:7)
我有类似的问题。我的一个记录保持拒绝上传。类似的“拒绝安装旧架构”错误出现了。首先,我认为这是在我的代码中,我尝试解决它的2-3天,但没有。
然后我尝试重置iCloud开发容器(通过iCloud仪表板)。再次制作记录。然后尝试再次运行它。它有效。
我认为这是Apple方面的错误。顺便说一句,我受影响的记录虽然没有订阅。但你可能想尝试一下。
提示,您可能需要先检查您的应用是否已在订阅前先订阅。我在NSUserDefaults中调用subscribe方法时保存subscriptionID。如果取消订阅方法,我将删除它。
答案 1 :(得分:0)
当用户在其设备上禁用了iCloud Drive时,CloudKit会发送CKError.serviceUnavailable。