如何从iOS应用程序打开VPN? (私人API好)

时间:2013-02-18 16:23:33

标签: ios settings vpn iphone-privateapi

当iOS设备进入“睡眠模式”时,不幸的是,即使配置的VPN也会关闭。

希望iPad版应用的客户使用VPN来提高安全性,因此任何事情都必须通过VPN完成。该应用程序必须同步很多,但iOS设备可能会自行关闭VPN。这就是为什么我只需要在每次需要互联网连接时再次触发它(或保持活着)。

你们这些人有什么想法吗?

即使使用私有API也可以(应用程序只会分发给客户,而不是通过App Store)。

或使用 Cisco AnyConnect 等任何应用都可以胜任。

2 个答案:

答案 0 :(得分:7)

两个想法:

1)您可以根据需要使用VPN创建配置文件。这需要客户端证书身份验证。我的猜测是,如果某个应用程序尝试在睡眠模式下访问VPN on Demand部分中定义的域或主机,VPN将会打开。

更新:在某些时候,苹果公司被要求对VPN进行起诉,所以我相信他们放弃了这个功能,并在退回之后进行了修改。阅读iOS 7的这篇文章是个好主意:http://support.apple.com/kb/ts4550

2)我为这个问题提出的想法(iOS6 toggle WiFi on non-jailbroken device)。这是来自那里的文本副本:

我认为查看SystemConfiguration.framework是有意义的。

它有一组API可以使用不同的连接接口,这些接口在这里定义:http://developer.apple.com/library/mac/#documentation/Networking/Reference/SCNetworkConfiguration/Reference/reference.html

这是私有API。

更新:我相信SystemConfiguration有一些变化,Apple加强了围绕这个框架的安全性。

3)Apple可能会向某些应用程序授予其他权利,因此他们可以构建其他应用程序无法构建的功能。例如,VPN客户端公司(如思科)获得了特殊权利,可以在iOS中构建名为“VPN插件”的内容,而VPN插件本质上就是VPN客户端。

答案 1 :(得分:0)

现在可以使用iOS 8及更高版本中提供的NetworkExtension框架。 如果你去项目设置 - >功能,你会发现“个人VPN”。通过打开它,您可以将框架添加到您的项目中。 几乎没有官方文档,但您可以在https://developer.apple.com/videos/wwdc/2015/?id=717

查看WWDC视频