CloudKit acceptShare 错误 - “无法获得共享身份集”

Posted

技术标签:

【中文标题】CloudKit acceptShare 错误 - “无法获得共享身份集”【英文标题】:CloudKit acceptShare error - "Couldn't get a Sharing identity set" 【发布时间】:2018-11-02 17:12:16 【问题描述】:

我正在以编程方式创建 CKShare 并通过电子邮件与收件人共享 URL;当他们这样做时,他们点击链接并正确调用 UIApplication 'userDidAcceptCloudKitShareWithMetadata' 方法。然后我使用 CKAcceptSharesOperation 将共享标记为“已接受”。

在大多数情况下,它运行良好,即使在生产环境中使用该应用也是如此。时不时地,用户会发送消息说他们在 CKAcceptSharesOperation 中遇到了一个错误……这个错误会说“无法获得共享身份集”之类的内容。完整的错误:

CKInternalErrorDomain: 5000" UserInfo=NSUnderlyingError=0x281f8f0f0 Error Domain=CKInternalErrorDomain Code=5000 "无法共享 身份集" UserInfo=CKErrorDescription=无法获得共享 身份集,NSLocalizedDescription=无法获得共享身份 设置,NSUnderlyingError=0x281f8d8c0 错误域=CKInternalErrorDomain Code=5000 "无法创建 PCS 身份" UserInfo=CKErrorDescription=无法创建 PCS 身份, NSLocalizedDescription=无法创建 PCS 身份, NSUnderlyingError=0x281f8f570 错误域=NSOSStatusErrorDomain Code=-25300 "查找服务共享失败" UserInfo=0x2811c1400 (不是 显示), CKErrorDescription=无法获得共享身份 set, warningTitleKey=接受分享失败, NSDebugDescription=CKInternalErrorDomain: 5000, NSLocalizedDescription=接受此共享时出现问题 - 无法获取共享身份集

我让用户检查了他/她的 iCloud 帐户,看起来还不错。 iCloud帐户是新帐户,因此可能与它有关吗?如果不是,还有什么可能导致这种情况?我可以尝试如何隔离问题?

谢谢。

【问题讨论】:

这是一个非常晦涩的错误。用户单击共享链接时是否已经安装了您的应用程序?您是否在 CK 仪表板中为 CloudKit 容器指定了备用 URL?用户是否使用其帐户实际登录 icloud.com(该帐户在接受条款和条件之前无效)。我会尝试这些东西,看看它是否揭示了任何线索。 谢谢。事实证明,这是因为用户没有登录 iCloud.com 并接受了条款和条件。不确定您是如何进入该状态的……如果您创建一个新帐户,您是否必须已经接受“条款和条件”?在任何情况下,登录网站并接受,然后在设备上注销 iCloud 帐户并重新登录即可解决问题。 从技术上讲,iCloud 帐户在接受这些条款之前处于不确定状态。令人沮丧的是,Apple 的 API 没有给出更具体的错误。 是的;即使通过 Apple 的 Notes 应用程序共享也无法正常工作,并且会出现模糊错误。 【参考方案1】:

原来错误是因为用户没有接受条款和条件。用户应登录 iCloud.com ...该网站可能会提示您设置安全问题和/或接受条款和条件。用户可能还必须在设备上注销 iCloud 帐户并重新登录。这应该可以解决问题。

【讨论】:

以上是关于CloudKit acceptShare 错误 - “无法获得共享身份集”的主要内容,如果未能解决你的问题,请参考以下文章

CloudKit - 完整且完整的错误处理示例

Cloudkit:“错误保存记录写入操作不允许”

CloudKit:CKQuery 显示错误:错误:操作无法完成。 (CKErrorDomain 错误 1。)

解析 CloudKit 错误 (CKError)

CloudKit 错误:更改令牌已过期,需要重置

CloudKit 查询的奇怪错误