2014-11-25 12 views
5

Jedes Mal, wenn ich versuche, das Abonnement zu registrieren, erhalte ich den Fehler: 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.*.*". Und wenn ich versuche, alle Abonnements, die auf dem Server sind, zu erhalten, erhalte ich nichts.Abonnements können nicht registriert werden. CKError 0x19030580, "Service nicht verfügbar"

Warum erhalte ich CKError 0x19030580? Warum kann ich keine Abonnements abrufen? Wie soll ich sie reparieren?


Code:

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

So Leute sind klar: * "... wenn ich versuche, alle Abonnements, die auf dem Server sind, bekomme ich nichts" * - bedeutet das, es gelingt, aber Sie bekommen nichts zurück? Oder scheitert es mit einem Fehler? – jww

Antwort

7

Ich habe ähnliches Problem. Einer meiner Aufzeichnungen verweigerte den Upload. Es ist ein ähnlicher Fehler "weigerte sich, ein älteres Schema zu installieren" aufgetreten. Zuerst dachte ich, es ist in meinem Code, 2-3 Tage versuche ich es zu lösen, aber nichts.

Dann versuche ich, iCloud Development Container (über iCloud Dashboard) zurückzusetzen. Mache die Aufzeichnungen erneut. Versuchen Sie dann, es erneut auszuführen. Und es funktioniert.

Ich denke, es ist ein Fehler auf der Apple-Seite. Übrigens, meine betroffenen Aufzeichnungen sind nicht abonniert. Aber vielleicht möchtest du es versuchen.

Tipps, möchten Sie vielleicht überprüfen, ob Ihre App bereits vor dem Abonnieren bereits abonniert hat. Ich speichere subscriptionID während der subscribe-Methode, die in NSUserDefaults aufgerufen wird. Dann entferne ich es, wenn die Abmelde-Methode aufgerufen wird.

+0

yep das funktioniert! Danke! – shle2821

1

Ich hatte den gleichen "weigerte sich, ein älteres Schema zu installieren" Fehler, aber mit einfachen schreibt, nicht Abonnements. In meinem Fall schrieb ich einen Datensatz mit einem Feld, das nicht existierte. Nun dachte ich, dass das Schema in der Entwicklungsumgebung automatisch neue Feldtypen hinzugefügt hat - aber wie auch immer, als ich es manuell über das Dashboard hinzugefügt habe, funktionierte es.

0

CloudKit sendet CKError.serviceUnavailable, wenn der Benutzer iCloud Drive auf seinem Gerät deaktiviert hat.

+0

Ich habe iCloud Drive eingeschaltet und bekomme immer noch diesen Fehler. –

Verwandte Themen