Apple watch ';必须在应用程序';s Info.plist

Apple watch ';必须在应用程序';s Info.plist,apple-watch,healthkit,Apple Watch,Healthkit,我们的应用程序已经从苹果手表上的HealthKit获取了超过两年的心率数据。然而,自从XCode 11之后,这就不再有效了。事实上,应用程序崩溃时出现错误:“必须在应用程序的Info.plist中设置NSHealthUpdateUsageDescription。”。我在应用程序的info.plist文件中设置了NSHealthUpdateUsageDescription和NSHealthShareUsageDescription密钥。我已经阅读了所有论坛中的所有帖子,但对于应用程序为何会因为这个

我们的应用程序已经从苹果手表上的HealthKit获取了超过两年的心率数据。然而,自从XCode 11之后,这就不再有效了。事实上,应用程序崩溃时出现错误:“必须在应用程序的Info.plist中设置NSHealthUpdateUsageDescription。”。我在应用程序的info.plist文件中设置了NSHealthUpdateUsageDescription和NSHealthShareUsageDescription密钥。我已经阅读了所有论坛中的所有帖子,但对于应用程序为何会因为这个错误而崩溃,我并不幸运,因为我显然已经设置了相应的键。我在几篇文章中读到,描述一定很长(非常科学),所以我把我们的描述写得很长,没有运气

我们要求获得许多其他权利的许可,这些权利都很有效。事实上,我们有一个阶跃测试,它在苹果手表上也能正常工作

我应该这样说,我们已经将应用程序中的文本移到了可本地化的字符串中。这似乎无关紧要,因为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>
NSHealthShareUsageDescription
$(产品名称)希望捕捉您的心率快照,以便在临床研究中使用数据。请授予此权限以继续参与。
NSHealthUpdateUsageDescription
$(产品名称)希望使用心率数据更新您的健康使用情况。事实上,我们从未做过类似的事情,但苹果似乎已经失去了对X代码的控制,而且几乎没有任何答案,所以我们将请求这一许可。
以下是InfoPlist.strings(英文)文件中的键/值:

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


有没有人遇到过这个问题并设法度过了难关?下一步是转向苹果,这可能是一个非常具有挑战性的任务,以吸引他们的注意力。提前感谢。

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

发布崩溃的代码。我的理解是,这些描述仅用于批准,不用于代码执行。感谢您解决了我的问题。实际上,我已经将其添加到扩展名和WatchKit应用程序的info.plist文件中。它出错了,所以我两个都删除了,这是我的致命错误。同样,您必须在主应用程序和watchkit扩展应用程序中拥有这些密钥,但不能在watchkit应用程序中拥有这些密钥。