"prefs:root=CASTLE" 无法在 IOS10 中打开 iCloud 设置?

"prefs:root=CASTLE" not working to open iCloud Settings in IOS10?

在我的应用程序中,我有一个警报视图,可以选择打开 IOS 设置应用程序的 iCloud 部分。这以前适用于 IOS8/9 (Swift 2):

let settingsCloudKitUrl = URL(string:"prefs:root=CASTLE")
if let url = settingsCloudKitUrl {
    UIApplication.sharedApplication().openURL(url)
}

在 IOS10 (Swift 3) 中它不再工作,因为 openURL() 已被弃用。我将代码更改为以下内容:

let settingsCloudKitUrl = URL(string:"prefs:root=CASTLE")
if let url = settingsCloudKitUrl {
    if #available(iOS 10, *) {
        if UIApplication.shared.canOpenURL(url) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        }
    } else {
        UIApplication.shared.openURL(url)
    }
}

但是上面的代码不适用于 IOS10。 UIApplication.shared.canOpenURL(url) returns 错误。我需要更改什么才能在 IOS10 中再次运行?

对于 iOS 10 以后,将 prefs:root=CASTLE 更改为 App-Prefs:root=CASTLE,这样就可以正常工作了

let settingsCloudKitUrl = URL(string:"App-Prefs:root=CASTLE")
if let url = settingsCloudKitUrl {
    if #available(iOS 10, *) {
        if UIApplication.shared.canOpenURL(url) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        }
    } else {
        UIApplication.shared.openURL(url)
    }
}