我在尝试向用户请求Xcode 9 Beta中的位置时收到以下错误。我尝试在info.plist中添加"隐私 - 使用中的位置使用说明" 和"隐私 - 位置使用说明" 说明但仍然得到同样的错误。
此应用尝试访问隐私敏感数据而不使用 用法说明。该应用程序的Info.plist必须包含两者 NSLocationAlwaysAndWhenInUseUsageDescription和 NSLocationWhenInUseUsageDescription键,用字符串值解释 用户如何使用此数据
当我尝试添加"隐私 - 位置始终和使用时使用说明" 时,它会自动重命名为"隐私 - 位置使用说明& #34; 在info.plist中
答案 0 :(得分:3)
添加“ NSLocationAlwaysAndWhenInUseUsageDescription ”而不是“隐私 - 始终位置和使用时使用说明”。在当前的测试版中,它不会被重命名为任何内容,但它会显示iOS 11的正确对话框。
答案 1 :(得分:1)
基本上它表示您需要在应用的Info.plist文件中包含NSLocationWhenInUseUsageDescription和NSLocationAlwaysAndWhenInUsageDescription键。 (如果您的应用支持iOS 10及更早版本,则还需要NSLocationAlwaysUsageDescription键。)如果这些键不存在,则授权请求会立即失败。
我目前正在使用Xcode版本9.0 beta 5(9M202q),它没有问题。
答案 2 :(得分:1)
重要提示:
NSLocationAlwaysAndWhenInUseUsageDescription
,
不是
NSLocationAlwaysAndWhenInUsageDescription
。
Apple在他们的Request Always Authorization指南(上次访问时间:2017年9月20日)中输入了错字。
答案 3 :(得分:0)
您需要以这种方式在Info.plist中添加 NSLocationAlwaysAndWhenInUseUsageDescription
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Application requires user’s location information while the app is running in the foreground.</string>
或者最好也添加这些
<key>NSLocationAlwaysUsageDescription</key>
<string>Will you allow this app to always know your location?</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Do you allow this app to know your current location?</string>
答案 4 :(得分:0)
只要抬起头,这不是汉斯建议的错字,这是正确的。设置的格式令人困惑,但符合
之类的内容“ [APIModule] [设置] [KeyType]”
因此,该设置所针对的模块是应用程序的“ NSLocation”调用,该设置与用户位置偏好设置的“始终且在使用中”设置有关,而KeyType是“用法说明”,因此生成的密钥为
while($gettingSubItems = odbc_fetch_array($selectSubItems)){
$subItemRows[] = $gettingSubItems;
}
或分为复合词
NSLocationAlwaysAndWhenInUseUsageDescription
NSLocation
AlwaysAndWhenInUse