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

当iOS设备进入“睡眠模式”时,即使configuration的VPN不幸closures。

一个想要iPad的应用程序的客户必须使用VPN来保证安全,所以任何事情都必须通过VPN来完成。 应用程序必须同步很多,但iOS设备可能会自行closuresVPN。 这就是为什么我只需要每次需要互联网连接(或保持活着 )时再次触发它。

你们有没有想过什么?

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

或者使用任何像Cisco AnyConnect这样的应用程序来完成这项工作。

两个想法:

1)您可以根据需要使用VPN创buildconfiguration文件。 这虽然需要客户端证书authentication。 我的猜测是,如果某些应用程序尝试访问睡眠模式下按需VPN部分中定义的域或主机,则VPN将打开。

更新 :在某个时刻,苹果公司被起诉了VPN的需求,所以我相信他们放弃了这个function,并在返回修改后。 阅读iOS 7的这篇文章是个好主意: http : //support.apple.com/kb/ts4550

2)我为这个问题提供的想法( iOS6在非越狱设备上切换WiFi )。 这里是从那里的文本的副本:

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

它有一套API来处理不同的连接接口,这些接口定义在这里: http : //developer.apple.com/library/mac/#documentation/Networking/Reference/SCNetworkConfiguration/Reference/reference.html

这一个是私人API。

更新 :我相信SystemConfiguration和苹果围绕这个框架收紧了安全性。

3)苹果公司可能授予一些应用程序额外的权利,所以他们可以build立function,没有其他应用程序可以build立。 例如,VPN客户端公司(如思科)获得了特殊的权利来构buildiOS中所谓的“VPN插件”,这本质上是VPN客户端。

现在可以使用iOS8以上的NetworkExtension框架。 如果你去项目设置 – >function,你会发现“个人VPN”。 通过打开它,可以将框架添加到项目中。 几乎没有官方文档,但你可以在这里查看WWDCvideohttps://developer.apple.com/videos/wwdc/2015/?id=717