使用Swift 3连接到VPN

时间:2017-07-24 10:44:20

标签: swift vpn nevpnmanager

我尝试连接到iOS应用中的VPN。我所知道的是VPN类型(L2TP over IPSec),帐户名,密码和共享密钥。该连接通过Mac的网络设置工作。虽然,当你必须在代码中使用这些信息时,似乎有点复杂。

首先,我导入了必要的库。

import NetworkExtension

然后,我尝试加载偏好设置,如果出现错误,我会自己使用并保存。看起来像这样:

NEVPNManager.shared().loadFromPreferences { error in
        // config
        NEVPNManager.shared().saveToPreferences { error in
            if (error == nil) {
                do {
                    try NEVPNManager.shared().connection.startVPNTunnel()
                } catch {
                    print("Couldn't connect")
                }
            } else {
                print("NEVPNManager.saveToPreferencesWithCompletionHandler failed: \(error!.localizedDescription)")
            }
        }
    }

在哪里可以看到" // config",我的数据应该通过。如果我做得对,我不是百分百肯定的。

我有一个常数let p = NEVPNProtocolIPSec(),我放置了我的数据。它就像p.username = "smth"

问题是:p应填写哪些字段?我在哪里提出共享秘密?

---更新---

我总是收到错误:

  

NEVPNManager.saveToPreferencesWithCompletionHandler失败:无法完成操作。 (NEVPNErrorDomain错误4。)

我找不到任何具体的内容。

在配置期间,字段.sharedSecretReference和.passwordReference需要数据吗?宾语。我使用{/ 1}}前面加上

来获取它
keychain.get("passref")?.data(using: .utf8, allowLossyConversion: true)

(KeychainSwift类来自here

我在哪里犯了错误?

0 个答案:

没有答案