Проблема с watchOS 10 CLLocationManager при получении разрешения на определение местоположения пользователя ⇐ IOS
-
Гость
Проблема с watchOS 10 CLLocationManager при получении разрешения на определение местоположения пользователя
У меня есть приложение для iOS и сопутствующее приложение для watchOS уже пару лет. Раньше все работало нормально. Теперь с iOS 17 и watchOS 10, похоже, возникает проблема с запросом у пользователей разрешения на использование их местоположения. У меня есть let locationManager = CLLocationManager(), и далее я затем спрашиваю у пользователя разрешение на получение его местоположения, вызывая locationManager.requestWhenInUseAuthorization(). Проблема сейчас в том, что ничего не происходит. Не появляется диалоговое окно, спрашивающее пользователя, можно ли узнать его местоположение. Все остальные разрешения, которые я запрашиваю (например, HealthKit), представлены, но не для местоположения.
Конечно, у меня есть правильная запись в Info.plist для Конфиденциальность — Местоположение при использовании Описание использования. Опять же... все это работало нормально до watchOS 10.
Я немного покопался и нашел две интересные вещи.
[*]
Если я переделаю свое приложение в приложение ТОЛЬКО для часов, диалоговое окно появится снова. Но я, конечно, этого не хочу. Я хочу сохранить приложение-компаньон.
[*]
В консольном приложении я обнаружил следующее сообщение:
standard 10:10:50.684329+0200 locationd {"msg":"#AuthPrompt #Warning Задержка запроса авторизации, размещенного при недостаточном использовании", "ClientKeyPath":iat.: , "requestType":0, "inUseLevel":0} Итак, он жалуется, что мое приложение недостаточно используется?!?
Итак, итог: вызов locationManager.requestWhenInUseAuthorization НЕ открывает системный диалог с запросом у пользователя разрешения. Поэтому статус авторизации всегда будет оставаться notDetermined. Кто-нибудь еще сталкивался с этой проблемой? И есть ли решение этой проблемы?
У меня есть приложение для iOS и сопутствующее приложение для watchOS уже пару лет. Раньше все работало нормально. Теперь с iOS 17 и watchOS 10, похоже, возникает проблема с запросом у пользователей разрешения на использование их местоположения. У меня есть let locationManager = CLLocationManager(), и далее я затем спрашиваю у пользователя разрешение на получение его местоположения, вызывая locationManager.requestWhenInUseAuthorization(). Проблема сейчас в том, что ничего не происходит. Не появляется диалоговое окно, спрашивающее пользователя, можно ли узнать его местоположение. Все остальные разрешения, которые я запрашиваю (например, HealthKit), представлены, но не для местоположения.
Конечно, у меня есть правильная запись в Info.plist для Конфиденциальность — Местоположение при использовании Описание использования. Опять же... все это работало нормально до watchOS 10.
Я немного покопался и нашел две интересные вещи.
[*]
Если я переделаю свое приложение в приложение ТОЛЬКО для часов, диалоговое окно появится снова. Но я, конечно, этого не хочу. Я хочу сохранить приложение-компаньон.
[*]
В консольном приложении я обнаружил следующее сообщение:
standard 10:10:50.684329+0200 locationd {"msg":"#AuthPrompt #Warning Задержка запроса авторизации, размещенного при недостаточном использовании", "ClientKeyPath":iat.: , "requestType":0, "inUseLevel":0} Итак, он жалуется, что мое приложение недостаточно используется?!?
Итак, итог: вызов locationManager.requestWhenInUseAuthorization НЕ открывает системный диалог с запросом у пользователя разрешения. Поэтому статус авторизации всегда будет оставаться notDetermined. Кто-нибудь еще сталкивался с этой проблемой? И есть ли решение этой проблемы?
Мобильная версия