我们正在开发一款只能从Health Kit中读取数据的应用。即使我们只阅读,当我们将应用程序推送到TestFlight时,我们会收到一封电子邮件,说它缺少NSHealthUpdateUsageDescription键。我们只提供NSHealthShareUsageDescription密钥,因为我们只读取数据。因此,我们现在被迫提供NSHealthUpdateUsageDescription密钥,其文本与NSHealthShareUsageDescription相同,即使它永远不会被使用。
此外,当我们删除应用程序时,iOS会显示一条警告,询问用户是否要在尝试删除应用程序时删除Health Kit数据。
为什么我们得到警报,为什么我们只需要从Health Kit读取数据时需要提供NSHealthUpdateUsageDescription?
答案 0 :(得分:1)
根据official NSHealthUpdateUsageDescription
documentation:
为保护用户隐私,在iOS 10.0或之后链接的iOS应用和 读取用户的健康数据,必须静态声明意图 这样做。在您的应用中包含NSHealthUpdateUsageDescription键 Info.plist文件并为此密钥提供目的字符串。
即使您没有真正编写或更改HealthKit数据,您仍然可以访问它。在某些地区(例如美国,我怀疑欧盟内部的情况更为强烈),健康隐私被认为是一个相对重要的地区。法律要求的东西。因此,您的应用用户必须正式确认并允许您的应用读取HealthKit数据。
至于为什么您会看到有关可能被删除的数据的警报,我怀疑HealthKit API会写一小部分数据(例如,标记您的应用程序可以阅读数据,或者可能记录了哪些数据被读取)