首页 > 解决方案 > 如何在 info.plist 中开启隐私 VPN 配置

问题描述

我正在创建一个应用程序,它将过滤来自 Iphone 或 Ipad 的所有网络流量。我看了看,info.plist但我不知道我必须选择什么设置。我的预期是这样的。

在此处输入图像描述

这是我的代码:

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

有什么帮助吗?

标签: iosswift

解决方案


我想我找到了答案。像这样的东西,但我没有开发帐户,所以我现在无法确认。

转到Xcode -> 项目 -> 目标 -> 功能并启用 VPN 并启用网络


推荐阅读