2014-09-23 142 views
2

我添加的代碼在我的ios healthkit斯威夫特的應用程序,但我發現了一個錯誤......如何用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") 
} 

} 

時發生錯誤=錯誤域= com.apple.healthkit代碼= 4「缺少 com.apple.developer.healthkit權利「。的UserInfo = 0x7fa748534b00 {NSLocalizedDescription =缺少com.apple.developer.healthkit 權利。}

怎樣才能解決這個問題?

謝謝!

+0

鑑於該錯誤是,你錯過的健康權利套件,我們可以假設你已經嘗試通過將健康進行修復套件權利? – 2014-09-23 22:46:02

回答

8

該錯誤是由於您尚未將HealthKit權利添加到您的目標。

1)轉到Xcode中的項目設置。 2)從那裏,導航到「能力」選項卡。 3)向下滾動,直到看到「HealthKit」並將開關打開。 4)現在,Xcode會將HealthKit權利添加到您的Info.plist,您的{ProjectName} .entitlements文件以及您的iTunes Connect上的應用程序ID

執行完這些步驟後,請嘗試再次運行您的應用程序。這一次它應該工作。

+0

不一定:http://stackoverflow.com/questions/33923541/error-in-healthkit-error-domain-com-apple-healthkit-code-100-failed-to-open-da。 – damirstuhec 2016-01-11 13:36:09

4

在功能激活健康套件

enter image description here

如果仍然沒有奏效

check

  • 請問您的provisioning profile包括HealthKit支持?
  • 您的捆綁包標識符是否使用供應配置文件中引用的相同ID並支持HealthKit?
+1

仍然無法正常工作。 – damirstuhec 2016-01-11 13:37:33

9

以上兩個答案都應該先嚐試。然而,如果

  1. 你一定的能力已被激活
  2. 你自信你的供應配置文件相關聯的應用程序ID已healthkit開啓和相匹配的應用程序的包ID

然後試着並通過選擇您的目標並強制構建使用該特定設置配置文件,然後去

構建設置 - >代碼簽名 - >配置文件

並手動選擇它。

我碰到的情況下,在調試出現上述錯誤,如果「自動選擇」正在使用

+0

這對我有用。謝謝! – oviroa 2015-06-10 01:45:20

+0

配置文件的怪異性可能會隨機發生,即使以前所有的東西都在工作 - 所以這個修復了我的問題 – 2015-06-17 03:43:23

+0

對我不起作用。 – damirstuhec 2016-01-11 14:08:03

1

一些額外的信息,這可能有助於。如果在HealthKit功能下,第一步「爲您的應用程序ID添加健康工具包權限」顯示錯誤,並且您有一個「修復此」按鈕,該按鈕不執行該任務......繼續閱讀...

在處理多個HealthKit測試項目後,您可能會發現許多次Bundle ID與另一個HealthKit項目中使用的另一個Bundle ID匹配(例如,您複製了一個項目以分離另一個測試)。此爭用將顯示爲「iOS開發人員的照片」「爲您的應用ID添加健康工具包權限」中的第一個複選標記下的錯誤。不幸的是,當你需要改變「Bundle ID」時,能力部分列出的錯誤稱之爲「應用程序ID」。在捆綁ID號字符串中添加一個數字(或某些字符)以使其唯一。然後,HealthKit功能設置中的「修復」按鈕將起作用。

在「功能」選項卡左側的「常規」選項卡下可以找到軟件包ID(又名「應用程序ID」)。

7

我花了3天試圖找出問題所在。我發現這些步驟的解決方案:

enter image description here

  1. 首先去項目(正如我顯示的圖像)
  2. 打開的項目和目標列表
  3. 選擇nameApp WatchKit擴展
  4. 轉到能力選項卡,在Health Kit中按下,瞧...它正在爲我工​​作。

我使用的是iOS 9.3.2和7.3.1的Xcode

+1

祝福你,先生<3 – Nico 2017-06-26 05:10:32

+1

非常感謝。 – 2017-07-12 23:20:24

+0

這是最新的答案。適用於Xcode 9.2和Swift 4 – joshuakcockrell 2017-12-14 21:14:33