'NSHealthUpdateUsageDescription 必须在应用程序的 Info.plist 中设置

PDG*_*PDG 2 healthkit apple-watch

我们的应用程序已经从 Apple Watch 上的 HealthKit 捕获心率数据超过 2 年。但是,从 XCode 11 开始,这不再有效。事实上,应用程序崩溃并显示错误:'NSHealthUpdateUsageDescription must be set in the app's Info.plist。我在应用程序的 info.plist 文件中设置了 NSHealthUpdateUsageDescription 和 NSHealthShareUsageDescription 键。我已经阅读了所有论坛中的所有帖子,但没有找到应用程序因此错误而崩溃的原因,因为显然我已经设置了适当的键。我在几篇文章中读到描述一定很长(非常科学),所以我把我们的描述写得很长,但没有运气。

我们要求获得许多其他权利的许可,它们都可以正常工作。事实上,我们有一个步骤测试,它在 Apple Watch 上也能继续正常工作。

我应该这样说,我们已经将文本从我们的应用程序移到了可本地化的字符串中。这似乎无关紧要,因为 iOS 继续请求其他权利(相机使用、FaceID、位置等)的许可就好了。

我们创建了一个 InfoPList.strings 文件,试图了解为什么我们会继续收到此错误。想法是苹果正在寻找一个字符串并且无法找到它,所以它只是推出了通用的,几乎无用的错误消息。

<key>NSHealthShareUsageDescription</key>
<string>$(PRODUCT_NAME) would like to capture a snap shot of your heart rate for the purpose of using the data in a clinical research study. Please grant this permission to continue participating.</string>
<key>NSHealthUpdateUsageDescription</key>
<string>$(PRODUCT_NAME) would like to update your health usage with heart rate data. Actually we never do anything of the kind but it seems Apple has lost control of X-Code and has few if any answers, so we will ask this permission.</string>
Run Code Online (Sandbox Code Playgroud)

以下是 InfoPlist.strings(英文)文件中的键/值:

NSHealthShareUsageDescription = "此应用程序使用 HealthKit 从患者那里获取心率以进行临床研究。您的心率将存储在您安全的个人临床试验记录中,并将用于进一步的医疗创新。"; NSHealthUpdateUsageDescription = "此应用与 HealthKit 共享心率";

有没有人遇到过这个问题并设法解决了它?下一步是转向 Apple,这可能是一项非常具有挑战性的任务,要引起他们的注意。提前致谢。

小智 6

您现在还必须将其添加到 Watch Extension 项目 info.plist。我有同样的问题,它通过这样做解决了。