SDK更新后UserCannotBeAlteredWithoutSessionError

时间:2014-10-09 20:58:46

标签: ios sdk parse-platform upgrade

最近更新了解析SDK(从v1.2.19升级到v1.4.1),使用旧版本SDK注册的用户收到错误:

Error: Parse::UserCannotBeAlteredWithoutSessionError (Code: 206, Version: 1.4.1)
ERROR PFUser checkin: Error Domain=Parse Code=206 "The operation couldn’t be completed. (Parse error 206.)" UserInfo=0x170e76380 {error=Parse::UserCannotBeAlteredWithoutSessionError, code=206}

当应用程序尝试将当前用户对象保存到服务器时,对于登录用户来说这似乎是非常明显的事情。

错误代码(基于Parse上的文档)表示:

  • 206 错误代码,表示无法更改没有有效会话的用户对象。

我的猜测是强迫用户再次登录,但在这种情况下看起来有点苛刻。

还有其他人遇到同样的问题吗?

2 个答案:

答案 0 :(得分:2)

解决方案:

这实际上不是一个错误,而是两个版本的SDK之间来回传递的结果。 如果你只是从v1.2.19升级到v1.4.1,一切都应该没问题,但是当你回到v1.2.19到v1.4.1时你会遇到这种情况。

我们如何处理存储在这些版本和降级路径之间的会话数据的方式发生了变化 - >升级 - >不支持降级。您应该能够通过以下步骤重现此行为:

  • 从设备中删除所有应用数据("重置内容和设置"在iOS模拟器中)。
  • 使用1.2.19启动TestApp - 日志中没有错误
  • 使用1.4.1启动TestApp - 日志中没有错误
  • 使用1.2.19启动TestApp - 日志中没有错误
  • 使用1.4.1启动TestApp - 日志错误

答案 1 :(得分:2)

如果您仍有问题,请使用以下代码通过会话令牌更新用户

[PFUser becomeInBackground:[PFUser currentUser].sessionToken block:^(PFUser *user, NSError *error) {
    currentUser = user;

}];