Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

322
Vistas
¿Cómo eliminar todos los administradores existentes de NETunnelProviderManager?

Me encontré con un problema al usar NetworkExtension en Swift para utilizar OpenVPN o Wireguard con NETunnelProviderManager .

Tengo el siguiente código en ViewDidLoad de mi mainViewController. No lo cargo dos veces y funciona bien cuando uso el IKEv2 integrado de Apple.

 NotificationCenter.default.removeObserver(self, name: NSNotification.Name.NEVPNStatusDidChange, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(vpnStatusDidChange(_:)), name: NSNotification.Name.NEVPNStatusDidChange, object: nil)

Pero cuando uso OpenVPN o Wireguard a través de Networkextension, estos eventos de cambio de estado de red siguen activando n+1. Primera vez dispara una vez. La segunda vez que me conecto y desconecto, veo que los estados de la red se disparan dos veces, luego tres veces, etc.

He estado investigando mucho y parece que el problema está en el siguiente código:

 func loadTunnelProviderManager(completion:@escaping () -> Void) { NETunnelProviderManager.loadAllFromPreferences { (managers, error) in if error == nil { self.tunnelProviderManager = managers?.first ?? NETunnelProviderManager() completion() } } }

Si no recupero managers?.first y lo instalo cada vez:

 self.tunnelProviderManager = NETunnelProviderManager()

Entonces el problema está resuelto. Sin embargo, cada vez que me conecto a la VPN, inevitablemente también se crea una nueva configuración de VPN en la configuración, lo cual no es lo ideal.

TL;RD

Para resumir, ¿cómo elimino todos los administradores existentes antes de instanciar un nuevo NETunnelProviderManager ? Sé que esto podría ir en contra de la convención, pero resolverá el problema.

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda