I\'m trying to implement a packet sniffer similar to Charles for iOS using iOS\'s NetworkExtension framework.
So, that\'s a big goal and I\'m bre
There are a good number of reasons why your network extension process may not be starting:
os_log("STARTING TUNNEL!!!!")
and attach to your network extension process in Xcode via Debug -> Attach to Process by PID or Name...
before you attempt to start the VPNcom.example.vpn
then the network extension might be com.example.vpn.tunnel
.Info.plist
contains the NSExtension
dictionary with NSExtensionPointIdentifier
and NSExtensionPrincipalClass
containing com.apple.networkextension.packet-tunnel
and your NEPacketTunnelProvider
class (e.g. $(PRODUCT_MODULE_NAME).PacketTunnelProvider
) respectively.Personal VPN
entitlement.in startVPNTunnel func ,you should call setTunnelNetworkSettings,then the tunnel will started, after that ,you can read/write packet.
setTunnelNetworkSettings(nil) { error in
pendingStartCompletion(error)
}