两年多来,我们的应用程序已从Apple Watch上的HealthKit捕获了心率数据。但是,从XCode 11开始,这不再起作用。实际上,应用程序崩溃并显示以下错误:'必须在应用程序的Info.plist中设置“ NSHealthUpdateUsageDescription”。我在应用程序的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>
以下是InfoPlist.strings(英语)文件中的键/值:
NSHealthShareUsageDescription =“此应用程序使用HealthKit从患者的心率中进行临床研究试验。您的心率将存储在您的安全,个人,临床试验记录中,并将用于进一步的医学创新。 NSHealthUpdateUsageDescription =“此应用程序与HealthKit共享心率”;
有人遇到过这个问题并设法解决了吗?下一步是转向苹果,要引起他们的关注可能是一项非常艰巨的任务。预先感谢。
答案 0 :(得分:2)
您现在还必须将其添加到Watch Extension项目info.plist。我遇到了同样的问题,这样做可以解决。