2014-11-25 14 views
5

Za każdym razem, gdy próbuję zarejestrować subskrypcję, pojawia się błąd: 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.*.*". A kiedy próbuję uzyskać wszystkie subskrypcje znajdujące się na serwerze, nic nie otrzymuję.Nie można zarejestrować subskrypcji; CKError 0x19030580, "Usługa niedostępna"

Dlaczego otrzymuję komunikat CKError 0x19030580? Dlaczego nie mogę pobrać subskrypcji? Jak mam je naprawić?


Kod:

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

Ludzie są jasni: * "... gdy próbuję uzyskać wszystkie subskrypcje, które są na serwerze, nie otrzymuję nic" * - czy to oznacza, że ​​się to udaje, ale nic nie wraca? Czy może się nie powieść z błędem? – jww

Odpowiedz

7

mam podobny problem. Jedna z moich nagrań wciąż odmawiała przesyłania. Wystąpił błąd "odmówił zainstalowania starszego schematu". Po pierwsze, pomyślałem, że jest w moim kodzie, 2-3 dni próbuję go rozwiązać, ale nic.

Następnie próbuję zresetować kontener rozwojowy iCloud (za pomocą pulpitu iCloud). Zrób ponownie rekordy. Następnie spróbuj uruchomić ponownie. I działa.

Myślę, że to błąd po stronie Apple. Przy okazji, moje zmienione rekordy nie są objęte subskrypcją. Ale możesz spróbować.

Wskazówki, możesz sprawdzić, czy Twoja aplikacja została już subskrybowana przed subskrypcją. Zapisuję identyfikator subskrypcji podczas subskrybowania metody wywołanej w NSUserDefaults. Następnie usuwam go, jeśli wywołano metodę unsubscribe.

+0

tak to działa! Dziękuję Ci! – shle2821

1

Miałem ten sam błąd "odmówił instalacji starszego schematu", ale z prostymi zapisami, a nie subskrypcjami. W moim przypadku pisałem rekord z polem, który nie istniał. Teraz myślałem, że gdy w środowisku programistycznym schemat automatycznie dodaje nowe typy pól - ale w każdym razie, gdy dodałem go ręcznie przy pomocy pulpitu, zadziałało.

0

Usługa CloudKit wysyła CKError.serviceUnavailable, gdy użytkownik wyłączył usługę iCloud Drive na swoim urządzeniu.

+0

Mam iCloud Drive włączony i nadal otrzymuję ten błąd. –

Powiązane problemy