无法添加"隐私 - 位置始终和何时使用使用说明"在info.plist中 - Xcode 9 Beta

时间:2017-07-11 11:42:40

标签: ios xcode plist core-location ios11

我在尝试向用户请求Xcode 9 Beta中的位置时收到以下错误。我尝试在info.plist中添加"隐私 - 使用中的位置使用说明" "隐私 - 位置使用说明" 说明但仍然得到同样的错误。

  

此应用尝试访问隐私敏感数据而不使用   用法说明。该应用程序的Info.plist必须包含两者   NSLocationAlwaysAndWhenInUseUsageDescription和   NSLocationWhenInUseUsageDescription键,用字符串值解释   用户如何使用此数据

当我尝试添加"隐私 - 位置始终和使用时使用说明" 时,它会自动重命名为"隐私 - 位置使用说明& #34; 在info.plist中

5 个答案:

答案 0 :(得分:3)

添加“ NSLocationAlwaysAndWhenInUseUsageDescription ”而不是“隐私 - 始终位置和使用时使用说明”。在当前的测试版中,它不会被重命名为任何内容,但它会显示iOS 11的正确对话框。

答案 1 :(得分:1)

请参阅https://developer.apple.com/documentation/corelocation/choosing_the_authorization_level_for_location_services/request_always_authorization?language=objc

基本上它表示您需要在应用的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