Иногда подписка на CloudKit не работает

Если я попытаюсь подписаться на 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]; } }]; 

Иногда я получаю эту ошибку:

CKError 0x17558460: «Отклоненный сервер запрос» (15/2000); server message = "Внутренняя ошибка сервера"; uuid = B89DE7A4-9D22-42BC-9CD4-4330F3FE04EF; контейнер ID = "iCloud.com.app.testApp"

или

CKError 0x14fb3510: «Сервис недоступен» (6/2022); server message = "не удалось установить схему, CAS не удалось"; uuid = F562D1AD-B40E-4842-A5EA-2A5F800C18F2; контейнер ID = "iCloud.com.app.testApp"

Кто-нибудь знает, как это исправить? Могу ли я что-то сделать с моим кодом? Является ли эта проблема Apple, и я ничего не могу сделать? Благодарю.

Я недавно получил аналогичную ошибку и смог ее решить, переключив CloudKit в возможности проекта. Как только я сброшу это разрешение CloudKit, все, казалось, работало нормально.

У меня была точно такая же проблема. Я закончил тем, что полностью менял контейнеры (цель проекта goo -> Capabilities -> указать пользовательские контейнеры -> ввести новый идентификатор контейнера). Сработало отлично.

У меня была точная ошибка: «Запрос отказа от сервера» (15/2000); server message = "Внутренняя ошибка сервера" в результате CKModifySubscriptionsOperation.

Странная вещь, что тестирование подписки с iPad было ОК. но подписка с iPhone не сработала.

Исправлено изменение формата NSPredicate:

1- старый формат (не работает)

1-1:

let predicate = NSPredicate (формат: "rate> = 0")

1-2:

пусть х = 0 как! NSNumber

let predicate = NSPredicate (формат: "rate> =", x)

2- Новый предикатный формат (исправлена ​​проблема):

let predicate = NSPredicate (формат: "rate> =", NSNumber (integerLiteral: 0))

Interesting Posts
Давайте будем гением компьютера.