如何从iOS应用程序打开VPN?(私有API允许)

6
当iOS设备进入“睡眠模式”时,即使已配置VPN,它也会被关闭。客户想要为他的iPad创建一个应用程序,并且必须使用VPN进行安全连接,因此所有内容都必须通过VPN完成。该应用程序需要频繁同步,但是iOS设备可能会自动关闭VPN。因此,每次需要互联网连接时(或保持其“活动状态”),我只需要再次触发它。如果使用私有API也可以(该应用程序仅分发给客户,而不是通过App Store)。或者使用任何应用程序,如Cisco AnyConnect,都可以完成工作。

2
请查看这个类似问题的答案。同时,尝试使用短语“keep alive”进行更多搜索。这是通常用来描述您不希望连接关闭的术语,这也是解决此问题的一种方法。 - Nate
你最终找到解决方案了吗?我也需要在我们的企业应用程序中检查或打开VPN(该应用程序也不会通过App Store部署)。https://dev59.com/VXbZa4cB1Zd3GeqPHZSK - Fabien
2个回答

7
两个想法: 1)您可以创建一个带VPN on demand的配置文件,但需要客户端证书认证。我猜想如果某些应用在睡眠模式下尝试访问VPN on demand部分定义的域名或主机,则VPN将被打开。 更新:有一段时间苹果因VPN on demand而被起诉,所以我相信他们放弃了这个功能,并在之后进行了修改。阅读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发生了一些变化,苹果加强了这个框架的安全性。
3)苹果可能授予一些应用程序额外的权限,以便它们可以构建其他应用程序无法构建的功能。例如,VPN客户端公司(如思科)获得了特殊的授权来构建在iOS中称为“VPN插件”的功能,这实际上是VPN客户端。

0

现在,使用iOS 8及以上版本中提供的NetworkExtension框架可以实现此功能。 如果您进入项目设置->功能,您会发现“个人VPN”。打开它,您就可以将该框架添加到您的项目中。 目前几乎没有官方文档,但您可以在这里查看WWDC视频https://developer.apple.com/videos/wwdc/2015/?id=717


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接