In macOS, this can be done using multiple utunx virtual interfaces with routing.
Is it possible to achieve the same in iOS?
The short answer is no. The longer answer is in the Configuration Model explanation here. A summary of this is that only one NEPacketTunnelProvider can run on the system at one time because they are considered Enterprise VPNs. If a Personal VPN (NEVPNManager) is running on the system and a Enterprise VPN (NEPacketTunnelProvider) is started then the Enterprise VPN will take precedence over the traffic claimed by the Personal VPN. Only one Personal VPN can claim traffic at one time. If an Enterprise VPN (NEPacketTunnelProvider) is running and only claiming a small subset of traffic and a Personal VPN is enabled, a Personal VPN would have an opportunity to claim traffic not routed by the Enterprise VPN (this is a very rare case though).Is it possible to achieve the same in iOS?
The short answer is no. The longer answer is in the Configuration Model explanation here. A summary of this is that only one NEPacketTunnelProvider can run on the system at one time because they are considered Enterprise VPNs. If a Personal VPN (NEVPNManager) is running on the system and a Enterprise VPN (NEPacketTunnelProvider) is started then the Enterprise VPN will take precedence over the traffic claimed by the Personal VPN. Only one Personal VPN can claim traffic at one time. If an Enterprise VPN (NEPacketTunnelProvider) is running and only claiming a small subset of traffic and a Personal VPN is enabled, a Personal VPN would have an opportunity to claim traffic not routed by the Enterprise VPN (this is a very rare case though).Is it possible to achieve the same in iOS?
I have same task: using simultaneously vpns for home, work, yggdrasil and onion resources from my iOS devices.
The only solutions for iOS are to use one vpn in the middle or per-app vpns at mdm enterprise devices.
My way is order cheap vps where I setup all vpns I need and iOS use one vpn tunnel that route to all my destinations. Then the solution will be: you can’t develop one-app vpn client but you can develop service with iOS client app. And btw this must have commercial success if clients will trust this service. Client don’t have ipv6 - your service give it, have ipv6 and don’t ipv4 - service fix, also access to *.meshname, *.onion, opennic dns, homes and office merging etc