我正在为我的应用程序开发Apple Health集成。在某种程度上,我将此代码称为
HKHealthStore().authorizationStatus(for: )以请求用户读取健康数据的权限。问题是系统只显示一次设置页面。用户看到屏幕后,调用将立即返回。即使我卸载并重新安装应用程序,我也看不到设置屏幕。
我试图弄清楚的是,当系统显示设置屏幕时,如何测试我的应用程序是否正常运行。我怀疑这是一个问题,因为我从Crashlytics得到了奇怪的报告。
例如,有没有一个XCode构建参数,可以让我测试应用程序在一个从未见过这个应用程序的设备上的表现?
非常感谢

发布于 2020-10-04 21:32:30
问题中的代码将检查写入权限,但不会请求它们。
这将要求权限:
healthStore.requestAuthorization(
toShare: setOfWriteTypes,
read: setOfReadTypes
) { (success, error) in
}完成块的成功将告诉您权限屏幕已显示。在应用程序在设备上存在的整个时间内,它只显示一次。
如果您想要在关闭窗口或拒绝权限后由最终用户再次启用权限,您需要以某种方式告诉用户,用户应该转到Apple Health App并手动选择要读/写的权限。
此外,您不能检查,即用户是否授予了读取权限。Apple在当前的API中不允许这样做。只允许检查写入权限(您的代码片段执行检查)。为了了解用户是否授予了读取权限,您可以简单地查询步骤(或其他所需类型),查看快照中是否有数据,如果没有,则可能是用户拒绝了读取权限或根本没有数据。
顺便说一句。如果你愿意,你可以查看我的CocoaPod https://cocoapods.org/pods/HealthKitReporter。它是HealthKit框架之上的一个包装器,使读/写变得更容易。
https://stackoverflow.com/questions/63018610
复制相似问题