Подключите VPN IKEv2, это работает на платформе iOS, но macOS не работает, сталкиваясь с той же проблемой - PullRequest
0 голосов
/ 04 апреля 2019

Я сталкиваюсь с проблемой, когда я подключаю протокол IKEv2 в macOS Development, программа работает нормально при разъединении, но когда я работаю над подключением, необходимо перейти к настройке соединений

Я использую протокол IKEv2 для VPN-подключения, используяФайл NetworkExtention,

public func connectIKEv2(config: Configuration, onError: @escaping (String)->Void) {
    let p = NEVPNProtocolIKEv2()

    if config.pskEnabled {
        p.authenticationMethod = NEVPNIKEAuthenticationMethod.sharedSecret
    } else {
        p.authenticationMethod = NEVPNIKEAuthenticationMethod.none
    }
    p.serverAddress = config.server
    p.disconnectOnSleep = false
    p.deadPeerDetectionRate = NEVPNIKEv2DeadPeerDetectionRate.medium
    p.username = config.account
    p.passwordReference = config.getPasswordRef()
    p.sharedSecretReference = config.getPSKRef()
    p.disableMOBIKE = false

    p.disableRedirect = false
    p.enableRevocationCheck = false
    p.enablePFS = false
    p.useExtendedAuthentication = true
    p.useConfigurationAttributeInternalIPSubnet = false

    // two lines bellow may depend of your server configuration
    p.remoteIdentifier = config.server
    p.remoteIdentifier = config.remote
    p.localIdentifier = config.account

    loadProfile { _ in
        self.manager.protocolConfiguration = p
        if config.onDemand {
            self.manager.onDemandRules = [NEOnDemandRuleConnect()]
            self.manager.isOnDemandEnabled = true
        }

        self.manager.isEnabled = true

        self.saveProfile { success in
            if !success {
                onError("Unable to save vpn profile")
                return
            }
            self.loadProfile() { success in
                if !success {
                    onError("Unable to load profile,")
                    return
                }
                let result = self.startVPNTunnel()
                print("Show Result, \(result)")
                if !result {
                    onError("Can't connect")
                }
            }
        }
    }
}
private func startVPNTunnel() -> Bool {
    do {
        try self.manager.connection.startVPNTunnel()
        return true
    } catch NEVPNError.configurationInvalid {
        NSLog("Failed to start tunnel (configuration invalid)")
    } catch NEVPNError.configurationDisabled {
        NSLog("Failed to start tunnel (configuration disabled)")
    } catch {
        NSLog("Failed to start tunnel (other error)")
    }
    return true
}

Я сталкиваюсь с ошибкой в ​​macOS Development,

open (/ var / db / DetachedSignatures) - неопределенная ошибка: 0 Ошибка подключения: невозможно загрузить профиль,

но какой-то рабочий код кода при разработке под iOS,

...