Использование HKSource.default() в предикате HKQuery работает некорректно в watchOS 7

#apple-watch #healthkit #watchos-6 #watchos-7

#apple-watch #healthkit #watchos-6 #watchos-7

Вопрос:

В watchOS 6 я создавал HKQuery для своего приложения с помощью:

HKQuery.predicateForObjects(from: HKSource.default())

который при выполнении успешно возвращал данные HealthKit только для моего приложения.

В watchOS 7, когда я включаю этот предикат в запрос, я не получаю результатов при выполнении запроса. Где точно такой же запрос (с HKSource.default() предикатом) возвращает результаты в watchOS 6.

Примечание: я получаю ожидаемые результаты в iOS 14, поэтому я вижу неожиданные результаты только в watchOS.

Это ошибка watchOS 7? Или поведение изменилось для HKSource watchOS 7? Я не могу найти никакой соответствующей документации или отчетов об ошибках HKSource , которые объясняли бы эту разницу.

Комментарии:

1. Похоже, это проблема и с последней версией watchOS версии 7.1. Вы нашли какое-либо обходное решение?

2. Наша бизнес-логика позволила нам перейти HKDevice.local() на watchOS. Это определенно не эквивалентный запрос, поэтому он не будет жизнеспособным обходным путем во всех случаях.