【问题标题】:“Couldn't send a valid signature” error when using CloudKit without iCloud account在没有 iCloud 帐户的情况下使用 CloudKit 时出现“无法发送有效签名”错误
【发布时间】:2016-05-21 04:54:40
【问题描述】:

我已向 Apple 提交了一个使用 CloudKit 的 iOS 应用程序。它被拒绝了,因为它需要用户登录 iCloud 才能访问。苹果的理由是,即使没有 iCloud 登录,公共数据库仍然是可读的。所以应用程序的那部分应该可以正常工作。

我正在尝试修改应用程序,但在未登录时仍会出现此错误。

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

我在网上搜索过,解决方案始终只是登录 iCloud。也没有关于此错误的 Apple 文档。有谁知道如何在不登录 iCloud 帐户的情况下解决此问题?非常感谢。

【问题讨论】:

  • 好的,我找到了原因,我想把它留在这里,这样如果其他人有同样的问题,他们就会知道原因。显然,我在一年前开始开发该应用程序时并没有阅读此内容。在 Apple 的 CloudKit 快速入门指南中:“在开发中,当您在模拟器或设备上通过 Xcode 运行您的应用程序时,您需要输入 iCloud 凭据才能读取公共数据库中的记录。在生产中,默认权限允许未经身份验证的用户读取公共数据库中的记录,但不允许他们写入记录。”现在我需要以某种方式找到一个开发设备,以便我可以对其进行测试。 :(
  • 为了使其对其他人更有用,将其发布为答案并将其标记为正确会很有用 - 您可以针对自己的问题这样做。

标签: ios icloud cloudkit


【解决方案1】:

我遇到了同样的错误,但原因略有不同,所以对于这个问题需要检查另一件事(除了 @Cakelly 将自己作为评论发布):

如果您尝试从模拟器访问生产数据库,即使您已登录 iCloud,也会发生此错误。切换回 Development 数据库以在模拟器上进行测试。

【讨论】:

  • 另请注意,您必须删除该应用程序并在更改该值后重新运行它,否则您将继续收到该错误。
  • 啊,试图获取屏幕截图,但我的所有数据都在生产数据库中。这确实使事情复杂化了。由于无法在数据库之间导出和导入数据,这是否意味着我必须重新输入数千条记录?
  • @robwithhair Yeees,可能。或者为您的应用构建一个测试版本,模拟屏幕,使其看起来背后有大量真实数据?
猜你喜欢
  • 2015-07-05
  • 1970-01-01
  • 2014-09-15
  • 2019-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
  • 1970-01-01
相关资源
最近更新 更多