2

我目前正在使用 Salesforce.com IOS SDK 版本 3.0 来构建连接到 salesforce 的本机应用程序。这个应用程序将用于外部用户,因此它指向社区。

我首先创建了一个 Native IOS SDK 应用程序,然后让它工作并与销售人员交谈。

然后我创建了一个新社区,创建了一个社区用户,给了他们适当的权限并完成了社区的设置。

接下来我进入了 Xcode 项目,在应用程序 plist 的支持文件下。然后我编辑了 SFDCOAuthLoginHost 以设置为社区 URL。

完成后,我重新启动了应用程序,并能够通过本机 SDK 登录到社区,一切都会很好,直到应用程序达到会话超时。此时我收到这些错误。

ERROR|SFNetworkOperation|callDelegateDidFailWithError Session expired or invalid
ERROR|SFNetworkOperation|Session timeout encountered. Requeue  0.000000or retry later
ERROR|SFNetworkEngine|Ignore session timeout error callback as host URL changed, request URL is https://dev-patientsupport-dev.cs21.force.com/dev/services/apexrest/patientNotifications, login host is [cs21.salesforce.com]

当然,因为它无法获得新会话,所以在此之后所有 Web 标注都会失败。

我到处搜索,找不到解决这个问题的方法。我的猜测是,因为请求是向社区 URL 发出的,但是刷新的会话是从 cs21.salesforce.com 发送的,所以它被忽略了。再次感谢大家的时间。

4

2 回答 2

1

看起来这可能是由于在使用社区时将其 instanceURL 设置为错误目标的刷新令牌引起的。这可能是 SDK 中的一个错误,因为它在 Web 上运行良好。尝试将凭证的 instanceURL 更改为与社区的 URL 相同,看看是否有帮助。

于 2015-02-06T17:19:50.213 回答
1

此错误的修复已作为移动 SDK 3.1.1 补丁的一部分提交到 GitHub、npm (forceios) 和 Cocoapods。请参阅https://plus.google.com/105428096535342044035/posts/AkoVwL5Kdt3了解更多详情。

于 2015-03-11T22:36:01.947 回答