我们正在开发一个在iOS上运行Per-App VPN的应用程序。此容器应用程序专为我们的某些特定应用程序而设计,以便在特定时间通过VPN连接网络,而所有其他应用程序则不会。
在安装容器应用程序和配置文件之后,我们希望这些特定应用程序在VPN打开之前正常连接网络。一旦在容器应用程序中手动打开VPN,这些特定应用程序就会通过VPN连接网络。
我有一些问题无法找到答案。
此外,曾经发生过一些非常奇怪的事情。我从iPhone中删除了配置文件,从容器应用程序中删除了NETestAppMapping。然后我通过正常方式在容器应用程序中打开VPN。完成后,我发现我们想要的功能已经实现。
非常感谢你。
与Per-App VPN关联的应用程序仅通过Per-App VPN路由其流量。如果禁用按需,并且VPN已关闭,则不会从应用程序流出任何流量。
因此,我看到有两种方法可以让应用程序在某些时间内通过Per-App VPN进行路由:
NEPacketTunnelProvider
实现VPN,VPN始终按需启动并继续“活动”,但VPN应用程序可用于切换NEPacketTunnelProvider
是否实际通过VPN路由流量,或者它是否只是作为一个TCP / UDP转发器。值得注意的是,NETestAppMapping
仅适用于开发版本,不适用于分发版本(例如Enterprise(内部)或App Store)。您将需要使用MDM来使用Per-App VPN。
有关使用NEPacketTunnelProvider
和数据包转发的示例,我将看看本文:Does your phone spy on you? by Severin Amrein。