How to solve this error with healthkit?

我是研究僧i 提交于 2019-12-09 06:49:38

问题


I'm adding code for healthkit in my ios Swift app, but I'm getting an error...

 /* 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")
}

}

Error occurred = Error Domain=com.apple.healthkit Code=4 "Missing com.apple.developer.healthkit entitlement." UserInfo=0x7fa748534b00 {NSLocalizedDescription=Missing com.apple.developer.healthkit entitlement.}

How can solve this?

Thanks!


回答1:


I spent 3 days trying to figure out what was the problem. I found the solution with those steps:

  1. First go to the project (As I show in the image)
  2. Open projects and target lists
  3. Select nameApp WatchKit Extension
  4. Go to Capabilities tab, press on in Health Kit and voila... it is working for me.

I am using iOS 9.3.2 and Xcode 7.3.1




回答2:


Both of the above answers should be tried first. If however

  1. You're sure the capability has been activated
  2. You're confident your app id associated with your provisioning profile has healthkit turned on and matches the app's bundle id

Then try and force the build to use that specific provisioning profile by selecting your target and going to

build settings -> code signing -> provisioning profile

and selecting it manually.

I've run into cases where get the above error in debug if 'automatic selection' is being used




回答3:


That error is due to the fact that you have not added the HealthKit Entitlement to your target.

1) Go to your project settings in Xcode. 2) From there, navigate to the "Capabilities" Tab. 3) Scroll down until you see "HealthKit" and flip the switch to on. 4) Xcode will now add the HealthKit Entitlement to you Info.plist, your {ProjectName}.entitlements file, and your App ID on iTunes Connect

After following these steps, try to run your app again. This time around it should work.




回答4:


Activate Health kit in Capabilities

If still not worked

check:

  • Does your provisioning profile includes support for HealthKit?
  • Does your bundle identifier use the same ID referenced in the provisioning profile with support for HealthKit?



回答5:


Some additional info that might help. If, under the HealthKit Capabilities the first step "add health kit entitlement to your app id" shows an error, and you have a "Fix This" button which does not do the job... read on...

Many times after working on multiple HealthKit test projects, you may find you have a Bundle ID that matches another Bundle ID used with another HealthKit project (say you duplicated the one project to spin off another test). This contention will show up as an error under the first checkmark in "iOS dev"s picture "add health kit entitlement to your app id". The error listed in the capabilities section unfortunately calls it an "app id" when you need to change the "Bundle ID". Add a number (or some character) in your bundle id string to make it unique. Then the "Fix" button in the HealthKit capabilities settings will work.

The Bundle ID (aka "App ID") is found under the "General" tab to the left of the "Capabilities" tab.




回答6:


This is bcz you have not Open the Capabilities tab in the target editor, and turn on the HealthKit switch.

and to resolve permission issues , add the following keys in info.plist and write causes.. according to your project requirements. 1.Health Update Usage Description 2.Health Records Usage Description 3.Health Share Usage Description

You can go ahead with free developer account also for authorisation purpose. good luck



来源:https://stackoverflow.com/questions/25993314/how-to-solve-this-error-with-healthkit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!