【问题标题】:HealthKit requestAuthorization returns code 100: "Authorization session timed out"HealthKit requestAuthorization 返回代码 100:“授权会话超时”
【发布时间】: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 吗?

标签: ios healthkit


【解决方案1】:

这是由于在后台线程中运行授权请求所致。在主线程上执行此操作解决了问题。

【讨论】:

    猜你喜欢
    • 2016-03-30
    • 2018-10-18
    • 2017-01-07
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2021-01-20
    相关资源
    最近更新 更多