Не получая никакого решения и, наконец, предполагая, что это проблема с Healthkit SDK. Я дал права на чтение и запись. Теперь, если пользователь отключил доступ на чтение в разрешении, авторизация не должна давать статус true. Пожалуйста, обратитесь к приведенному ниже коду.
// ******* Дайте разрешение на различные действия ****** //
func givePermission()
{
permissionObj = [HKObjectType.workoutType(),
HKObjectType.quantityType(forIdentifier: .stepCount)!,
HKObjectType.quantityType(forIdentifier: .bodyMass)!,
HKObjectType.quantityType(forIdentifier: .bodyMassIndex)!,
HKObjectType.quantityType(forIdentifier: .height)!,
HKObjectType.quantityType(forIdentifier: .activeEnergyBurned)!,
HKObjectType.quantityType(forIdentifier: .distanceCycling)!,
HKObjectType.quantityType(forIdentifier: .distanceWalkingRunning)!,
HKObjectType.quantityType(forIdentifier: .heartRate)!,
HKObjectType.quantityType(forIdentifier: .flightsClimbed)!,
]
}
// ***** ** Проверка полномочий ********* //
func getAuthorization()
{
if HKHealthStore.isHealthDataAvailable() {
healthStore.requestAuthorization(toShare: permissionObj, read: permissionObj) { (status, error) in
print(status) //Print true even when read data permissions are denied and only write
// data access is given by user.
print(error)
}
}
}