У нас есть приложение, которое использует местоположение. В iOS 13.1.3 мы запрашиваем у пользователя разрешения местоположения, используя requestAlwaysAuthorization()
.
. Если пользователь выбирает «Когда используется» или «Отклонено», iOS ведет себя как ожидалось - CLLocationManager.authorizationStatus()
сообщает о состояниикак .authorizedAlways
или .denied
соответственно.
Однако, если пользователь выбирает «Just Once», CLLocationManager.authorizationStatus()
первоначально сообщит .authorizedWhenInUse
, но через некоторое время - в течение миллисекунд - будетпереключиться на .authorizedAlways
Это вызывает некоторые проблемы для нашего приложения - мы доставляем одно сообщение на основе начальных сообщенных настроек, а затем меняем другое при изменении сообщаемых настроек. У нас есть некоторые потенциальные обходные пути, но что-то мы делаем не так? Есть ли лучший способ определить фактическую настройку местоположения или это просто ошибка / необычное поведение от Apple?