ios - AWSMobileClient iOS SDK - 获取 AWS 凭证时无法获取身份 ID
问题描述
我有一个使用 Cocoapods 安装的 AWSMobileClient SDK (v2.9.9) 的 iOS Swift 项目。
在应用程序中经常使用一种有问题的方法:
AWSMobileClient.sharedInstance().getAWSCredentials { (credentials, error) in ... }
并且发生了一个特定的致命错误:
在另一个线程中获取身份 ID 失败或未在 5 秒内完成。
在某些设备上,它在 90% 的时间内都可以正常工作,并且通常仅在一系列步骤之后发生 - 例如登录、注销、再次登录(该方法在登录后调用)。
但是,最近在我一直在测试的新设备上每次都出现。
这里有另一个堆栈问题,表明另一个 AWS SDK 操作在getAWSCredentials
被调用时可能正在并行运行 - 但在查看我的代码后,我相当确定情况并非如此。
我还尝试在故障设备上运行此方法,看看它是否会提供任何线索:
AWSMobileClient.sharedInstance().getIdentityId().continueWith { task -> Any? in ... }
并返回此错误:
在另一个线程上获取身份 ID 失败。请通过调用
getIdentityId()
方法重试。
我花了几个小时查看我自己的代码和导致错误的堆栈跟踪,并且在思考如何解决甚至进一步调试这个问题时陷入了死胡同。
希望有人能够提出一些帮助我的建议 - 谢谢!:)
解决方案
推荐阅读
- facebook - 谷歌登录无法在应用浏览器中的 Facebook 中工作
- brightway - 验证影响评估方法数据时的错误和区域特征因素的问题
- java - jboss如何像http://localhost:8088/plant/app/一样加载lnk?
- python - Python:chardet.detect 带有一个大的二进制对象
- django - 联系表格发送电子邮件成功,但我的邮箱中没有消息 - django
- c++ - 旅行商问题的编译器优化
- html - 如何使用引导程序使此代码响应/更好?
- javascript - 成员未定义 discord.js
- mysql - Rundeck 3.3.6 社区 - 从 H2 Db 迁移到 MySql 8.0
- vue.js - 如何在 main.js 中使用 Axios