AWSMobileClient iOS SDK-获取AWS凭据时无法获取标识id

AWSMobileClient iOS SDK-获取AWS凭据时无法获取标识id,ios,swift,amazon-web-services,aws-sdk,aws-amplify,Ios,Swift,Amazon Web Services,Aws Sdk,Aws Amplify,我有一个iOS Swift项目,使用与Cocoapods一起安装的AWSMobileClient SDK(v2.9.9) 应用程序中经常使用一种有问题的方法: AWSMobileClient.sharedInstance().getAWSCredentials{(凭据,错误)在…} 出现了一个特定的致命错误: 在另一个线程中获取标识id失败或未完成 在5秒内 在某些设备上,它在90%的时间内工作正常,通常只在一系列步骤之后出现,例如登录、注销、再次登录(该方法在登录后调用) 然而,最近我一直在

我有一个iOS Swift项目,使用与Cocoapods一起安装的AWSMobileClient SDK(v2.9.9)

应用程序中经常使用一种有问题的方法:

AWSMobileClient.sharedInstance().getAWSCredentials{(凭据,错误)在…}
出现了一个特定的致命错误:

在另一个线程中获取标识id失败或未完成 在5秒内

在某些设备上,它在90%的时间内工作正常,通常只在一系列步骤之后出现,例如登录、注销、再次登录(该方法在登录后调用)

然而,最近我一直在测试的一款新设备每次都出现

还有一个堆栈问题表明,当调用
getAWSCredentials
时,另一个AWS SDK操作可能正在并行运行,但在查看我的代码后,我相当确定情况并非如此

我还尝试在出现故障的设备上运行此方法,看看它是否能提供任何线索:

AWSMobileClient.sharedInstance().getIdentityId().continueWith{task->Any?in…}
并返回此错误:

在另一个线程上获取标识id失败。请致电重试
getIdentityId()
方法

我花了好几个小时浏览了我自己的代码和导致错误的堆栈跟踪,我陷入了死胡同,思考如何进一步解决甚至调试这个问题


希望有人能提出一些建议来帮助我-谢谢

你能分享这个新设备的详细信息吗?就像你正在使用的iOS和Xcode版本。可能需要降级SDK。我读到他们在2.7.0版中进行了重大更改。你试过降级吗?嗨,法比奥,新设备是iOS 12.4上的iPhone7,Xcode版本是10.3。您建议将SDK降级到哪个版本?在2.7.0中,他们引入了一些破译代码的更改,这将要求我重写应用程序的大部分内容,而这在我看来是不明智的。您是否在应用程序委托中调用AWSMobileClient.sharedInstance().interceptApplication-didFinishLaunchingWithOptions?另外,请仔细检查是否正在调用-getAWSCredentials,它在AWSMobileClientExtensions.swift中被重写,它通过Grand Central Dispatch提供锁定和排队行为。-自SDK v2.7以来,interceptApplication已被弃用,但我还是尝试了,但没有成功。是的,我可以确认我使用的是来自AWSMobileClientExtensions.swift的-getAWSCredentials。你是如何解决这个问题的?这里也有同样的问题。