Подтвердить что ты не робот

Чтение открытой базы данных CloudKit без входа в iCloud

В документах говорится, что общедоступные базы данных CloudKit будут доступны для чтения, даже если пользователь не входил в систему с соответствующей учетной записью iCloud. Однако я не могу извлечь ничего из моей облачной базы данных, если я не подключил мой iOS-симулятор или устройство к iCloud. Когда я активирую свою учетную запись iCloud, я могу получить данные из моей публичной базы данных. Если кто-нибудь, у кого есть ответ или такая же проблема со мной, может ответить, это было бы здорово. Спасибо.

CKDatabase *publicDatabase = [[CKContainer containerWithIdentifier:@"mycontainer"] publicCloudDatabase];
CKRecordID *recordID = [[CKRecordID alloc] initWithRecordName:@"idofmyrecord"] ;

[publicDatabase fetchRecordWithID:recordID completionHandler:^(CKRecord *fetchedRecord, NSError *error) {
    if(!error){
        NSLog(@"****Success***** %@",fetchedRecord[@"field1"]);

    }else{
        NSLog(@"****Failed***** %@",fetchedRecord[@"field2"]);

    }
}];
4b9b3361

Ответ 1

Публичная база данных доступна только для чтения без входа в производственную среду, а не в среду разработки.

В документации Apple говорится:

В разработке, когда вы запускаете приложение через Xcode на симуляторе или устройстве, вам нужно ввести учетные данные iCloud для чтения записей в общедоступной базе данных. В производстве разрешения по умолчанию позволяют пользователям, не прошедшим проверку подлинности, считывать записи в общедоступной базе данных, но не позволяют им записывать записи.

См. Быстрый запуск CloudKit.

Ответ 2

Я думаю, что документация неверна или это ошибка в коде Apple. Вы должны подать радар в https://developer.apple.com/bug-reporting/