【问题标题】:"Couldn't send a valid signature" error when using CloudKit使用 CloudKit 时出现“无法发送有效签名”错误
【发布时间】:2015-07-05 08:49:09
【问题描述】:

任何人都知道可能导致此错误的原因,该错误在下面的查询块中返回:

<CKError 0x7f8d5ba27a10: "Internal Error" (1/4000); "Couldn't send a valid signature">

这是我的代码 sn-p:

CKContainer *container = [CKContainer defaultContainer];
CKDatabase *publicDatabase = [container publicCloudDatabase];

//CKDatabase *publicDatabase = [[CKContainer containerWithIdentifier:container] publicCloudDatabase];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"doctorName = %@", @"Dr. Harry White"];
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"WellnessTest" predicate:predicate];

[publicDatabase performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error)
{
    if (error)
    {
        // Error handling for failed fetch from public database
        NSLog(@"ERROR: %@", error.description);
    }
    else
    {
        // Display the fetched records
        NSLog(@"Results: %@", results.description);
    }
}];

【问题讨论】:

    标签: objective-c cloudkit


    【解决方案1】:

    在 iPhone/iPad 模拟器上,转到“设置”>“iCloud”,然后使用您的 Apple ID 登录。

    【讨论】:

    • 非常感谢解决了我的问题。不知道我可以通过模拟器登录 iCloud。
    • 不登陆就不能查询公共数据库吗?
    • stackoverflow.com/questions/35321975/… 中的评论解释了为什么需要这样做。
    • @holmes 永远感谢你,师父 :)
    • 当您登录 CloudKit(模拟器)时,任何人都对此有任何想法。这是 Xcode 9。我的模拟器已登录到 CloudKit(我之前进行的检查以确保它们已登录通过)但是当我尝试执行获取时出现此错误。
    【解决方案2】:

    如果您在 CloudKit 的生产环境中测试您的应用程序,即使您已在模拟器上登录 iCloud,您仍可能会遇到此错误。在这种情况下,在设备上运行您的应用可以修复错误。

    【讨论】:

      猜你喜欢
      • 2016-05-21
      • 2022-12-29
      • 1970-01-01
      • 1970-01-01
      • 2023-01-31
      • 2019-08-30
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多