ios - 如何从 iOS 应用程序打开 VPN? (私有(private) API 可以)

标签 ios settings vpn iphone-privateapi

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

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

你们有什么想法吗?

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

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

最佳答案

两个想法:

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

更新:在某个时刻,Apple 因 VPN on demand 被起诉,所以我相信他们放弃了这个功能,并在返回后修改了它。最好阅读这篇适用于 iOS 7 的文章:http://support.apple.com/kb/ts4550

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

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

它有一组 API 来处理不同的连接接口(interface),定义如下:http://developer.apple.com/library/mac/#documentation/Networking/Reference/SCNetworkConfiguration/Reference/reference.html

这是私有(private) API。

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

3) Apple 可能会授予某些应用程序额外的权利,因此它们可以构建其他应用程序无法构建的功能。例如,VPN 客户端公司(如思科)获得了特殊权利来构建在 iOS 中称为“VPN 插件”的东西,这实际上是 VPN 客户端。

关于ios - 如何从 iOS 应用程序打开 VPN? (私有(private) API 可以),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940767/

相关文章:

ios - 如何在不进行 NSData 转换的情况下将 url 图像传递给 ios 中的按钮

ios - 如何在另一个脚本中调用 `pod` 或 'target'

java - Android studio 中的首选项设置如何将 EditTextPreference 中的值连接到 TextView

settings - Sublime Text 需要重新启动设置更改才能生效

Django CKEditor 工具栏设置

.net - 连接到 VPN 时,带有 Windows 容器的 Docker for Windows 无法正常工作

ios - 通过 itms-apps 打开应用商店

ios - 如何使用 NSNotificationCenter 在类之间传递对象 - 传递对象失败

Android 应用程序未使用自签名证书连接到 HTTPS

tcp - TCP over UDP VPN 可靠吗?