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)")
                })
            }
        }

Respuestas a la pregunta(2)

Su respuesta a la pregunta