Las reglas de NetworkExtension connectOnDemand no funcionan
Tengo una aplicación con configuración VPN creada por el nuevo marco NetworkExtension. Funciona bien, pero ahora necesito agregar algunas reglas para activar esta VPN solo cuando intento conectarme a una URL específica. Planeé usar la función connectOnDemand de NEVPNManager, pero no parece estar funcionando para mí. Cuando estoy abriendohttp://some-site.com en safari mi conexión VPN debería establecerse, pero por alguna razón no lo hace. Probé un tipo diferente de configuraciones, así como también utilicé los archivos generados .mobileconfig para hacer que connectOnDemand funcionara, pero sin suerte. ¿Qué tiene de malo? Estoy probando un código como este:
let manager = NEVPNManager.sharedManager()
manager.enabled = true
manager.loadFromPreferencesWithCompletionHandler { (err) -> Void in
manager.removeFromPreferencesWithCompletionHandler { (err0) -> Void in
print("err0 \(err0)")
print("err \(err)")
let config = NEVPNProtocolIPSec()
config.localIdentifier = "NEVPNProtocolIPSec"
config.remoteIdentifier = "NEVPNProtocolIPSecRemote"
config.disconnectOnSleep = true
config.serverAddress = server
config.authenticationMethod = .Certificate
//configurating here
manager.protocolConfiguration = config
let onDemandRule1 = NEOnDemandRuleConnect()
onDemandRule1.DNSSearchDomainMatch = ["some-site.com", "*.some-site.com"]
manager.onDemandRules = [onDemandRule1]
manager.onDemandEnabled = true
manager.saveToPreferencesWithCompletionHandler({ (err2) -> Void in
print("err2 \(err2)")
})
}
}