NetworkExtension lets you customize and extend core networking on iOS, macOS, tvOS, watchOS, and visionOS, building VPNs, content filters, DNS proxies, hotspot helpers, and packet tunnel providers. You implement networking logic by subclassing NEProvider variants such as NETunnelProvider, NEAppProxyProvider, NEDNSProxyProvider, and NEFilterDataProvider, and you configure and control these extensions through manager classes like NEVPNManager, NETunnelProviderManager, NEDNSProxyManager, and NEDNSSettingsManager. App proxy and filter providers work with flow objects such as NEAppProxyTCPFlow, NEAppProxyUDPFlow, NEFilterSocketFlow, and NEFilterBrowserFlow, returning decisions through types like NEFilterNewFlowVerdict and NEFilterControlVerdict. DNS behavior is described with NEDNSSettings, NEDNSOverTLSSettings, and NEDNSOverHTTPSSettings, while proxy configuration uses NEProxyServer and NEProxySettings.
Providers 7
The base provider class and its subclasses that implement the networking logic of an extension.
- ClNEProvideriOS 9.0+@interface NEProvider
- ClNETunnelProvideriOS 9.0+@interface NETunnelProvider
- ClNEPacketTunnelProvideriOS 9.0+@interface NEPacketTunnelProvider
- ClNEAppProxyProvideriOS 9.0+@interface NEAppProxyProvider
- ClNEDNSProxyProvideriOS 11.0+@interface NEDNSProxyProvider
- ClNEAppPushProvideriOS 14.0+@interface NEAppPushProvider
- EnNEProviderStopReasoniOS 9.0+@typedef NEProviderStopReason
VPN Configuration and Control 9
Managers and connection objects that configure, save, and control personal and per-app VPN tunnels.
- ClNEVPNManageriOS 8.0+@interface NEVPNManager
- ClNEVPNConnectioniOS 8.0+@interface NEVPNConnection
- ClNETunnelProviderManageriOS 9.0+@interface NETunnelProviderManager
- ClNETunnelProviderSessioniOS 9.0+@file NETunnelProviderSession.h
- EnNEVPNStatusiOS 8.0+@typedef NEVPNStatus
- StNEVPNErroriOS 8.0+A structure describing errors that occur while configuring or controlling a VPN.
- StNETunnelProviderErroriOS 9.0+A structure describing errors raised by a tunnel provider extension.
- EnNEVPNConnectionErroriOS 16.0+@typedef NEVPNConnectionError
- EnNETunnelProviderRoutingMethodiOS 9.0+@typedef NETunnelProviderRoutingMethod
VPN Protocols and IKEv2 Parameters 14
Protocol configuration objects and cryptographic parameters that describe how a VPN connection is established.
- ClNEVPNProtocoliOS 8.0+@interface NEVPNProtocol
- ClNEVPNProtocolIPSeciOS 8.0+@interface NEVPNProtocolIPSec
- ClNEVPNProtocolIKEv2iOS 8.0+@interface NEVPNProtocolIKEv2
- ClNETunnelProviderProtocoliOS 9.0+@interface NETunnelProviderProtocol
- ClNEVPNIKEv2SecurityAssociationParametersiOS 8.0+@class NEVPNIKEv2SecurityAssociationParameters
- ClNEVPNIKEv2PPKConfigurationiOS 18.0+@interface NEVPNIKEv2PPKConfiguration
- EnNEVPNIKEAuthenticationMethodiOS 8.0+@typedef NEVPNIKEAuthenticationMethod
- EnNEVPNIKEv2EncryptionAlgorithmiOS 8.0+@typedef NEVPNIKEv2EncryptionAlgorithm
- EnNEVPNIKEv2IntegrityAlgorithmiOS 8.0+@typedef NEVPNIKEv2IntegrityAlgorithm
- EnNEVPNIKEv2DiffieHellmanGroupiOS 8.0+@typedef NEVPNIKEv2DiffieHellmanGroup
- EnNEVPNIKEv2DeadPeerDetectionRateiOS 8.0+@typedef NEVPNIKEv2DeadPeerDetectionRate
- EnNEVPNIKEv2PostQuantumKeyExchangeMethodiOS 26.0+@typedef NEVPNIKEv2PostQuantumKeyExchangeMethod
- EnNEVPNIKEv2CertificateTypeiOS 8.3+@typedef NEVPNIKEv2CertificateType
- EnNEVPNIKEv2TLSVersioniOS 11.0+@typedef NEVPNIKEv2TLSVersion
On-Demand Rules 9
Rules that determine when a VPN connection should start automatically based on network conditions.
- ClNEOnDemandRuleiOS 8.0+@interface NEOnDemandRule
- ClNEOnDemandRuleConnectiOS 8.0+@interface NEOnDemandRuleConnect
- ClNEOnDemandRuleDisconnectiOS 8.0+@interface NEOnDemandRuleDisconnect
- ClNEOnDemandRuleIgnoreiOS 8.0+@interface NEOnDemandRuleIgnore
- ClNEOnDemandRuleEvaluateConnectioniOS 8.0+@interface NEOnDemandRuleEvaluateConnection
- ClNEEvaluateConnectionRuleiOS 8.0+@interface NEEvaluateConnectionRule
- EnNEOnDemandRuleActioniOS 8.0+@typedef NEOnDemandRuleAction
- EnNEOnDemandRuleInterfaceTypeiOS 8.0+@typedef NEOnDemandRuleInterfaceType
- EnNEEvaluateConnectionRuleActioniOS 8.0+@typedef NEEvaluateConnectionRuleAction
Tunnel Network Settings and Routing 8
Settings objects that describe the IP addresses, routes, and DNS used by a tunnel.
- ClNETunnelNetworkSettingsiOS 9.0+@interface NETunnelNetworkSettings
- ClNEPacketTunnelNetworkSettingsiOS 9.0+@interface NEPacketTunnelNetworkSettings
- ClNEIPv4SettingsiOS 9.0+@interface NEIPv4Settings
- ClNEIPv4RouteiOS 9.0+@interface NEIPv4Route
- ClNEIPv6SettingsiOS 9.0+@interface NEIPv6Settings
- ClNEIPv6RouteiOS 9.0+@interface NEIPv6Route
- ClNEPacketTunnelFlowiOS 9.0+@interface NEPacketTunnelFlow
- ClNEPacketiOS 10.0+@interface NEPacket
App Proxy Flows 8
Flow objects and rules used by app proxy providers to read and write application traffic.
- ClNEAppProxyFlowiOS 9.0+@interface NEAppProxyFlow
- ClNEAppProxyTCPFlowiOS 9.0+@interface NEAppProxyTCPFlow
- ClNEAppProxyUDPFlowiOS 9.0+@interface NEAppProxyUDPFlow
- PrNEAppProxyUDPFlowHandlingSubclasses of NEAppProxyProvider and NEDNSProxyProvider can conform to this protocol to receive UDP data flows.
- ClNEAppProxyProviderManageriOS 9.0+@interface NEAppProxyProviderManager
- ClNEAppRuleiOS 9.0+@interface NEAppRule
- ClNEFlowMetaDataiOS 9.0+@interface NEFlowMetaData
- StNEAppProxyFlowErroriOS 9.0+A structure describing errors that occur while handling an app proxy flow.
Content Filtering 17
Filter providers, flows, and verdicts that inspect and make decisions about network traffic.
- ClNEFilterProvideriOS 9.0+@interface NEFilterProvider
- ClNEFilterDataProvideriOS 9.0+@interface NEFilterDataProvider
- ClNEFilterControlProvideriOS 9.0+@interface NEFilterControlProvider
- ClNEFilterManageriOS 8.0+@interface NEFilterManager
- ClNEFilterProviderConfigurationiOS 9.0+@interface NEFilterProviderConfiguration
- ClNEFilterFlowiOS 9.0+@interface NEFilterFlow
- ClNEFilterSocketFlowiOS 9.0+@interface NEFilterSocketFlow
- ClNEFilterBrowserFlowiOS 9.0+@interface NEFilterBrowserFlow
- ClNEFilterVerdictiOS 9.0+@interface NEFilterVerdict
- ClNEFilterNewFlowVerdictiOS 9.0+@interface NEFilterNewFlowVerdict
- ClNEFilterDataVerdictiOS 9.0+@interface NEFilterDataVerdict
- ClNEFilterControlVerdictiOS 9.0+@interface NEFilterControlVerdict
- ClNEFilterRemediationVerdictiOS 9.0+@interface NEFilterRemediationVerdict
- ClNEFilterReportiOS 11.0+@interface NEFilterReport
- EnNEFilterActioniOS 11.0+@typedef NEFilterAction
- EnNEFilterManagerErroriOS 8.0+@typedef NEFilterManagerError
- EnNETrafficDirectioniOS 13.0+@typedef NETrafficDirection
URL Filtering 4
Types that filter web traffic by URL through a managed control provider.
- ClNEURLFilterAn object that describes URL-based content filtering settings.
- ClNEURLFilterManagerThe NEURLFilterManager class declares the programmatic interface for an object that manages URL filtering configurations.
- PrNEURLFilterControlProviderThe NEURLFilterControlProvider protocol defines the programmatic interface for an object that is responsible for fetching pre-filter data.
- StNEURLFilterPrefilterA struct containing a prefilter returned by fetchPrefilter() implementation. NEURLFilterPrefilter must contain a Bloom filter built
DNS Proxy and Settings 9
Managers, providers, and settings that proxy DNS or configure encrypted DNS resolution.
- ClNEDNSProxyManageriOS 11.0+@interface NEDNSProxyManager
- ClNEDNSProxyProviderProtocoliOS 11.0+@interface NEDNSProxyProviderProtocol
- ClNEDNSSettingsiOS 9.0+@interface NEDNSSettings
- ClNEDNSOverTLSSettingsiOS 14.0+An object that configures DNS resolution over a TLS-encrypted connection.
- ClNEDNSOverHTTPSSettingsiOS 14.0+An object that configures DNS resolution over an HTTPS-encrypted connection.
- ClNEDNSSettingsManageriOS 14.0+@interface NEDNSSettingsManager
- EnNEDNSProtocoliOS 14.0+@typedef NEDNSProtocol
- EnNEDNSProxyManagerErroriOS 11.0+@typedef NEDNSProxyError
- EnNEDNSSettingsManagerErroriOS 14.0+@typedef NEDNSSettingsManagerError
Relays 6
Configuration and management for network relays that route traffic through proxy servers.
- ClNERelayiOS 17.0+@interface NERelay
- ClNERelayManageriOS 17.0+@interface NERelayManager
- ClNEProxyServeriOS 9.0+@interface NEProxyServer
- ClNEProxySettingsiOS 9.0+@interface NEProxySettings
- EnNERelayManagerErroriOS 17.0+@typedef NERelayManagerError
- EnNERelayManagerClientErroriOS 18.0+@typedef NERelayManagerClientError
Hotspot Configuration and Helpers 16
Types that configure Wi-Fi hotspots and implement hotspot helper logic for captive networks.
- ClNEHotspotConfigurationiOS 11.0+@interface NEHotspotConfiguration
- ClNEHotspotConfigurationManageriOS 11.0+@interface NEHotspotConfigurationManager
- ClNEHotspotEAPSettingsiOS 11.0+@interface NEHotspotEAPSettings
- ClNEHotspotHS20SettingsiOS 11.0+@interface NEHotspotHS20Settings
- ClNEHotspotManagerThis file declares the NEHotspotManager API. The NEHotspotManager API is used to enable or disable
- ClNEHotspotNetworkiOS 9.0+@interface NEHotspotNetwork
- ClNEHotspotHelper@interface NEHotspotHelper
- ClNEHotspotHelperCommandiOS 9.0+@interface NEHotspotHelperCommand
- ClNEHotspotHelperResponseiOS 9.0+@interface NEHotspotHelperResponse
- PrNEHotspotAuthenticationProviderNEHotspotAuthenticationProvider protocol defines methods that can be adopted for handling
- PrNEHotspotEvaluationProviderNEHotspotEvaluationProvider protocol defines methods and properties that can be adopted
- EnNEHotspotNetworkSecurityTypeiOS 15.0+@typedef NEHotspotNetworkSecurityType
- EnNEHotspotHelperCommandTypeiOS 9.0+@typedef NEHotspotHelperCommandType
- EnNEHotspotHelperResultiOS 9.0+@typedef NEHotspotHelperResult
- EnNEHotspotHelperConfidenceiOS 9.0+@typedef NEHotspotHelperConfidence
- EnNEHotspotConfigurationErroriOS 11.0+@typedef NEHotspotConfigurationError
App Push and Private Networks 4
Managers and types that support app push providers and private cellular networks.
- ClNEAppPushManageriOS 14.0+@interface NEAppPushManager
- PrNEAppPushDelegateiOS 14.0+@protocol NEAppPushDelegate
- ClNEPrivateLTENetworkiOS 15.0+@interface NEPrivateLTENetwork
- StNEAppPushManagerErroriOS 14.0+A structure describing errors raised by an app push manager.
Endpoints and Connections 11
Lower-level networking primitives for endpoints, paths, and TCP and UDP connections.
- ClNWEndpoint@interface NWEndpoint
- ClNWHostEndpoint@interface NWHostEndpoint
- ClNWBonjourServiceEndpoint@interface NWBonjourServiceEndpoint
- ClNWPath@interface NWPath
- ClNWTCPConnection@interface NWTCPConnection
- ClNWUDPSession@interface NWUDPSession
- ClNWTLSParametersDEPRECATION NOTICE
- PrNWTCPConnectionAuthenticationDelegate@protocol NWTCPConnectionAuthenticationDelegate
- EnNWPathStatus@typedef NWPathStatus
- EnNWTCPConnectionState@typedef NWTCPConnectionState
- EnNWUDPSessionState@typedef NWUDPSessionState
Classes 4
- ClNEAppExtensionConfigurationThe NEAppExtensionConfiguration class adopts AppExtensionConfiguration protocol. The class
- ClNEHotspotAuthenticationProviderConfigurationManages NEHotspotAuthenticationProvider's communication with the framework
- ClNEHotspotEvaluationProviderConfigurationManages NEHotspotEvaluationProvider's communication with the framework
- ClNEURLFilterControlProviderConfigurationManages NEURLFilterControlProvider's communication with the framework
Type Aliases 1
- TyNEHotspotHelperHandler@typedef NEHotspotHelperHandler