iOS - TunnelKit OpenVPNTunnelProvider ProviderConfigurationError

Я пытаюсь создать ios vpn-клиент с помощью Tunnelkit. Я следую этому руководству.

https://github.com/passepartoutvpn/tunnelkit

я могу скомпилировать и запустить приложение, но когда я пытаюсь подключиться, приложение вылетает и бросает.

Тема 1: Неустранимая ошибка: «попробуйте!» выражение неожиданно вызвало ошибку: TunnelKit.OpenVPNTunnelProvider.ProviderConfigurationError.credentials (подробности: 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
        }
    }
}

person Sathya Baman    schedule 22.07.2020    source источник


Ответы (2)


Вам необходимо выполнить шаги интеграции. https://github.com/passepartoutvpn/tunnelkit#demo

Включение групп приложений и возможности совместного использования связки ключей

person munibsiddiqui    schedule 27.10.2020

убедитесь, что значение appGroup совпадает с тем, которое вы установили в своей цели / Подписи и возможности / Группы приложений

person Petros Davtyan    schedule 14.03.2021