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



我们的应用程序已从Apple Watch上的HealthKit获取心率数据超过2年。但是,自从XCode 11之后,这就不再有效了。事实上,该应用程序崩溃并出现错误:"必须在应用程序的Info.plist中设置NSHealthUpdateUsageDescription。我在应用程序信息.plist文件中设置了NSHealthUpdateUseDescription和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>

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

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

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

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

最新更新