I am currently trying to capture a packetFlow using NEPacketTunnelProvider.
I instantiate the NETunnelProviderManager, calling
try self.manager!.connection.startVPNTunnel()
where manager is
var manager:NETunnelProviderManager?
This works without throwing an error.
According to the documentation, at least from my understanding, system should then call the subclass of the NEPacketTunnelProvider, which overrides the method startTunnel.
However, startTunnel is never being called for me.
I create an NETunnelProviderProtocol for my NETunnelProviderManager as follows:
let providerProtocol = NETunnelProviderProtocol()
providerProtocol.providerBundleIdentifier = providerBundleIdentifier
providerProtocol.serverAddress = serverAddress
providerProtocol.providerConfiguration = [
"dns": dns,
"ip": ip,
"mtu": mtu,
"port": serverPort,
"server": serverAddress,
"subnet": subnet
]
self.manager!.protocolConfiguration = providerProtocol
where providerBundleIdentifer is the identifier for the subclass of NEPacketTunnelProvider.
Am I mistaken that startVPNTunnel tells system to call the overriden method startTunnel of my NEPacketTunnelProvider subclass, which is identified by the providerBundleIdentifier?
Thanks.