如何在info.plist中打开隐私VPN配置

时间:2019-12-27 16:32:07

标签: ios swift

我正在创建一个应用程序,该应用程序将过滤来自Iphone或Ipad的所有网络流量。 我调查了info.plist,但不知道该选择什么设置。 我期望这样的事情。

enter image description here

这是我的代码:

import Foundation
import NetworkExtension

@objc(TestingProxy)
class TestingProxy: NSObject {
  let vpnManager = NEVPNManager.shared();

  private var vpnLoadHandler: (Error?) -> Void {
    return { (error:Error?) in
      if ((error) != nil) {
        print("Could not load VPN Configurations")
        return;
      }
      let p = NEVPNProtocolIPSec()
      p.username = "SOME_USERNAME"
      p.serverAddress = "example.com"
      p.authenticationMethod = NEVPNIKEAuthenticationMethod.sharedSecret

      let kcs = KeychainService();
      kcs.save(key: "SHARED", value: "MY_SHARED_KEY")
      kcs.save(key: "VPN_PASSWORD", value: "MY_PASSWORD")

      p.sharedSecretReference = kcs.load(key: "SHARED")
      p.passwordReference = kcs.load(key: "VPN_PASSWORD")
      p.useExtendedAuthentication = true
      p.disconnectOnSleep = false

      self.vpnManager.protocolConfiguration = p
      self.vpnManager.localizedDescription = "Contensi"
      self.vpnManager.isEnabled = true
      self.vpnManager.saveToPreferences(completionHandler: self.vpnSaveHandler)
    }
  }

  private var vpnSaveHandler: (Error?) -> Void {
    return { (error:Error?) in
      if (error != nil) {
        print("Could not save VPN Configurations")
        return
      } else {
        do {
          try self.vpnManager.connection.startVPNTunnel()
        } catch let error {
            print("Error starting VPN Connection \(error.localizedDescription)");
          }
        }
      }
    }
}

有帮助吗?

1 个答案:

答案 0 :(得分:0)

我想我找到了答案。像这样,但是我没有开发帐户,所以暂时无法确认。

转到 Xcode->项目->目标->功能,然后启用VPN和启用网络