NetworkExtension connectOnDemand-Regeln funktionieren nicht
Ich habe eine App mit VPN-Konfiguration, die vom neuen NetworkExtension-Framework erstellt wurde. Es funktioniert einwandfrei, aber jetzt muss ich einige Regeln hinzufügen, um dieses VPN nur zu aktivieren, wenn ich versuche, eine Verbindung zu einer bestimmten URL herzustellen. Ich hatte vor, die ConnectOnDemand-Funktion von NEVPNManager zu verwenden, aber sie scheint bei mir nicht zu funktionieren. Wenn ich öffnehttp: //some-site.co Auf Safari sollte meine VPN-Verbindung hergestellt werden, aber aus irgendeinem Grund ist dies nicht der Fall. Ich habe eine andere Art von Konfigurationen ausprobiert und generierte .mobileconfig-Dateien verwendet, damit connectOnDemand funktioniert, aber ohne Erfolg. Was stimmt damit nicht? Ich teste mit folgendem Code:
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)")
})
}
}