由于未捕获的异常终止应用程序&#39; NSInvalidArgumentException&#39;,原因:&#39; NSHealthUpdateUsageDescription必须在应用程序的Info.plist中设置才能请求写入授权。&#39; < / p>
Info.plist有此条目
<key>NSHealthShareUsageDescription</key>
<string>some string value stating the reason</string>
答案 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>
答案 2 :(得分:10)
如果您已经添加了 NSHealthShareUsageDescription ,但仍收到异常。
可能是因为说明太简短。
确保所有语言环境的说明都超过12个字符。
例如
HelloHello->崩溃!
HelloHelloHi->确定
答案 3 :(得分:7)
您还必须为NSHealthUpdateUsageDescription添加密钥。
将以下内容添加到您的Info.plist中:
<key>NSHealthUpdateUsageDescription</key>
<string>some string value stating the reason</string>
有关详细信息,请参阅this link。