Ответ состоит из двух частей.
Чтобы заставить его работать на ходьбе или беге , вы можете использовать следующий код:
workoutBuilder?.beginCollection(withStart: Date(), completion: { (success, error) in
guard success == true else {
#warning ("deal with failure")
return
}
workoutBuilder?.dataSource = HKLiveWorkoutDataSource(healthStore:self.healthStore, workoutConfiguration: self.workoutConfig)
// ?? this is the important bit ??
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .distanceWalkingRunning)!, predicate: nil)
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .heartRate)!, predicate: nil)
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned)!, predicate: nil)
})
Вы можете адаптировать это для плавания и катания на лыжах.
В настоящее время нет способа использовать конструктор тренировок для определения расстояния до других видов активного отдыха, например, гребли.
Я буду регистрировать радар для этого.