2014-11-25 5 views
5

구독을 등록 할 때마다 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, "Service Unavailable"

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

사람들은 분명합니다. * "... 서버에있는 모든 구독을 얻으려고하면 아무 것도받지 못합니다."* - 성공했다는 것을 의미합니까? 아니면 오류와 함께 실패합니까? – jww

답변

7

나는 비슷한 문제를 가지고있다. 내 기록 중 하나가 업로드를 거부했습니다. 비슷한 "오래된 스키마 설치를 거부했습니다"오류가 나타났습니다. 첫째, 나는 그것이 내 코드에 있다고 생각했는데 2-3 일 동안 해결하려고했지만 아무 것도하지 않았습니다.

그런 다음 iCloud 개발 컨테이너를 iCloud 대시 보드를 통해 재설정하려고합니다. 기록을 다시 작성하십시오. 그런 다음 다시 실행 해보십시오. 그리고 그것은 작동합니다.

나는 Apple 측에서 버그라고 생각합니다. Btw, 내 영향을받는 레코드를 구독하지만. 그러나 당신은 그것을 시도하고 싶을 수도 있습니다.

팁 구독하기 전에 이미 앱을 구독했는지 확인할 수 있습니다. NSUserDefaults에서 subscribe 메소드를 호출하면서 subscriptionID를 저장합니다. 그런 다음 구독 취소 방법이 호출되면 제거합니다.

+0

옙이 작동합니다! 고맙습니다! – shle2821

1

"이전 스키마를 설치하는 것을 거부했습니다"라는 오류가 있지만 구독이 아닌 간단한 쓰기 만합니다. 제 경우에는 존재하지 않는 분야의 기록을 쓰고있었습니다. 이제는 개발 환경에서 스키마가 자동으로 새로운 필드 유형을 추가한다고 생각했지만 어쨌든 대시 보드를 사용하여 수동으로 추가했을 때 효과적이었습니다.

0

CloudKit은 사용자가 기기에서 iCloud 드라이브를 사용 중지 한 경우 CKError.serviceUnavailable을 전송합니다.

+0

iCloud 드라이브를 켰지 만 여전히이 오류가 발생합니다. –