I use this func
@IBAction func addVPN(sender: AnyObject) { let newManager = NETunnelProviderManager() newManager.protocolConfiguration = NETunnelProviderProtocol() newManager.localizedDescription = "Demo VPN" newManager.protocolConfiguration?.serverAddress = "192.168.2.125:8890" self.configManager = newManager self.configManager!.saveToPreferencesWithCompletionHandler { (error) -> Void in if let saveError = error { SSLog("Failed to save the configuration: \(saveError)") return } } }
and system.log show err
ViewController.swift.addVPN[121]:Failed to save the configuration: Error Domain=NEVPNErrorDomain Code=5 "permission denied" UserInfo={NSLocalizedDescription=permission denied}