没有iCloud登录的CloudKit公共数据库读取

Ers*_*gin 15 iphone ios icloud cloudkit

在文档中,它表示即使用户没有使用正确的iCloud帐户登录,CloudKit公共数据库也可以读取.但是,如果我没有将我的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"]);

    }
}];
Run Code Online (Sandbox Code Playgroud)

Yan*_*son 7

公共数据库只能在生产环境中无需登录即可读取,而不能在开发环境中进行登录.

Apple的文档说:

在开发中,当您在模拟器或设备上通过Xcode运行应用程序时,您需要输入iCloud凭据以读取公共数据库中的记录.在生产中,默认权限允许未经过身份验证的用户读取公共数据库中的记录,但不允许他们写入记录.

请参阅CloudKit快速入门.


tle*_*man 3

我认为文档不正确或者这是 Apple 代码中的错误。您应该在https://developer.apple.com/bug-reporting/上提交雷达报告