我尝试连接到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)
我在哪里犯了错误?