首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NETunnelProviderManager iOS 9上的startVPNTunnel

NETunnelProviderManager iOS 9上的startVPNTunnel
EN

Stack Overflow用户
提问于 2015-08-13 18:40:47
回答 4查看 4.5K关注 0票数 1

自VPN9Beta发布以来,苹果公司开放了NetworkExtension.framework,允许开发人员在设备上实现自定义协议iOS客户端。

当我尝试使用以下代码连接自定义VPN时

代码语言:javascript
复制
    let providerProtocol = NETunnelProviderProtocol()
    providerProtocol.serverAddress = "example.com"

    let manager = NETunnelProviderManager()
    manager.protocolConfiguration = providerProtocol
    manager.enabled = true
    manager.saveToPreferencesWithCompletionHandler({ error in
        guard error == nil else {
            print("saveToPreferencesWithCompletionHandler \(error)")
            return
        }

        do {
            try manager.connection.startVPNTunnel()
        } catch {
            print("startVPNTunnel \(error)")
        }
    })

它将失败,并显示startVPNTunnel Error Domain=NEVPNErrorDomain Code=1 "(null)"

EN

回答 4

Stack Overflow用户

发布于 2016-03-31 11:32:32

您必须在启动VPN之前调用loadFromPreferencesWithCompletionHandler

票数 2
EN

Stack Overflow用户

发布于 2016-11-04 12:43:51

我认为在你使用startVPNTunnel之前,你需要像这样使用loadFromPreferences:

代码语言:javascript
复制
manager.saveToPreferences(completionHandler: { (error) -> Void in
                if error != nil{
                }
                else{
                    manager.loadFromPreferences(completionHandler: { (error) -> Void in
                        if error != nil{
                        }
                        else{
                            do{
                                try manager.connection.startVPNTunnel(options: nil)
                            }
                            catch{
                            }
                        }
                    })
                }
            })
票数 2
EN

Stack Overflow用户

发布于 2015-09-16 14:19:59

我认为您的配置无效。其中,协议必须配置有您想要加载的VPN插件的捆绑标识符。

我强烈建议抓取一些示例代码作为起点。配置这些野兽之一是一项相当复杂的任务,并且有许多尖锐的边缘,其中一个微小的错误可能会导致它完全失败,而没有任何明显的迹象表明它失败的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31985914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档