自 iOS 9 测试版发布以来,Apple 开放了 NetworkExtension.framework,让开发人员可以在设备上实现自定义协议 VPN 客户端。
当我尝试使用以下代码连接自定义 VPN 时
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)"