异常' NSInvalidArgumentException' NSHealthUpdateUsageDescritption

时间:2016-06-16 15:12:36

标签: ios

由于未捕获的异常终止应用程序&#39; NSInvalidArgumentException&#39;,原因:&#39; NSHealthUpdateUsageDescription必须在应用程序的Info.plist中设置才能请求写入授权。&#39; < / p>

Info.plist有此条目

<key>NSHealthShareUsageDescription</key>
<string>some string value stating the reason</string>

4 个答案:

答案 0 :(得分:14)

错误想要设置NSHealthUpdateUsageDescription。这些是不同的键,您可以在此处看到:https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

  • <强> NSHealthShareUsageDescription: 指定一个本地化字符串,用于描述应用程序要读取HealthKit数据的原因。有关详细信息,请参阅NSHealthShareUsageDescription。

  • <强> NSHealthUpdateUsageDescription: 指定一个本地化字符串,该字符串描述应用程序要将数据写入HealthKit存储的原因。有关详细信息,请参阅NSHealthUpdateUsageDescription。

答案 1 :(得分:13)

如果您的应用需要使用HealthKit,您应该在Info.plist中添加读写权限。

写权限:

RTE {
  default {
    proc.allowedClasses := addToList(btn-dark)
    buttons.link.properties.class.allowedClasses := addToList(btn-dark)
  }
  classes.btn-dark {
    name = Dark-Button
    requires = btn btn-small
  }
  classesAnchor.buttonDark {
    class = btn-dark
    type = page
  }
}

阅读权限:

<key>NSHealthUpdateUsageDescription</key>
<string>some string value stating the reason</string>

enter image description here

答案 2 :(得分:10)

如果您已经添加了 NSHealthShareUsageDescription ,但仍收到异常。

可能是因为说明太简短

确保所有语言环境的说明都超过12个字符。

例如

HelloHello->崩溃!

HelloHelloHi->确定

答案 3 :(得分:7)

您还必须为NSHealthUpdateUsageDescription添加密钥。

将以下内容添加到您的Info.plist中:

<key>NSHealthUpdateUsageDescription</key>
<string>some string value stating the reason</string>

有关详细信息,请参阅this link