简体   繁体   中英

iOS permissions for user location

I am just creating an iOS app that needs to get the user location.

I have included the needed keys and values into info.plist like shown in the screenshot:

在此处输入图像描述

but when running the app there is a message in the debugger:

2020-04-25 18:51:16.395466+0200 Jogua[23008:1151035] This app has attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain both “NSLocationAlwaysAndWhenInUseUsageDescription” and “NSLocationWhenInUseUsageDescription” keys with string values explaining to the user how the app uses this data

Do I need to change anything else in the code?

EDIT

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    determineMyCurrentLocation()
}

func determineMyCurrentLocation() {
    locationManager = CLLocationManager()
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.requestAlwaysAuthorization()

    if CLLocationManager.locationServicesEnabled() {
        locationManager.startUpdatingLocation()
    }
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    let userLocation:CLLocation = locations[0] as CLLocation

    print("user latitude = \(userLocation.coordinate.latitude)")

     self.defaults.set(userLocation.coordinate.latitude, forKey: "mi_latitud")

    print("user longitude = \(userLocation.coordinate.longitude)")
    self.defaults.set(userLocation.coordinate.longitude, forKey: "mi_longitud")

}

func locationManager(_ manager: CLLocationManager, didFailWithError error: Error)
{
    print("Error \(error)")
}

As your debugger says, you are missing one entry in your info.plist . It can be misleading because the name the console prints, is not the actual key name inside info.plist .

You added:

Privacy - Location Always Usage Description
Privacy - Location Usage Description
Privacy - Location Always and When In Use Usage Description

What you need according to the debugger is:

Privacy - Location When In Use Usage Description
Privacy - Location Always and When In Use Usage Description

What you need to add in your case:

Privacy - Location When In Use Usage Description

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM