How to open your app in Settings iOS 11
Here is the code you're looking for, I guess:
if let url = URL(string: UIApplicationOpenSettingsURLString) { if UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url, options: [:], completionHandler: nil) }}
And in addition, the updated version for swift 5 :
if let url = URL(string: UIApplication.openSettingsURLString) { if UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url, options: [:], completionHandler: nil) }}
Swift 4.2, iOS 12
Opening just the settings is possible with the function below:
extension UIApplication { ... @discardableResult static func openAppSettings() -> Bool { guard let settingsURL = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(settingsURL) else { return false } UIApplication.shared.open(settingsURL) return true }}
Usage: UIApplication.openAppSettings()
But be careful to NOT use "non-public URL scheme", such as: prefs:root=
or App-Prefs:root
, because otherwise your app will be rejected. This happened to me recently since I was trying to have a deeplink to the wifi section in the settings.
And if you want to make it work for both, older and newer iOS-versions, then do:
if let url = URL(string:UIApplicationOpenSettingsURLString) { if UIApplication.shared.canOpenURL(url) { if #available(iOS 10.0, *) { UIApplication.shared.open(url, options: [:], completionHandler: nil) } else { UIApplication.shared.openURL(url) } }}