NSLocationWhenInUseUsageDescription错误持续显示

时间:2018-09-05 04:46:29

标签: ios swift core-location

我试图在我的项目中实现MapKit和CoreLocation。不幸的是,错误持续显示

  

此应用已尝试访问没有使用说明的隐私敏感数据。该应用程序的Info.plist必须包含一个NSLocationWhenInUseUsageDescription键,该键具有字符串值,向用户解释该应用程序如何使用此数据

所以这是我的代码和 info.plist

import Foundation
import CoreLocation
import MapKit

class ViewController: UITabBarController, CLLocationManagerDelegate{

    let locationManager: CLLocationManager = CLLocationManager()

    @IBAction func backBarButton(_ sender: Any) {
        self.dismiss(animated: true, completion:nil)
    }


    override func viewDidLoad() {
        super.viewDidLoad()

        locationManager.delegate = self
        locationManager.requestWhenInUseAuthorization()
        locationManager.startUpdatingLocation()
    }
}

打开为源代码info.plist

<key>NSLocationWhenInUseUsageDescription</key>
    <string>accept to get location</string>
    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    <string>description</string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>description</string>
    <key>NSLocationUsageDescription</key>
    <string>description</string>

打开.plist作为属性视图

enter image description here

  

我试图创建一个新项目,并且运行顺利,但是,当我尝试在现有项目中实施该项目时,该项目将无法正常工作。

1 个答案:

答案 0 :(得分:1)

从iOS 11开始,如果不提供“使用时”,就无法请求“始终”:如果仅设置“隐私权-始终使用位置描述”,它将不会出现,并且会显示错误消息“信息。 plist必须同时包含NSLocationAlwaysAndWhenInUseUsageDescriptionNSLocationWhenInUseUsageDescription键……”。在Xcode 9 beta中,我必须使用NSLocationAlwaysAndWhenInUseUsageDescription键; Xcode不会选择匹配的隐私密钥。

位置经理要求“始终”:

click link for more description