我正在尝试使用Tunnelkit创建一个ios vpn客户端。我正在学习本教程。
https://github.com/passepartoutvpn/tunnelkit
能够编译和运行应用程序,但当我尝试连接时,应用程序会崩溃并抛出。
线程1:致命错误:“尝试!”表达式意外引发错误: TunnelKit.OpenVPNTunnelProvider.ProviderConfigurationError.credentials(details:"keychain.set()")
任何已经安装了隧道工具包OpenVPN的人,请帮助解决这个问题。
func connect() {
let server = textServer.text!
let domain = textDomain.text!
let hostname = ((domain == "") ? server : [server, domain].joined(separator: "."))
let port = UInt16(textPort.text!)!
let socketType: SocketType = switchTCP.isOn ? .tcp : .udp
let credentials = OpenVPN.Credentials(textUsername.text!, textPassword.text!)
let cfg = Configuration.make(hostname: hostname, port: port, socketType: socketType)
let proto = try! cfg.generatedTunnelProtocol(
withBundleIdentifier: tunnelIdentifier,
appGroup: appGroup,
credentials: credentials
)
let neCfg = NetworkExtensionVPNConfiguration(title: "new title", protocolConfiguration: proto, onDemandRules: [])
vpn.reconnect(configuration: neCfg) { (error) in
if let error = error {
print("configure error: \(error)")
return
}
}
}
发布于 2020-10-27 10:14:39
您需要遵循集成步骤。https://github.com/passepartoutvpn/tunnelkit#demo
启用应用程序组和密钥链共享功能
https://stackoverflow.com/questions/63037583
复制相似问题