Как получить адрес сервера и remoteIdentifier?

Я могу сохранить конфигурацию VPN. Подскажите пожалуйста, как сделать адрес сервера переменным или получить адрес сервера и для чего нужен удаленный идентификатор?

Я использовал этот пример для справки: Подключиться к VPN с сертификатом - iOS /Свифт

Как я могу это решить?

      func connectVPN(){
        do {
        if let file = URL(string: "example.com") {
                let data = try Data(contentsOf: file)
                let json = try JSONSerialization.jsonObject(with: data, options: [])
                if let object = json as? [String: String] {
                    // json is a dictionary
                    var data_VPN = object["VPN_data"]!
                    //print("Donebro:\(data_VPN)")
                    let certificate = data_VPN
                    let nsdata = certificate.data(using: .utf8)

                    let base64EncodedData = nsdata!.base64EncodedData()

                    print("base64StoreData:\(nsdata!)")
                    print("base64StoreNewData:\(base64EncodedData)")

                    var vpnManager = NEVPNManager.shared()

                                        vpnManager.loadFromPreferences { error in

                                            if vpnManager.`protocol` == nil{
                                                let newIPSec = NEVPNProtocolIPSec()

                                                newIPSec.serverAddress = ""
                                                newIPSec.localIdentifier = ""
                                                newIPSec.remoteIdentifier = ""
                                                newIPSec.useExtendedAuthentication = true
                                                newIPSec.identityData = base64EncodedData as! Data
                                                newIPSec.authenticationMethod = NEVPNIKEAuthenticationMethod.certificate
                                                print("VPNDATA:\(newIPSec)")

                                                if #available(iOS 9, *) {
                                                vpnManager.protocolConfiguration = newIPSec
                                                } else {
                                                vpnManager.`protocol` = newIPSec
                                                }

                                                vpnManager.isEnabled = true
                                                vpnManager.saveToPreferences(completionHandler: { (error) -> Void in
                                                    if ((error) != nil) {
                                                        print("VPN Preferences error: 2")
                                                    }
                                                    else {
                                                        vpnManager.loadFromPreferences(completionHandler: { (error) in
                                                            if ((error) != nil) {
                                                                print("VPN Preferences error: 2")
                                                            }
                                                            else {
                                                                var startError: NSError?
                                                                do {
                                                                    try vpnManager.connection.startVPNTunnel()
                                                                }
                                                                catch let error as NSError {
                                                                    startError = error
                                                                    print(startError)
                                                                }
                                                                catch {
                                                                    print("Fatal Error")
                                                                    fatalError()
                                                                }
                                                                if ((startError) != nil) {
                                                                    print("VPN Preferences error: 3")
                                                                    let alertController = UIAlertController( title: "Oops..", message: "Something went wrong while connecting to the VPN. Please try again.", preferredStyle: UIAlertControllerStyle.alert)
                                                                    alertController.addAction( UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.default,handler: nil))
                                                                    self.present(alertController, animated: true, completion: nil)
                                                                    print(startError)
                                                                }
                                                                else {
                                                                    //VPNStatusDidChange(nil)
                                                                    print("Start VPN")
                                                                }
                                                            }
                                                        })
                                                    }
                                                })
                    }

                } else if let object = json as? [Any] {
                    // json is an array
                    for anItem in object as! [Dictionary<String, AnyObject>] {
                        let industryName = anItem["VPN_data"] as! String                                               
                    }
                } else {
                    print("JSON is invalid")
                }
            } else {
                print("no file")
            }
        } catch {
            print(error.localizedDescription)
        }

    }
}

person Rahul Borade    schedule 01.01.2020    source источник