HealthKit requestAuthorization 返回代码 100:“授权会话超时”
Posted
技术标签:
【中文标题】HealthKit requestAuthorization 返回代码 100:“授权会话超时”【英文标题】:HealthKit requestAuthorization returns code 100: "Authorization session timed out" 【发布时间】:2018-12-29 18:48:44 【问题描述】:我的所有 HealthKit 授权请求都因此错误而超时。我的代码没有任何变化,但我最近将 Xcode 切换到了一个新的 Apple ID 帐户。
我设置了一个开发团队,配置了一个配置文件,并且 HealthKit 功能和权利工作正常。我的应用程序构建并运行良好,但每当我拨打requestAuthorization
时,我都会无缘无故地超时。错误中没有其他信息,并且所有内容似乎都已正确配置,因此我对可能导致此问题的原因一无所知。
我试过模拟器和设备都有同样的问题。 HealthKit 身份验证的对话框永远不会出现。事后我可以进入健康应用程序并打开必要的数据共享,但这不是一个可接受的解决方法。
什么会导致 healthKitStore requestAuthorization 超时错误? 我 99% 确定这是一个配置问题,但是经过多次处理,并重新创建了大量证书、配置文件等,我不知道问题可能是什么。我应该在哪里寻找配置问题?这方面的文档基本上为零,我在 Google 上只找到了 2 个与此相关的结果,没有解决方案。
let healthKitTypesToRead = [...]
let healthKitStore:HKHealthStore = HKHealthStore()
healthKitStore.requestAuthorization(toShare: nil, read: healthKitTypesToRead) (success, error) -> Void in
if( completion != nil )
completion(success, error as? NSError)
【问题讨论】:
你在主线程中运行 requestAuthorization 吗? 【参考方案1】:这是由于在后台线程中运行授权请求所致。在主线程上执行此操作解决了问题。
【讨论】:
以上是关于HealthKit requestAuthorization 返回代码 100:“授权会话超时”的主要内容,如果未能解决你的问题,请参考以下文章