我试图在我的项目中实现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作为属性视图
我试图创建一个新项目,并且运行顺利,但是,当我尝试在现有项目中实施该项目时,该项目将无法正常工作。
答案 0 :(得分:1)
从iOS 11开始,如果不提供“使用时”,就无法请求“始终”:如果仅设置“隐私权-始终使用位置描述”,它将不会出现,并且会显示错误消息“信息。 plist必须同时包含NSLocationAlwaysAndWhenInUseUsageDescription
和NSLocationWhenInUseUsageDescription
键……”。在Xcode 9 beta中,我必须使用NSLocationAlwaysAndWhenInUseUsageDescription
键; Xcode不会选择匹配的隐私密钥。
位置经理要求“始终”: