К сожалению, в документации Apple неясно, какие запросы авторизации и строки назначения действительно необходимы для macOS.
Также в StackOverflow есть много ответов, в которых строки назначения (macOS / *) 1044 *) смешаны (например, { ссылка }).
Что касается запросов на авторизацию, в inte rnet также существуют различные операторы: некоторые говорят, что это явный вызов (например, requestAlwaysAuthorization()
) необходимо, другие говорят, что достаточно вызова типа requestLocation()
.
В моем коде я использую только requestLocation()
(не явно requestAlwaysAuthorization()
), и предупреждение о конфиденциальности по-прежнему отображается правильно. Так что мне не нужно явно вызывать предупреждение о конфиденциальности с requestAlwaysAuthorization()
в macOS? Если requestAlwaysAuthorization()
необходим, почему он доступен только с macOS 10.15 +?
Что касается строк назначения, документация Apple более запутанная, чем просвещающая (https://developer.apple.com/documentation/corelocation/requesting_authorization_for_location_services):
NSLocationWhenInUseUsageDescription : SDK = только iOS (но если я позвоню requestAlwaysAuthorization()
, мне придется это указать ...?) NSLocationAlwaysAndWhenInUseUsageDescription : SDK = только iOS (но если я позвоню requestAlwaysAuthorization()
, мне придется это указать ...?) NSLocationUsageDescription : SDK = только macOS NSLocationAlwaysUsageDescription : SDK = устарело
В моем приложении macOS я указал только NSLocationUsageDescription . Достаточно ли этого? Нужны ли другие строки назначения, когда я явно вызываю requestAlwaysAuthorization()
?
К сожалению, я не могу найти никаких ясных утверждений для macOS по этому поводу в Inte rnet. В этом случае документация Apple неоднозначна и непонятна в моих глазах.