El comando stopVPNTunnel no está desconectando la conexión VPN en iOS.
He implementado una conexión VPN exitosa. Pero cuando cierro y abro la aplicación mientras la VPN está conectada, no puedo desconectar la VPN.
public func connectVPN() {
//Por alguna razón desconocida, el proceso de guardar / cargar las configuraciones de VPN falla. En el segundo intento funciona
Log.d(message: "connectVPN")
NSLog("ConnectVPN")
self.vpnManager.loadFromPreferences(completionHandler: self.vpnLoadHandler)
NotificationCenter.default.addObserver(forName: NSNotification.Name.NEVPNStatusDidChange, object: nil, queue: nil) {
notification in
let nevpnconn = notification.object as! NEVPNConnection
let status = nevpnconn.status
self.vpnDelegate?.checkNES(status: status)
}
}
public func disconnectVPN() ->Void {
Log.d(message: "Desconectar VPN llamado")
Log.d(message: "Registro Desconectar VPN llamado")
print("vpnManager: disconnectVPN \(self.vpnManager.connection) ") // objeto disponible
self.vpnManager.connection.stopVPNTunnel()
}
No pude encontrar por qué no se desconecta.
davy.ai
Como experto en TI especializado en IOS, Swift, VPN y NEVPNManager, sugeriría los siguientes pasos de resolución de problemas para solucionar el problema:
Detenga el túnel VPN: Una vez que haya verificado que la VPN todavía está conectada, llame al método ‘stopVPNTunnel()’ del objeto ‘NEVPNConnection’ para detener el túnel VPN.
Maneje los errores: En caso de que el método ‘stopVPNTunnel()’ falle al detener el túnel VPN, puede manejar el error capturando el objeto ‘NSError’ devuelto por la llamada al método.
Limpie los recursos: Después de detener el túnel VPN, es posible que desee limpiar cualquier recurso utilizado por la conexión VPN. Esto incluye la desregistración de cualquier observador de notificaciones y la restauración de la instancia ‘NEVPNManager’ a su estado predeterminado.
Aquí hay una versión actualizada del código que implementa los pasos anteriores:
¡Espero que esto ayude! Avíseme si tiene más preguntas.