支持 iOS 11 位置权限,同时在 iOS 10 上禁止“使用时”

Jon*_*ron 5 privacy core-location ios ios10 ios11

使用 iOS 10 时,我需要用户在从不允许位置和始终允许位置之间进行选择,因此我NSLocationAlwaysUsageDescription在 Info.plist 中添加了密钥。

现在有了新的 iOS 11 版本,我需要添加以下两个键来获取位置权限提示 -NSLocationAlwaysAndWhenInUseUsageDescriptionNSLocationWhenInUseUsageDescription.

当我尝试删除看似多余的 时NSLocationWhenInUseUsageDescription,它不允许在 iOS 11 上显示位置提示

现在的问题是我的 iOS 10 用户在他们的设置中有一个“使用时”选项,这是我不想要的。

有什么方法可以创建一个版本,它允许 iOS 10 的“从不”和“总是”,并允许 iOS 11 上的所有三个选项?

Rav*_*avi 2

您需要在应用程序的 Info.plist 文件中包含 NSLocationWhenInUseUsageDescription 和 NSLocationAlwaysAndWhenInUsageDescription 键。(如果您的应用程序支持 iOS 10 及更早版本,则还需要 NSLocationAlwaysUsageDescription 键。)如果这些键不存在,授权请求会立即失败。

https://developer.apple.com/documentation/corelocation/choosing_the_authorization_level_for_location_services/request_always_authorization#see-also