如何使用healthkit解决此错误?

时间:2014-09-23 10:56:26

标签: swift ios8 xcode6 health-kit

我在我的ios Swift应用程序中添加了healthkit的代码,但我收到了错误...

 /* Ask for permission to access the health store */
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)

if HKHealthStore.isHealthDataAvailable(){

  healthStore.requestAuthorizationToShareTypes(typesToShare,
    readTypes: typesToRead,
    completion: {(succeeded: Bool, error: NSError!) in

      if succeeded && error == nil{
        println("Successfully received authorization")
      } else {
        if let theError = error{
          println("Error occurred = \(theError)")
        }
      }

    })

} else {
  println("Health data is not available")
}

}
  

发生错误=错误Domain = com.apple.healthkit Code = 4" Missing   com.apple.developer.healthkit权利。"的UserInfo = 0x7fa748534b00   {NSLocalizedDescription =缺少com.apple.developer.healthkit   权利}

如何解决这个问题?

谢谢!

7 个答案:

答案 0 :(得分:12)

我花了3天时间试图找出问题所在。我找到了这些步骤的解决方案:

enter image description here

  1. 首先进入项目(正如我在图片中所示)
  2. 打开项目和目标列表
  3. 选择nameApp WatchKit Extension
  4. 转到功能选项卡,按健康工具包中的按钮,然后瞧...它对我有效。
  5. 我正在使用iOS 9.3.2和Xcode 7.3.1

答案 1 :(得分:9)

首先应尝试上述两个答案。但是如果

  1. 您确定该功能已被激活
  2. 您确信与您的配置文件相关联的应用ID已启用healthkit并且与应用的捆绑ID相匹配
  3. 然后尝试通过选择目标并转到

    强制构建使用该特定的配置文件

    构建设置 - >代码签名 - >供应资料

    并手动选择。

    如果正在使用“自动选择”,我遇到了在调试中遇到上述错误的情况

答案 2 :(得分:8)

该错误是由于您尚未将HealthKit权利添加到目标。

1)转到Xcode中的项目设置。 2)从那里,导航到"功能"标签。 3)向下滚动,直到看到" HealthKit"并将开关拨到打开状态。 4)Xcode现在将为您的Info.plist,您的{ProjectName} .entitlements文件和iTunes Connect上的App ID添加HealthKit权利

执行这些步骤后,请尝试再次运行您的应用。这一次它应该工作。

答案 3 :(得分:4)

在功能

中激活健康工具包

enter image description here

如果仍然无效

<强> check

  • 您的配置文件是否包含对HealthKit的支持?
  • 您的捆绑包标识符是否使用配置文件中引用的相同ID以及对HealthKit的支持?

答案 4 :(得分:1)

一些可能有用的其他信息。如果在HealthKit功能下,第一步“为您的应用程序ID添加运行状况工具包权利”显示错误,并且您有一个“修复此”按钮,该功能无法执行...请继续阅读...

在处理多个HealthKit测试项目后很多次,您可能会发现您的Bundle ID与另一个与另一个HealthKit项目一起使用的Bundle ID相匹配(假设您复制了一个项目以分拆另一个测试)。此争用将在“iOS开发”图片中的第一个复选标记下显示为错误“将健康工具包权利添加到您的应用ID”。不幸的是,当您需要更改“Bundle ID”时,功能部分中列出的错误将其称为“app id”。在您的包ID字符串中添加一个数字(或某个字符)以使其唯一。然后,HealthKit功能设置中的“修复”按钮将起作用。

Bundle ID(又名“App ID”)位于“Capabilities”选项卡左侧的“General”选项卡下。

答案 5 :(得分:0)

这是您尚未在目标编辑器中打开“功能”选项卡,然后打开HealthKit开关的原因。

并要解决权限问题,请根据您的项目要求在info.plist中添加以下项并写下原因。 1.健康更新用法说明 2.健康记录使用说明 3.Health Share使用说明

出于授权目的,您也可以继续使用免费的开发者帐户。 祝你好运

答案 6 :(得分:0)

我确实添加了两者 NSHealthShareUsageDescriptionNSHealthUpdateUsageDescription(确保值大于 12 个字符 - 在某处阅读)在 Info.plist

接下来,类似于 Jorge Luis Jiménez 截图

  1. 首先进入项目(如图所示)
  2. 打开项目和目标列表
  3. 点击 Apps 目标(不需要 watchkit 扩展)
  4. 现在点击右上角的 + 标志(添加库)
  5. 添加 HealthKit。