6
votes

If locationServicesEnabled return false, I'm prompting the user to enable their Location Services. The following URL works for 10.0+, redirecting the user to the Settings app and directly to the Location Services screen:

URL(string: "App-Prefs:root=Privacy&path=LOCATION")

However this doesn't work in iOS 11. It opens the Settings app, but doesn't drill down to the Location Services. Anyone knows what's the new URL for iOS 11+?

2

2 Answers

5
votes

Apple published a list of URLs which they explicitly allow at this link. Unfortunately if you use other URLs (such as the one you are trying to use) this can get your app rejected from the App Store.

Short answer: You cannot do what you are trying to do without breaking the App Store rules.

1
votes

Use this-

UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!)

Using App-prefs may lead to the rejection of the app on app store.

Or you can try this also-

if let bundleId = Bundle.main.bundleIdentifier,
let url = URL(string: "\(UIApplication.openSettingsURLString)&path=LOCATION/\(bundleId)") {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}