我们正在制作一个只读取健康工具包数据的应用程序。即使我们只阅读,当我们把应用程序推到TestFlight时,我们会收到一封电子邮件,上面写着它丢失了NSHealthUpdateUsageDescription键。我们只提供NSHealthShareUsageDescription密钥,因为我们只是在读取数据。因此,我们现在被迫为NSHealthUpdateUsageDescription密钥提供与NSHealthShareUsageDescription相同的文本,即使它永远不会被使用。
此外,当我们删除应用程序时,iOS显示了一个警告,询问用户在尝试删除应用程序时是否要删除Health数据。
为什么我们要得到警报,为什么我们只需要从Health读取数据时提供NSHealthUpdateUsageDescription呢?
发布于 2018-01-29 04:26:44
为了保护用户隐私,在iOS 10.0上或之后链接的iOS应用程序,和读取用户健康数据的应用程序,必须静态地声明这样做的意图。将NSHealthUpdateUsageDescription键包含在应用程序的Info.plist文件中,并为该键提供一个用途字符串。
即使您没有真正地编写或更改HealthKit数据,您仍然在访问它。在一些地区(如美国,我怀疑在欧盟内部更为强烈),健康隐私被认为是一件相对重要的法律要求的事情。因此,您的应用程序的用户必须正式承认并允许您的应用程序读取HealthKit数据。
至于您为什么会看到数据可能被删除的警告,我怀疑有一些数据是由HealthKit API编写的(例如,标记您的应用程序允许读取数据,或者记录数据读取的内容)。
https://stackoverflow.com/questions/48493980
复制相似问题