Skip to content

NetworkExtension iOS xcode14.0 beta1

Manuel de la Pena edited this page Sep 2, 2022 · 6 revisions

#NetworkExtension.framework https://github.com/xamarin/xamarin-macios/pull/15847

diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEDNSSettings.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEDNSSettings.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEDNSSettings.h	2022-02-23 07:59:20.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEDNSSettings.h	2022-05-31 15:03:03.000000000 -0400
@@ -89,6 +89,12 @@
  */
 @property (copy, nullable) NSString *serverName API_AVAILABLE(macos(11.0), ios(14.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
 
+/*!
+ * @property identityReference
+ * @discussion The optional certificate identity keychain reference to use as a TLS client certificate.
+ */
+@property (copy, nullable) NSData *identityReference API_AVAILABLE(macos(13.0), ios(16.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
+
 @end
 
 API_AVAILABLE(macos(11.0), ios(14.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED
@@ -100,6 +106,12 @@
  */
 @property (copy, nullable) NSURL *serverURL API_AVAILABLE(macos(11.0), ios(14.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
 
+/*!
+ * @property identityReference
+ * @discussion The optional certificate identity keychain reference to use as a TLS client certificate.
+ */
+@property (copy, nullable) NSData *identityReference API_AVAILABLE(macos(13.0), ios(16.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEEthernetTunnelNetworkSettings.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEEthernetTunnelNetworkSettings.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEEthernetTunnelNetworkSettings.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEEthernetTunnelNetworkSettings.h	2022-05-31 14:52:04.000000000 -0400
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2022 Apple Inc.
+ * All rights reserved.
+ */
+
+#import <NetworkExtension/NEPacketTunnelNetworkSettings.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+ * @file NEEthernetTunnelNetworkSettings.h
+ * @discussion This file declares the NEEthernetTunnelNetworkSettings API. The NEEthernetTunnelNetworkSettings API is used to specify network settings for VPN tunnels.
+ *
+ * This API is part of NetworkExtension.framework
+ */
+
+/*!
+ * @interface NEEthernetTunnelNetworkSettings
+ * @discussion The NEEthernetTunnelNetworkSettings class declares the programmatic interface for an object that contains network settings.
+ *
+ * NEEthernetTunnelNetworkSettings is used by NEEthernetTunnelProviders to communicate the desired network settings for the packet tunnel to the framework. The framework takes care of applying the contained settings to the system.
+ *
+ * Instances of this class are thread safe.
+ */
+API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) __WATCHOS_PROHIBITED
+@interface NEEthernetTunnelNetworkSettings : NEPacketTunnelNetworkSettings
+
+/*!
+ * @method initWithTunnelRemoteAddress:
+ * @discussion This function initializes a newly-allocated NEEthernetTunnelNetworkSettings object with a given tunnel remote address and MAC address.
+ * @param address The address of the remote endpoint that is providing the tunnel service.
+ * @param ethernetAddress The ethernet address to be assigned to the tunnel interface. This string should be in the format "xx:xx:xx:xx:xx:xx", where each xx is a hexidecimal number between 0 and ff.
+ * @param mtu The MTU (Maxium Transmission Unit) in bytes to be assigned to the tunnel interface.
+ */
+- (instancetype)initWithTunnelRemoteAddress:(NSString *)address ethernetAddress:(NSString *)ethernetAddress mtu:(NSInteger)mtu API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) __WATCHOS_PROHIBITED;
+
+/*!
+ * @property ethernetAddress
+ * @discussion An NSString object containing the ethernet address of the tunnel interface.
+ */
+@property (readonly) NSString *ethernetAddress API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) __WATCHOS_PROHIBITED;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEEthernetTunnelProvider.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEEthernetTunnelProvider.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEEthernetTunnelProvider.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEEthernetTunnelProvider.h	2022-05-31 14:52:04.000000000 -0400
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2022 Apple Inc.
+ * All rights reserved.
+ */
+
+#ifndef __NE_INDIRECT__
+#error "Please import the NetworkExtension module instead of this file directly."
+#endif
+
+#import <NetworkExtension/NEPacketTunnelProvider.h>
+#import <Network/Network.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+ * @file NEEthernetTunnelProvider.h
+ * @discussion This file declares the NEEthernetTunnelProvider API. The NEEthernetTunnelProvider API is used to implement custom link-layer packet tunneling solutions.
+ */
+
+/*!
+ * @interface NEEthernetTunnelProvider
+ * @discussion The NEEthernetTunnelProvider class declares the programmatic interface of an object that implements the client side of a custom link-layer packet tunneling protocol.
+ *
+ * NEEthernetTunnelProvider is part of NetworkExtension.framework.
+ */
+API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) __WATCHOS_PROHIBITED
+@interface NEEthernetTunnelProvider : NEPacketTunnelProvider
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h	2022-02-23 07:59:22.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h	2022-05-31 14:49:34.000000000 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2015, 2018 Apple Inc.
+ * Copyright (c) 2013-2015, 2018, 2022 Apple Inc.
  * All rights reserved.
  */
 
@@ -37,6 +37,13 @@
 - (instancetype)initWithAddresses:(NSArray<NSString *> *)addresses subnetMasks:(NSArray<NSString *> *)subnetMasks API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
 
 /*!
+ * @method settingsWithAutomaticAddressing
+ * @discussion Create a NEIPv4Settings object that will obtain IP addresses and netmasks using DHCP.
+ * @return The initialized object.
+ */
++ (instancetype)settingsWithAutomaticAddressing API_UNAVAILABLE(macos, ios, tvos) __WATCHOS_PROHIBITED;
+
+/*!
  * @property addresses
  * @discussion An array of IPv4 addresses represented as dotted decimal strings. These addresses will be set on the virtual interface used by the VPN tunnel.
  */
@@ -49,6 +56,12 @@
 @property (readonly) NSArray<NSString *> *subnetMasks API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
 
 /*!
+ * @property router
+ * @discussion The address of the next-hop gateway router represented as a dotted decimal string. This property is ignored for TUN interfaces.
+ */
+@property (copy, nullable) NSString *router API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) __WATCHOS_PROHIBITED;
+
+/*!
  * @property includedRoutes
  * @discussion An array of NEIPv4Route objects. Traffic matching these routes will be routed through the virtual interface used by the VPN tunnel.
  */
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv6Settings.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv6Settings.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv6Settings.h	2022-02-23 07:15:59.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv6Settings.h	2022-05-31 14:52:03.000000000 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2015, 2018 Apple Inc.
+ * Copyright (c) 2013-2015, 2018, 2022 Apple Inc.
  * All rights reserved.
  */
 
@@ -37,6 +37,18 @@
 - (instancetype)initWithAddresses:(NSArray<NSString *> *)addresses networkPrefixLengths:(NSArray<NSNumber *> *)networkPrefixLengths API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
 
 /*!
+ * @method settingsWithAutomaticAddressing
+ * @discussion Create a NEIPv6Settings object that will obtain IP addresses and netmasks automatically.
+ */
++ (instancetype)settingsWithAutomaticAddressing API_UNAVAILABLE(macos, ios, tvos) __WATCHOS_PROHIBITED;
+
+/*!
+ * @method settingsWithLinkLocalAddressing
+ * @discussion Create a NEIPv6Settings object that will only use link-local IPv6 addresses.
+ */
++ (instancetype)settingsWithLinkLocalAddressing API_UNAVAILABLE(macos, ios, tvos) __WATCHOS_PROHIBITED;
+
+/*!
  * @property addresses
  * @discussion An array of IPv6 addresses represented strings. These addresses will be set on the virtual interface used by the VPN tunnel.
  */
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacket.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacket.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacket.h	2022-02-23 07:59:20.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacket.h	2022-05-31 14:52:03.000000000 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2020 Apple Inc.
+ * Copyright (c) 2016, 2020, 2022 Apple Inc.
  * All rights reserved.
  */
 
@@ -9,7 +9,6 @@
 
 #import <netinet/in.h>
 #import <NetworkExtension/NENetworkRule.h>
-#import "NEFilterFlow.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h	2022-02-23 07:56:07.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h	2022-05-31 14:52:05.000000000 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018 Apple Inc.
+ * Copyright (c) 2015, 2018, 2021, 2022 Apple Inc.
  * All rights reserved.
  */
 
@@ -38,7 +38,7 @@
  * @method startTunnelWithOptions:completionHandler:
  * @discussion This function is called by the framework when a new tunnel is being created. Subclasses must override this method to perform whatever steps are necessary to establish the tunnel.
  * @param options A dictionary containing keys and values passed by the provider's containing app. If the containing app did not start the tunnel then this parameter will be nil.
- * @param completionHandler A block that must be called when the process of startingt the tunnel is complete. If the tunnel cannot be established then the subclass' implementation of this method must pass a non-nil NSError object to this block. A value of nil passed to the completion handler indicates that the tunnel was successfully established.
+ * @param completionHandler A block that must be called when the process of starting the tunnel is complete. If the tunnel cannot be established then the subclass' implementation of this method must pass a non-nil NSError object to this block. A value of nil passed to the completion handler indicates that the tunnel was successfully established.
  */
 - (void)startTunnelWithOptions:(nullable NSDictionary<NSString *,NSObject *> *)options completionHandler:(void (^)(NSError * __nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
 
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h	2022-02-23 07:16:00.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h	2022-05-31 15:02:22.000000000 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2015, 2018 Apple Inc.
+ * Copyright (c) 2013-2015, 2018, 2022 Apple Inc.
  * All rights reserved.
  */
 
@@ -44,6 +44,55 @@
 NEVPN_EXPORT NSString * const NEVPNConnectionStartOptionPassword API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
 
 /*!
+ * @typedef NEVPNConnectionError
+ * @abstract VPN error codes
+ */
+typedef NS_ENUM(NSInteger, NEVPNConnectionError) {
+	/*! @const NEVPNConnectionErrorOverslept The VPN connection was terminated because the system slept for an extended period of time. */
+	NEVPNConnectionErrorOverslept = 1,
+	/*! @const NEVPNConnectionErrorNoNetworkAvailable The VPN connection could not be established because the system is not connected to a network. */
+	NEVPNConnectionErrorNoNetworkAvailable = 2,
+	/*! @const NEVPNConnectionErrorUnrecoverableNetworkChange The VPN connection was terminated because the network conditions changed in such a
+	 * way that the VPN connection could not be maintained. */
+	NEVPNConnectionErrorUnrecoverableNetworkChange = 3,
+	/*! @const NEVPNConnectionErrorConfigurationFailed The VPN connection could not be established because the configuration is invalid. */
+	NEVPNConnectionErrorConfigurationFailed = 4,
+	/*! @const NEVPNConnectionErrorServerAddressResolutionFailed The address of the VPN server could not be determined. */
+	NEVPNConnectionErrorServerAddressResolutionFailed = 5,
+	/*! @const NEVPNConnectionErrorServerNotResponding Network communication with the VPN server has failed. */
+	NEVPNConnectionErrorServerNotResponding = 6,
+	/*! @const NEVPNConnectionErrorServerDead The VPN server is no longer functioning. */
+	NEVPNConnectionErrorServerDead = 7,
+	/*! @const NEVPNConnectionErrorAuthenticationFailed The user credentials were rejected by the VPN server. */
+	NEVPNConnectionErrorAuthenticationFailed = 8,
+	/*! @const NEVPNConnectionErrorClientCertificateInvalid The client certificate is invalid. */
+	NEVPNConnectionErrorClientCertificateInvalid = 9,
+	/*! @const NEVPNConnectionErrorClientCertificateNotYetValid The client certificate will not be valid until some future point in time. */
+	NEVPNConnectionErrorClientCertificateNotYetValid = 10,
+	/*! @const NEVPNConnectionErrorClientCertificateExpired The validity period of the client certificate has passed. */
+	NEVPNConnectionErrorClientCertificateExpired = 11,
+	/*! @const NEVPNConnectionErrorPluginFailed The VPN plugin died unexpectedly. */
+	NEVPNConnectionErrorPluginFailed = 12,
+	/*! @const NEVPNConnectionErrorConfigurationNotFound The VPN configuration could not be found . */
+	NEVPNConnectionErrorConfigurationNotFound = 13,
+	/*! @const NEVPNConnectionErrorPluginDisabled The VPN plugin could not be found or needed to be updated. */
+	NEVPNConnectionErrorPluginDisabled = 14,
+	/*! @const NEVPNConnectionErrorNegotiationFailed The VPN protocol negotiation failed. */
+	NEVPNConnectionErrorNegotiationFailed = 15,
+	/*! @const NEVPNConnectionErrorServerDisconnected The VPN server terminated the connection. */
+	NEVPNConnectionErrorServerDisconnected = 16,
+	/*! @const NEVPNConnectionErrorServerCertificateInvalid The server certificate is invalid. */
+	NEVPNConnectionErrorServerCertificateInvalid = 17,
+	/*! @const NEVPNConnectionErrorServerCertificateNotYetValid The server certificate will not be valid until some future point in time. */
+	NEVPNConnectionErrorServerCertificateNotYetValid = 18,
+	/*! @const NEVPNConnectionErrorServerCertificateExpired The validity period of the server certificate has passed. */
+	NEVPNConnectionErrorServerCertificateExpired = 19,
+} API_AVAILABLE(macos(13.0), ios(16.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
+
+/*! @const NEVPNConnectionErrorDomain The VPN connection error domain */
+NEVPN_EXPORT NSString * const NEVPNConnectionErrorDomain API_AVAILABLE(macos(13.0), ios(16.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
+
+/*!
  * @interface NEVPNConnection
  * @discussion The NEVPNConnection class declares the programmatic interface for an object that manages VPN connections.
  *
@@ -83,6 +132,13 @@
 - (void)stopVPNTunnel API_AVAILABLE(macos(10.11), ios(8.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
 
 /*!
+ * @method fetchLastDisconnectErrorWithCompletionHandler:
+ * @discussion Retrive the most recent error that caused the VPN to disconnect. If the error was generated by the VPN system (including the IPsec client) then the error will be in the NEVPNConnectionErrorDomain error domain. If the error was generated by a tunnel provider app extension then the error will be the NSError that the provider passed when disconnecting the tunnel.
+ * @param handler A block which takes an optional NSError that will be called when the error is obtained.
+ */
+- (void)fetchLastDisconnectErrorWithCompletionHandler:(void (^)(NSError * _Nullable))handler API_AVAILABLE(macos(13.0), ios(16.0)) API_UNAVAILABLE(tvos) __WATCHOS_PROHIBITED;
+
+/*!
  * @property status
  * @discussion The current status of the VPN.
  */
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.apinotes /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.apinotes
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.apinotes	2022-02-11 07:53:37.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.apinotes	2022-05-25 21:05:37.000000000 -0400
@@ -20,6 +20,19 @@
     - Name: IPv6Settings
       PropertyKind: Instance
       SwiftName: ipv6Settings
+- Name: NEIPv4Settings
+  Methods:
+    - Selector: "settingsWithAutomaticAddressing"
+      MethodKind: Class
+      SwiftName: "automaticAddressing()"
+- Name: NEIPv6Settings
+  Methods:
+    - Selector: "settingsWithAutomaticAddressing"
+      MethodKind: Class
+      SwiftName: "automaticAddressing()"
+    - Selector: "settingsWithLinkLocalAddressing"
+      MethodKind: Class
+      SwiftName: "linkLocalAddressing()"
 SwiftVersions:
 - Version: 3.0
   Classes:
diff -ruN /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.h /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.h
--- /Applications/Xcode_13.3.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.h	2022-02-11 07:54:25.000000000 -0500
+++ /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.h	2022-05-25 21:06:41.000000000 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014-2015, 2017-2020 Apple Inc.
+ * Copyright (c) 2014-2015, 2017-2022 Apple Inc.
  * All rights reserved.
  */
 
@@ -35,6 +35,8 @@
 #import <NetworkExtension/NEHotspotConfigurationManager.h>
 #import <NetworkExtension/NEIPv4Settings.h>
 #import <NetworkExtension/NEIPv6Settings.h>
+#import <NetworkExtension/NEEthernetTunnelNetworkSettings.h>
+#import <NetworkExtension/NEEthernetTunnelProvider.h>
 #import <NetworkExtension/NENetworkRule.h>
 #import <NetworkExtension/NEOnDemandRule.h>
 #import <NetworkExtension/NEPacket.h>
Clone this wiki locally