-
Notifications
You must be signed in to change notification settings - Fork 518
NetworkExtension watchOS xcode16.0 b1
Rolf Bjarne Kvinge edited this page Sep 3, 2024
·
3 revisions
#NetworkExtension.framework https://github.com/xamarin/xamarin-macios/pull/21171
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyFlow.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyFlow.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyFlow.h 2024-04-08 10:32:56
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyFlow.h 2024-05-30 03:52:05
@@ -67,12 +67,20 @@
@interface NEAppProxyFlow : NSObject
/*!
+ * @method openWithLocalFlowEndpoint:completionHandler:
+ * @discussion This function is used by an NEProvider implementation to indicate that it is ready to handle flow data.
+ * @param localEndpoint The address and port that should be used as the local endpoint of the socket associated with this flow. If the source application already specified a local endpoint by binding the socket then this parameter is ignored.
+ * @param completionHandler A block that is called when the process of opening flow is complete. A nil value passed to this block indicates that the flow was opened successfully. A non-nil NSError value indicates that the flow failed to open successfully.
+ */
+- (void)openWithLocalFlowEndpoint:(nullable nw_endpoint_t)localEndpoint completionHandler:(void (^)(NSError *__nullable error))completionHandler API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
+
+/*!
* @method openWithLocalEndpoint:completionHandler:
* @discussion This function is used by an NEProvider implementation to indicate that it is ready to handle flow data.
- * @param localEndpoint The address and port that should be used as the local endpoint of the socket associated with this flow. If the source application already specifed a local endpoint by binding the socket then this parameter is ignored.
+ * @param localEndpoint The address and port that should be used as the local endpoint of the socket associated with this flow. If the source application already specified a local endpoint by binding the socket then this parameter is ignored.
* @param completionHandler A block that is called when the process of opening flow is complete. A nil value passed to this block indicates that the flow was opened successfully. A non-nil NSError value indicates that the flow failed to open successfully.
*/
-- (void)openWithLocalEndpoint:(nullable NWHostEndpoint *)localEndpoint completionHandler:(void (^)(NSError *__nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(watchos, tvos);
+- (void)openWithLocalEndpoint:(nullable NWHostEndpoint *)localEndpoint completionHandler:(void (^)(NSError *__nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("openWithLocalFlowEndpoint:completionHandler:", macos(10.11, 15.0), ios(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
* @method closeReadWithError:
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyProvider.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyProvider.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyProvider.h 2024-04-08 10:21:26
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyProvider.h 2024-05-30 03:52:05
@@ -7,6 +7,7 @@
#error "Please import the NetworkExtension module instead of this file directly."
#endif
+#import <Network/Network.h>
#import <NetworkExtension/NETunnelProvider.h>
NS_ASSUME_NONNULL_BEGIN
@@ -54,13 +55,27 @@
/*!
* @method handleNewFlow:
- * @discussion This function is called by the framework to deliver a new network data flow to the proxy provider implementation. Subclasses must override this method to perform whatever steps are necessary to ready the proxy to receive data from the flow. The proxy provider implementation indicates that the proxy is ready to handle flow data by calling -[NEAppProxyFlow openWithLocalEndpoint:completionHandler:] on the flow. If the proxy implementation decides to not handle the flow and instead terminate it, the subclass implementation of this method should return NO. If the proxy implementation decides to handle the flow, the subclass implementation of this method should return YES. In this case the proxy implementation is responsible for retaining the NEAppProxyFlow object.
+ * @discussion This function is called by the framework to deliver a new network data flow to the proxy provider implementation. Subclasses must override this method to perform whatever steps are necessary to ready the proxy to receive data from the flow. The proxy provider implementation indicates that the proxy is ready to handle flow data by calling -[NEAppProxyFlow openWithLocalFlowEndpoint:completionHandler:] on the flow. If the proxy implementation decides to not handle the flow and instead terminate it, the subclass implementation of this method should return NO. If the proxy implementation decides to handle the flow, the subclass implementation of this method should return YES. In this case the proxy implementation is responsible for retaining the NEAppProxyFlow object.
* @param flow The new flow
- * @return YES if the proxy implementation has retained the flow and intends to handle the flow data. NO if the proxy implementation has not retained the flow and will not handle the flow data. In this case the flow is terminated.
+ * @return YES if the proxy implementation has retained the flow and intends to handle the flow data. NO if the proxy implementation has not retained the flow and will not handle the flow data. In NETransparentProxyProvider sub-classes returning NO causes the flow to be handled by the networking stack without any proxy. In all other cases the flow is terminated when NO is returned.
*/
- (BOOL)handleNewFlow:(NEAppProxyFlow *)flow API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(watchos, tvos);
/*!
+ * @method handleNewUDPFlow:initialRemoteFlowEndpoint:
+ * @discussion This function is called by the framework to deliver a new UDP data flow to the proxy provider implementation. Subclasses can override this method to perform whatever steps are necessary to ready the proxy to receive
+ * data from the flow. The proxy provider implementation indicates that the proxy is ready to handle flow data by calling -[NEAppProxyFlow openWithLocalFlowEndpoint:completionHandler:] on the flow. If the proxy implementation decides
+ * to not handle the flow and instead terminate it, the subclass implementation of this method should return NO. If the proxy implementation decides to handle the flow, the subclass implementation of this method should return YES.
+ * In this case the proxy implementation is responsible for retaining the NEAppProxyUDPFlow object.
+ * The default implementation of this method calls -[NEAppProxyProvider handleNewFlow:] and returns its result.
+ * @seealso NEAppProxyUDPFlowHandling for Swift subclasses.
+ * @param flow The new UDP flow
+ * @param remoteEndpoint The initial remote endpoint provided by the proxied app when the flow was opened.
+ * @return YES if the proxy implementation has retained the flow and intends to handle the flow data. NO if the proxy implementation has not retained the flow and will not handle the flow data. In this case the flow is terminated.
+ */
+- (BOOL)handleNewUDPFlow:(NEAppProxyUDPFlow *)flow initialRemoteFlowEndpoint:(nw_endpoint_t)remoteEndpoint API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
+
+/*!
* @method handleNewUDPFlow:initialRemoteEndpoint:
* @discussion This function is called by the framework to deliver a new UDP data flow to the proxy provider implementation. Subclasses can override this method to perform whatever steps are necessary to ready the proxy to receive
* data from the flow. The proxy provider implementation indicates that the proxy is ready to handle flow data by calling -[NEAppProxyFlow openWithLocalEndpoint:completionHandler:] on the flow. If the proxy implementation decides
@@ -69,9 +84,9 @@
* The default implementation of this method calls -[NEAppProxyProvider handleNewFlow:] and returns its result.
* @param flow The new UDP flow
* @param remoteEndpoint The initial remote endpoint provided by the proxied app when the flow was opened.
- * @return YES if the proxy implementation has retained the flow and intends to handle the flow data. NO if the proxy implementation has not retained the flow and will not handle the flow data. In this case the flow is terminated.
+ * @return YES if the proxy implementation has retained the flow and intends to handle the flow data. NO if the proxy implementation has not retained the flow and will not handle the flow data. In NETransparentProxyProvider sub-classes returning NO causes the flow to be handled by the networking stack without any proxy. In all other cases the flow is terminated when NO is returned.
*/
-- (BOOL)handleNewUDPFlow:(NEAppProxyUDPFlow *)flow initialRemoteEndpoint:(NWEndpoint *)remoteEndpoint API_AVAILABLE(macos(10.15), ios(13.0)) API_UNAVAILABLE(watchos, tvos);
+- (BOOL)handleNewUDPFlow:(NEAppProxyUDPFlow *)flow initialRemoteEndpoint:(NWEndpoint *)remoteEndpoint API_DEPRECATED_WITH_REPLACEMENT("handleNewUDPFlow:initialRemoteFlowEndpoint:", macos(10.15, 15.0), ios(13.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos, tvos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyTCPFlow.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyTCPFlow.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyTCPFlow.h 2024-04-17 06:46:34
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyTCPFlow.h 2024-05-30 05:16:41
@@ -7,6 +7,7 @@
#error "Please import the NetworkExtension module instead of this file directly."
#endif
+#import <Network/Network.h>
#import <NetworkExtension/NEAppProxyFlow.h>
NS_ASSUME_NONNULL_BEGIN
@@ -45,10 +46,16 @@
- (void)writeData:(NSData *)data withCompletionHandler:(void (^)(NSError * __nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(watchos, tvos);
/*!
+ * @property remoteFlowEndpoint
+ * @discussion An `nw_endpoint_t` object containing information about the intended remote endpoint of the flow.
+ */
+@property (readonly) nw_endpoint_t remoteFlowEndpoint API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
+
+/*!
* @property remoteEndpoint
* @discussion An NWEndpoint object containing information about the intended remote endpoint of the flow.
*/
-@property (readonly) NWEndpoint *remoteEndpoint API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(watchos, tvos);
+@property (readonly) NWEndpoint *remoteEndpoint API_DEPRECATED_WITH_REPLACEMENT("remoteFlowEndpoint", macos(10.11, 15.0), ios(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos, tvos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyUDPFlow.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyUDPFlow.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyUDPFlow.h 2024-04-17 06:46:33
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEAppProxyUDPFlow.h 2024-05-30 05:16:39
@@ -7,10 +7,17 @@
#error "Please import the NetworkExtension module instead of this file directly."
#endif
+#import <Network/Network.h>
#import <NetworkExtension/NEAppProxyFlow.h>
NS_ASSUME_NONNULL_BEGIN
+#if OS_OBJECT_USE_OBJC
+typedef NSArray<nw_endpoint_t> NWEndpointArray;
+#else
+typedef NSArray NWEndpointArray;
+#endif
+
/*!
* @file NEAppProxyUDPFlow.h
* @discussion This file declares the NEAppProxyUDPFlow API. The NEAppProxyUDPFlow API is used by NEAppProxyProvider implementations to proxy the payload of UDP datagrams.
@@ -30,26 +37,48 @@
@interface NEAppProxyUDPFlow : NEAppProxyFlow
/*!
- * @method readDatagramWithCompletionHandler:
- * @discussion Read a datagram from the flow.
- * @param completionHandler A block that will be executed when datagrams have been read from the flow. The block takes the datagrams that were read, the destination endpoints of the datagrams, and an NSError. If an error occurred while reading then the error parameter will be non-nil. If the datagrams and remoteEndpoints arrays are non-nill but
+ * @method readDatagramsAndFlowEndpointsWithCompletionHandler:
+ * @discussion Read datagrams from the flow.
+ * @param completionHandler A block that will be executed when datagrams have been read from the flow. The block takes the datagrams that were read, the destination endpoints of the datagrams, and an NSError. If an error occurred while reading then the error parameter will be non-nil.
*/
-- (void)readDatagramsWithCompletionHandler:(void (^)(NSArray<NSData *> * __nullable datagrams, NSArray<NWEndpoint *> * __nullable remoteEndpoints, NSError * __nullable error))completionHandler NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(watchos, tvos);
+- (void)readDatagramsAndFlowEndpointsWithCompletionHandler:(void (^)(NSArray<NSData *> * _Nullable datagrams, NWEndpointArray * _Nullable remoteEndpoints, NSError * _Nullable error))completionHandler NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
- * @method writeDatagram:sentByEndpoint:completionHandler:
- * @discussion Write a datagram to the flow.
+ * @method readDatagramsWithCompletionHandler:
+ * @discussion Read datagrams from the flow.
+ * @param completionHandler A block that will be executed when datagrams have been read from the flow. The block takes the datagrams that were read, the destination endpoints of the datagrams, and an NSError. If an error occurred while reading then the error parameter will be non-nil.
+ */
+- (void)readDatagramsWithCompletionHandler:(void (^)(NSArray<NSData *> * _Nullable datagrams, NSArray<NWEndpoint *> * _Nullable remoteEndpoints, NSError * _Nullable error))completionHandler NS_SWIFT_DISABLE_ASYNC API_DEPRECATED_WITH_REPLACEMENT("readDatagramsAndFlowEndpointsWithCompletionHandler:", macos(10.11, 15.0), ios(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos, tvos);
+
+/*!
+ * @method writeDatagrams:sentByFlowEndpoints:completionHandler:
+ * @discussion Write datagrams to the flow.
* @param datagrams An array of NSData objects containing the data to be written.
* @param remoteEndpoints The source endpoints of the datagrams.
* @param completionHandler A block that will be executed when the datagrams have been written to the corresponding socket's receive buffer.
*/
-- (void)writeDatagrams:(NSArray<NSData *> *)datagrams sentByEndpoints:(NSArray<NWEndpoint *> *)remoteEndpoints completionHandler:(void (^)(NSError * __nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(watchos, tvos);
+- (void)writeDatagrams:(NSArray<NSData *> *)datagrams sentByFlowEndpoints:(NWEndpointArray *)remoteEndpoints completionHandler:(void (^)(NSError * _Nullable error))completionHandler API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
+ * @method writeDatagrams:sentByEndpoint:completionHandler:
+ * @discussion Write datagrams to the flow.
+ * @param datagrams An array of NSData objects containing the data to be written.
+ * @param remoteEndpoints The source endpoints of the datagrams.
+ * @param completionHandler A block that will be executed when the datagrams have been written to the corresponding socket's receive buffer.
+ */
+- (void)writeDatagrams:(NSArray<NSData *> *)datagrams sentByEndpoints:(NSArray<NWEndpoint *> *)remoteEndpoints completionHandler:(void (^)(NSError * _Nullable error))completionHandler API_DEPRECATED_WITH_REPLACEMENT("writeDatagrams:sentByFlowEndpoints:completionHandler:", macos(10.11, 15.0), ios(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos, tvos);
+
+/*!
+ * @property localFlowEndpoint
+ * @discussion An `nw_endpoint_t` object containing the local endpoint of the flow's corresponding socket.
+ */
+@property (readonly, nullable) nw_endpoint_t localFlowEndpoint API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
+
+/*!
* @property localEndpoint
* @discussion An NWEndpoint object containing the local endpoint of the flow's corresponding socket.
*/
-@property (readonly, nullable) NWEndpoint *localEndpoint API_AVAILABLE(macos(10.11), ios(9.0)) API_UNAVAILABLE(watchos, tvos);
+@property (readonly, nullable) NWEndpoint *localEndpoint API_DEPRECATED_WITH_REPLACEMENT("localFlowEndpoint", macos(10.11, 15.0), ios(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos, tvos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEDNSProxyProvider.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEDNSProxyProvider.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEDNSProxyProvider.h 2024-04-17 07:09:09
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEDNSProxyProvider.h 2024-05-30 04:37:11
@@ -7,6 +7,7 @@
#error "Please import the NetworkExtension module instead of this file directly."
#endif
+#import <Network/Network.h>
#import <NetworkExtension/NEProvider.h>
NS_ASSUME_NONNULL_BEGIN
@@ -53,13 +54,27 @@
/*!
* @method handleNewFlow:
- * @discussion This function is called by the framework to deliver a new network data flow to the proxy provider implementation. Subclasses must override this method to perform whatever steps are necessary to ready the proxy to receive data from the flow. The proxy provider implementation indicates that the proxy is ready to handle flow data by calling -[NEAppProxyFlow openWithLocalEndpoint:completionHandler:] on the flow. If the proxy implementation decides to not handle the flow and instead terminate it, the subclass implementation of this method should return NO. If the proxy implementation decides to handle the flow, the subclass implementation of this method should return YES. In this case the proxy implementation is responsible for retaining the NEAppProxyFlow object.
+ * @discussion This function is called by the framework to deliver a new network data flow to the proxy provider implementation. Subclasses must override this method to perform whatever steps are necessary to ready the proxy to receive data from the flow. The proxy provider implementation indicates that the proxy is ready to handle flow data by calling -[NEAppProxyFlow openWithLocalFlowEndpoint:completionHandler:] on the flow. If the proxy implementation decides to not handle the flow and instead terminate it, the subclass implementation of this method should return NO. If the proxy implementation decides to handle the flow, the subclass implementation of this method should return YES. In this case the proxy implementation is responsible for retaining the NEAppProxyFlow object.
* @param flow The new flow
* @return YES if the proxy implementation has retained the flow and intends to handle the flow data. NO if the proxy implementation has not retained the flow and will not handle the flow data. In this case the flow is terminated.
*/
- (BOOL)handleNewFlow:(NEAppProxyFlow *)flow API_AVAILABLE(macos(10.15), ios(11.0)) API_UNAVAILABLE(watchos, tvos);
/*!
+ * @method handleNewUDPFlow:initialRemoteFlowEndpoint:
+ * @discussion This function is called by the framework to deliver a new UDP data flow to the proxy provider implementation. Subclasses can override this method to perform whatever steps are necessary to ready the proxy to receive
+ * data from the flow. The proxy provider implementation indicates that the proxy is ready to handle flow data by calling -[NEAppProxyFlow openWithLocalFlowEndpoint:completionHandler:] on the flow. If the proxy implementation decides
+ * to not handle the flow and instead terminate it, the subclass implementation of this method should return NO. If the proxy implementation decides to handle the flow, the subclass implementation of this method should return YES.
+ * In this case the proxy implementation is responsible for retaining the NEAppProxyUDPFlow object.
+ * The default implementation of this method calls -[NEAppProxyProvider handleNewFlow:] and returns its result.
+ * @seealso NEAppProxyUDPFlowHandling for Swift subclasses.
+ * @param flow The new UDP flow
+ * @param remoteEndpoint The initial remote endpoint provided by the proxied app when the flow was opened.
+ * @return YES if the proxy implementation has retained the flow and intends to handle the flow data. NO if the proxy implementation has not retained the flow and will not handle the flow data. In this case the flow is terminated.
+ */
+- (BOOL)handleNewUDPFlow:(NEAppProxyUDPFlow *)flow initialRemoteFlowEndpoint:(nw_endpoint_t)remoteEndpoint API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
+
+/*!
* @method handleNewUDPFlow:initialRemoteEndpoint:
* @discussion This function is called by the framework to deliver a new UDP data flow to the proxy provider implementation. Subclasses can override this method to perform whatever steps are necessary to ready the proxy to receive
* data from the flow. The proxy provider implementation indicates that the proxy is ready to handle flow data by calling -[NEAppProxyFlow openWithLocalEndpoint:completionHandler:] on the flow. If the proxy implementation decides
@@ -70,7 +85,7 @@
* @param remoteEndpoint The initial remote endpoint provided by the proxied app when the flow was opened.
* @return YES if the proxy implementation has retained the flow and intends to handle the flow data. NO if the proxy implementation has not retained the flow and will not handle the flow data. In this case the flow is terminated.
*/
-- (BOOL)handleNewUDPFlow:(NEAppProxyUDPFlow *)flow initialRemoteEndpoint:(NWEndpoint *)remoteEndpoint API_AVAILABLE(macos(10.15), ios(13.0)) API_UNAVAILABLE(watchos, tvos);
+- (BOOL)handleNewUDPFlow:(NEAppProxyUDPFlow *)flow initialRemoteEndpoint:(NWEndpoint *)remoteEndpoint API_DEPRECATED_WITH_REPLACEMENT("handleNewUDPFlow:initialRemoteFlowEndpoint:", macos(10.15, 15.0), ios(13.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
* @property systemDNSSettings
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEFilterFlow.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEFilterFlow.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEFilterFlow.h 2024-04-17 06:52:43
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEFilterFlow.h 2024-05-31 06:26:30
@@ -7,6 +7,7 @@
#error "Please import the NetworkExtension module instead of this file directly."
#endif
+#import <Network/Network.h>
#import <NetworkExtension/NENetworkRule.h>
NS_ASSUME_NONNULL_BEGIN
@@ -120,11 +121,18 @@
API_AVAILABLE(macos(10.15), ios(9.0)) API_UNAVAILABLE(watchos, tvos)
@interface NEFilterSocketFlow : NEFilterFlow <NSSecureCoding,NSCopying>
/*!
+ * @property remoteFlowEndpoint
+ * @discussion The flow's remote endpoint. This endpoint object may be nil when [NEFilterDataProvider handleNewFlow:] is invoked and if so will be populated upon receiving network data.
+ In such a case, filtering on the flow may still be performed based on its socket type, socket family or socket protocol.
+ */
+@property (readonly, nullable) nw_endpoint_t remoteFlowEndpoint API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
+
+/*!
* @property remoteEndpoint
* @discussion The flow's remote endpoint. This endpoint object may be nil when [NEFilterDataProvider handleNewFlow:] is invoked and if so will be populated upon receiving network data.
In such a case, filtering on the flow may still be performed based on its socket type, socket family or socket protocol.
*/
-@property (readonly, nullable) NWEndpoint *remoteEndpoint API_AVAILABLE(macos(10.15), ios(9.0)) API_UNAVAILABLE(watchos, tvos);
+@property (readonly, nullable) NWEndpoint *remoteEndpoint API_DEPRECATED_WITH_REPLACEMENT("remoteFlowEndpoint", macos(10.15, 15.0), ios(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
* @property remoteHostname
@@ -133,11 +141,18 @@
@property (readonly, nullable) NSString *remoteHostname API_AVAILABLE(macos(11.0), ios(14.0)) API_UNAVAILABLE(watchos, tvos);
/*!
+ * @property localFlowEndpoint
+ * @discussion The flow's local endpoint. This endpoint object may be nil when [NEFilterDataProvider handleNewFlow:] is invoked and if so will be populated upon receiving network data.
+ In such a case, filtering on the flow may still be performed based on its socket type, socket family or socket protocol.
+ */
+@property (readonly, nullable) nw_endpoint_t localFlowEndpoint API_AVAILABLE(macos(15.0), ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
+
+/*!
* @property localEndpoint
* @discussion The flow's local endpoint. This endpoint object may be nil when [NEFilterDataProvider handleNewFlow:] is invoked and if so will be populated upon receiving network data.
In such a case, filtering on the flow may still be performed based on its socket type, socket family or socket protocol.
*/
-@property (readonly, nullable) NWEndpoint *localEndpoint API_AVAILABLE(macos(10.15), ios(9.0)) API_UNAVAILABLE(watchos, tvos);
+@property (readonly, nullable) NWEndpoint *localEndpoint API_DEPRECATED_WITH_REPLACEMENT("localFlowEndpoint", macos(10.15, 15.0), ios(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos, tvos);
/*!
* @property socketFamily
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEFilterManager.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEFilterManager.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEFilterManager.h 2024-04-17 06:38:38
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEFilterManager.h 2024-05-30 10:36:46
@@ -125,6 +125,13 @@
*/
@property NEFilterManagerGrade grade API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios, watchos, tvos);
+/*!
+ * @property disableEncryptedDNSSettings
+ * @discussion Causes the content filter to disable any other installed encrypted DNS settings. This should only be used if
+ * the content filter expects to intercept cleartext UDP DNS packets.
+ */
+@property (assign) BOOL disableEncryptedDNSSettings API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, watchos, tvos);
+
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEHotspotConfigurationManager.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEHotspotConfigurationManager.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEHotspotConfigurationManager.h 2024-04-17 06:52:43
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEHotspotConfigurationManager.h 2024-05-31 06:26:29
@@ -1,5 +1,5 @@
/*
- * Copyright © 2017-2020 Apple Inc.
+ * Copyright © 2017-2020, 2024 Apple Inc.
* All rights reserved.
*/
@@ -10,7 +10,7 @@
* The NEHotspotConfigurationManager interface allows an application to
* configure Wi-Fi networks.
* An application can use NEHotspotConfiguration API to configure
- * Open, WEP, WPA/WPA2 Personal, WPA/WPA2 Enterprise and Hotspot 2.0 Wi-Fi networks.
+ * open, WEP, WPA/WPA2 Personal, WPA/WPA2 Enterprise and Hotspot 2.0 Wi-Fi networks.
*
* An application that needs access to the NEHotspotConfiguration API must have
* the “com.apple.developer.networking.HotspotConfiguration” entitlement.
@@ -30,6 +30,8 @@
#define NEHSCFG_EXPORT extern
#endif
+@class ASAccessory;
+
/*!
* @typedef NEHotspotConfigurationEAPType
* @abstract EAP Type.
@@ -283,7 +285,7 @@
* A designated initializer to instantiate a new NEHotspotConfiguration object.
* This initializer is used to configure open Wi-Fi Networks.
*
- * @param SSID The SSID of the Open Wi-Fi Network.
+ * @param SSID The SSID of the open Wi-Fi Network.
* Length of SSID must be between 1 and 32 characters.
*/
- (instancetype)initWithSSID:(NSString *)SSID API_AVAILABLE(ios(11.0), watchos(7.0)) API_UNAVAILABLE(macos, tvos);
@@ -334,7 +336,7 @@
* A designated initializer to instantiate a new NEHotspotConfiguration object.
* This initializer is used to configure open Wi-Fi Networks.
*
- * @param SSIDPrefix The prefix string of SSID of the Open Wi-Fi Network.
+ * @param SSIDPrefix The prefix string of SSID of the open Wi-Fi Network.
* Length of SSIDPrefix must be between 3 and 32 characters.
*/
- (instancetype)initWithSSIDPrefix:(NSString *)SSIDPrefix API_AVAILABLE(ios(13.0), watchos(7.0)) API_UNAVAILABLE(macos, tvos);
@@ -380,6 +382,8 @@
* @const NEHotspotConfigurationErrorAlreadyAssociated Wi-Fi is already associated.
* @const NEHotspotConfigurationErrorApplicationIsNotInForeground The application is not in the foreground.
* @const NEHotspotConfigurationErrorInvalidSSIDPrefix The given SSID Prefix string is invalid.
+ * @const NEHotspotConfigurationErrorUserUnauthorized The accessory is unauthorized by the user.
+ * @const NEHotspotConfigurationErrorSystemDenied System denied configuration of accessory network.
*/
typedef NS_ENUM(NSInteger, NEHotspotConfigurationError) {
NEHotspotConfigurationErrorInvalid = 0,
@@ -397,7 +401,9 @@
NEHotspotConfigurationErrorJoinOnceNotSupported = 12,
NEHotspotConfigurationErrorAlreadyAssociated = 13,
NEHotspotConfigurationErrorApplicationIsNotInForeground = 14,
- NEHotspotConfigurationErrorInvalidSSIDPrefix = 15
+ NEHotspotConfigurationErrorInvalidSSIDPrefix = 15,
+ NEHotspotConfigurationErrorUserUnauthorized = 16,
+ NEHotspotConfigurationErrorSystemDenied = 17
} API_AVAILABLE(ios(11.0), watchos(7.0)) API_UNAVAILABLE(macos, tvos);
/*!
@@ -416,7 +422,7 @@
* @discussion This function adds or updates a Wi-Fi network configuration.
* @param configuration NEHotspotConfiguration object containing the Wi-Fi network configuration.
* @param completionHandler A block that will be called when add/update operation is completed.
- * This could be nil if application does not intend to receive the result.
+ * Pass nil if application does not intend to receive the result.
* The NSError passed to this block will be nil if the configuration is successfully stored, non-nil otherwise.
* If the configuration is found invalid or API encounters some other error then completionHandler is called
* with instance of NSError containing appropriate error code. This API attempts to join the Wi-Fi network
@@ -442,13 +448,45 @@
*/
- (void)removeConfigurationForHS20DomainName:(NSString *)domainName API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos);
-
/*!
* @method getConfiguredSSIDsWithCompletionHandler:
* @discussion This function returns array of SSIDs and HS2.0 Domain Names that the calling application has configured.
* It returns nil if there are no networks configurred by the calling application.
*/
- (void)getConfiguredSSIDsWithCompletionHandler:(void (^)(NSArray<NSString *> *))completionHandler API_AVAILABLE(ios(11.0), watchos(7.0)) API_UNAVAILABLE(macos, tvos);
+
+/*!
+ * @method joinAccessoryHotspot:
+ * @discussion This function performs a one-time join of a Wi-Fi network configuration defined by an ASAccessory.
+ * This function implicitly sets joinOnce to YES. The network must support WPA/WPA2/WPA3 Personal security type.
+ * @param accessory Object of type ASAccessory class.
+ * This parameter is required to specify the Accessory Wi-Fi network.
+ * @param passphrase The required passphrase credential.
+ * The passphrase with a length between 8 and 63 characters to join WPA/WPA2/WPA3 Personal networks.
+ * @param completionHandler A block that will be called when join operation is completed.
+ * Pass nil if application does not intend to receive the result.
+ * The NSError passed to this block will be nil if the hotspot is successfully joined, non-nil otherwise.
+ * If the configuration is found to be invalid or some other error is encountered then the completionHandler
+ * block is executed with with an instance of NSError containing an appropriate error code.
+ */
+- (void)joinAccessoryHotspot:(nonnull ASAccessory *)accessory
+ passphrase:(nonnull NSString *)passphrase
+ completionHandler:(void (^ __nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(18.0)) API_UNAVAILABLE(macos, watchos, tvos);
+
+/*!
+ * @method joinAccessoryHotspotWithoutSecurity:
+ * @discussion This function performs a one-time join of an open Wi-Fi network configuration defined by an ASAccessory.
+ * This function implicitly sets joinOnce to YES.
+ * @param accessory Object of type ASAccessory class.
+ * This parameter is required to specify the Accessory Wi-Fi network.
+ * @param completionHandler A block that will be called when join operation is completed.
+ * Pass nil if application does not intend to receive the result.
+ * The NSError passed to this block will be nil if the hotspot is successfully joined, non-nil otherwise.
+ * If the configuration is found to be invalid or some other error is encountered then the completionHandler
+ * block is executed with with an instance of NSError containing an appropriate error code.
+ */
+- (void)joinAccessoryHotspotWithoutSecurity:(nonnull ASAccessory *)accessory
+ completionHandler:(void (^ __nullable)(NSError * __nullable error))completionHandler API_AVAILABLE(ios(18.0)) API_UNAVAILABLE(macos, watchos, tvos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEHotspotHelper.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEHotspotHelper.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEHotspotHelper.h 2024-04-19 06:01:47
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEHotspotHelper.h 2024-05-30 10:36:46
@@ -63,6 +63,7 @@
*/
#import <Foundation/Foundation.h>
+#import <Network/Network.h>
#import <os/availability.h>
#import <NetworkExtension/NEHotspotNetwork.h>
@@ -296,6 +297,13 @@
API_AVAILABLE(ios(9.0)) API_UNAVAILABLE(macos, watchos, tvos);
/*!
+ * @property interface
+ * @abstract Network interface associated with the command.
+ * @discussion To create a connection over the hotspot, set the interface on the corresponding parameters using `nw_parameters_require_interface`.
+ */
+@property (readonly) nw_interface_t interface API_AVAILABLE(ios(18.0), visionos(2.0)) API_UNAVAILABLE(macos, watchos, tvos);
+
+/*!
* @method createTCPConnection
* @abstract
* Create a new TCP connection over the interface associated with the command.
@@ -306,7 +314,7 @@
* non-nil NWTCPConnection object if successful, nil otherwise
*/
- (NWTCPConnection *)createTCPConnection:(NWEndpoint *)endpoint
- API_AVAILABLE(ios(9.0)) API_UNAVAILABLE(macos, watchos, tvos);
+ API_DEPRECATED("Use the `interface` property with `nw_parameters_require_interface`", ios(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(macos, watchos, tvos);
/*!
* @method createUDPSession
@@ -319,7 +327,7 @@
* non-nil NWUDPSession object if successful, nil otherwise
*/
- (NWUDPSession *)createUDPSession:(NWEndpoint *)endpoint
- API_AVAILABLE(ios(9.0)) API_UNAVAILABLE(macos, watchos, tvos);
+ API_DEPRECATED("Use the `interface` property with `nw_parameters_require_interface`", ios(9.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(macos, watchos, tvos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NENetworkRule.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NENetworkRule.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NENetworkRule.h 2024-04-08 10:32:55
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NENetworkRule.h 2024-05-30 10:38:17
@@ -7,6 +7,8 @@
#error "Please import the NetworkExtension module instead of this file directly."
#endif
+#import <Network/Network.h>
+
NS_ASSUME_NONNULL_BEGIN
/*!
@@ -52,7 +54,7 @@
@interface NENetworkRule : NSObject <NSSecureCoding,NSCopying>
/*!
- * @method initWithDestinationNetwork:prefix:protocol
+ * @method initWithDestinationNetworkEndpoint:prefix:protocol:
* @discussion Initialize a newly-allocated NENetworkRule object that matches network traffic destined for a host within a specific network.
* @param networkEndpoint An endpoint object that contains the port and address or network that the rule matches. This endpoint must contain an address, not a hostname.
* If the address is a wildcard address (0.0.0.0 or ::) then the rule will match all destinations except for loopback (127.0.0.1 or ::1). To match loopback traffic set the address to the loopback address.
@@ -61,9 +63,38 @@
* @param protocol A NENetworkRuleProtocol value indicating the protocol that the rule matches.
* @return The initialized NENetworkRule instance.
*/
-- (instancetype)initWithDestinationNetwork:(NWHostEndpoint *)networkEndpoint prefix:(NSUInteger)destinationPrefix protocol:(NENetworkRuleProtocol)protocol API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios, watchos, tvos);
+- (instancetype)initWithDestinationNetworkEndpoint:(nw_endpoint_t)networkEndpoint prefix:(NSUInteger)destinationPrefix protocol:(NENetworkRuleProtocol)protocol API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, watchos, tvos, visionos);
/*!
+ * @method initWithDestinationNetwork:prefix:protocol:
+ * @discussion Initialize a newly-allocated NENetworkRule object that matches network traffic destined for a host within a specific network.
+ * @param networkEndpoint An endpoint object that contains the port and address or network that the rule matches. This endpoint must contain an address, not a hostname.
+ * If the address is a wildcard address (0.0.0.0 or ::) then the rule will match all destinations except for loopback (127.0.0.1 or ::1). To match loopback traffic set the address to the loopback address.
+ * If the port string of the endpoint is "0" or is the empty string, then the rule will match traffic on any port destined for the given address or network.
+ * @param destinationPrefix An integer that in combination with the address in the endpoint specifies the destination network that the rule matches.
+ * @param protocol A NENetworkRuleProtocol value indicating the protocol that the rule matches.
+ * @return The initialized NENetworkRule instance.
+ */
+- (instancetype)initWithDestinationNetwork:(NWHostEndpoint *)networkEndpoint prefix:(NSUInteger)destinationPrefix protocol:(NENetworkRuleProtocol)protocol API_DEPRECATED_WITH_REPLACEMENT("initWithDestinationNetworkEndpoint:prefix:protocol:", macos(10.15, 15.0)) API_DEPRECATED_WITH_REPLACEMENT("initWithDestinationNetworkEndpoint:prefix:protocol:", ios(13.0, 18.0), watchos(6.0, 11.0), tvos(13.0, 18.0), visionos(1.0, 2.0));
+
+/*!
+ * @method initWithDestinationHostEndpoint:protocol:
+ * @discussion Initialize a newly-allocated NENetworkRule object that matches network traffic destined for a host within a specific DNS domain.
+ * @param hostEndpoint An endpoint object that contains the port and hostname or domain that the rule matches. This endpoint must contain a hostname, not an address.
+ * If the port string of the `nw_endpoint_t` is "0" or is the empty string, then the rule will match traffic on any port destined for the given hostname or domain.
+ * If the hostname string of the endpoint consists of a single label, then the rule will match traffic destined to the specific host with that single label as its name.
+ * If the hostname string of the endpoint consists of 2 or more labels, then the rule will match traffic destined to hosts within the domain specified by the hostname string.
+ * Examples:
+ * [[NENetworkRule alloc] initWithDestinationHost:nw_endpoint_create_host("com", "0") protocol:NENetworkRuleProtocolAny] - matches all TCP and UDP traffic to the host named "com".
+ * [[NENetworkRule alloc] initWithDestinationHost:nw_endpoint_create_host("example.com", "0") protocol:NENetworkRuleProtocolAny] - matches all TCP and UDP traffic to hosts in the "example.com" DNS domain, including all DNS queries for names in the example.com DNS domain.
+ * [[NENetworkRule alloc] initWithDestinationHost:nw_endpoint_create_host("example.com", "53") protocol:NENetworkRuleProtocolAny] - matches all DNS queries/responses for hosts in the "example.com" domain.
+ * [[NENetworkRule alloc] initWithDestinationHost:nw_endpoint_create_host("example.com", "443") protocol:NENetworkRuleProtocolTCP] - matches all TCP port 443 traffic to hosts in the "example.com" domain.
+ * @param protocol A NENetworkRuleProtocol value indicating the protocol that the rule matches.
+ * @return The initialized NENetworkRule instance.
+ */
+- (instancetype)initWithDestinationHostEndpoint:(nw_endpoint_t)hostEndpoint protocol:(NENetworkRuleProtocol)protocol API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, watchos, tvos, visionos);
+
+/*!
* @method initWithDestinationHost:protocol:
* @discussion Initialize a newly-allocated NENetworkRule object that matches network traffic destined for a host within a specific DNS domain.
* @param hostEndpoint An endpoint object that contains the port and hostname or domain that the rule matches. This endpoint must contain a hostname, not an address.
@@ -78,10 +109,10 @@
* @param protocol A NENetworkRuleProtocol value indicating the protocol that the rule matches.
* @return The initialized NENetworkRule instance.
*/
-- (instancetype)initWithDestinationHost:(NWHostEndpoint *)hostEndpoint protocol:(NENetworkRuleProtocol)protocol API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios, watchos, tvos);
+- (instancetype)initWithDestinationHost:(NWHostEndpoint *)hostEndpoint protocol:(NENetworkRuleProtocol)protocol API_DEPRECATED_WITH_REPLACEMENT("initWithDestinationHostEndpoint:protocol:", macos(10.15, 15.0)) API_DEPRECATED_WITH_REPLACEMENT("initWithDestinationHostEndpoint:protocol:", ios(13.0, 18.0), watchos(6.0, 11.0), tvos(13.0, 18.0), visionos(1.0, 2.0));
/*!
- * @method initWithRemoteNetwork:prefix:localNetwork:prefix:interface:protocol:direction:
+ * @method initWithRemoteNetworkEndpoint:remotePrefix:localNetworkEndpoint:localPrefix:protocol:direction:
* @discussion Initialize a newly-allocated NENetworkRule object that matches traffic by remote network, local network, protocol, and direction. If both remoteNetwork and localNetwork are nil
* then the rule will match all traffic of the given protocol and direction, except for loopback traffic. To match loopback traffic create a NENetworkRule with remoteNetwork and/or localNetwork properties that
* explicitly match traffic to the loopback address (127.0.0.1 or ::1).
@@ -100,18 +131,51 @@
* @param direction A NETrafficDirection value indicating the direction of network traffic that the rule matches.
* @return The initialized NENetworkRule instance.
*/
+- (instancetype)initWithRemoteNetworkEndpoint:(nullable nw_endpoint_t)remoteNetwork
+ remotePrefix:(NSUInteger)remotePrefix
+ localNetworkEndpoint:(nullable nw_endpoint_t)localNetwork
+ localPrefix:(NSUInteger)localPrefix
+ protocol:(NENetworkRuleProtocol)protocol
+ direction:(NETrafficDirection)direction API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, watchos, tvos, visionos);
+
+/*!
+ * @method initWithRemoteNetwork:remotePrefix:localNetwork:localPrefix:protocol:direction:
+ * @discussion Initialize a newly-allocated NENetworkRule object that matches traffic by remote network, local network, protocol, and direction. If both remoteNetwork and localNetwork are nil
+ * then the rule will match all traffic of the given protocol and direction, except for loopback traffic. To match loopback traffic create a NENetworkRule with remoteNetwork and/or localNetwork properties that
+ * explicitly match traffic to the loopback address (127.0.0.1 or ::1).
+ * @param remoteNetwork An endpoint object that contains the remote port and the remote address or network that the rule matches. This endpoint must contain an address, not a hostname.
+ * If the address is a wildcard address (0.0.0.0 or ::) then the rule will match all destinations except for loopback (127.0.0.1 or ::1). To match loopback traffic set the address to the loopback address.
+ * If the port string of the endpoint is "0" or is the empty string, then the rule will match traffic on any port coming from the remote network.
+ * Pass nil to cause the rule to match any remote network.
+ * @param remotePrefix An integer that in combination with the address in remoteNetwork specifies the remote network that the rule matches.
+ * @param localNetwork An endpoint object that contains the local port and the local address or network that the rule matches. This endpoint must contain an address, not a hostname.
+ * If the address is a wildcard address (0.0.0.0 or ::) then the rule will match all local networks except for loopback (127.0.0.1 or ::1). To match loopback traffic set the address to the loopback address.
+ * If the port string of the endpoint is "0" or is the empty string, then the rule will match traffic on any port coming from the local network.
+ * Pass nil to cause the rule to match any local network.
+ * @param localPrefix An integer that in combination with the address in localNetwork specifies the local network that the rule matches. This parameter
+ * is ignored if localNetwork is nil.
+ * @param protocol A NENetworkRuleProtocol value indicating the protocol that the rule matches.
+ * @param direction A NETrafficDirection value indicating the direction of network traffic that the rule matches.
+ * @return The initialized NENetworkRule instance.
+ */
- (instancetype)initWithRemoteNetwork:(nullable NWHostEndpoint *)remoteNetwork
remotePrefix:(NSUInteger)remotePrefix
localNetwork:(nullable NWHostEndpoint *)localNetwork
localPrefix:(NSUInteger)localPrefix
protocol:(NENetworkRuleProtocol)protocol
- direction:(NETrafficDirection)direction API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios, watchos, tvos);
+ direction:(NETrafficDirection)direction API_DEPRECATED_WITH_REPLACEMENT("initWithRemoteNetworkEndpoint:remotePrefix:localNetworkEndpoint:localPrefix:protocol:direction:", macos(10.15, 15.0)) API_DEPRECATED_WITH_REPLACEMENT("initWithRemoteNetworkEndpoint:remotePrefix:localNetworkEndpoint:localPrefix:protocol:direction:", ios(13.0, 18.0), watchos(6.0, 11.0), tvos(13.0, 18.0), visionos(1.0, 2.0));
/*!
+ * @property matchRemoteHostOrNetworkEndpoint
+ * @discussion The remote endpoint that the rule matches.
+ */
+@property (readonly, nullable) nw_endpoint_t matchRemoteHostOrNetworkEndpoint API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, watchos, tvos, visionos);
+
+/*!
* @property matchRemoteEndpoint
* @discussion The remote endpoint that the rule matches.
*/
-@property (readonly, nullable) NWHostEndpoint *matchRemoteEndpoint API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios, watchos, tvos);
+@property (readonly, nullable) NWHostEndpoint *matchRemoteEndpoint API_DEPRECATED_WITH_REPLACEMENT("matchRemoteHostOrNetworkEndpoint", macos(10.15, 15.0)) API_DEPRECATED_WITH_REPLACEMENT("matchRemoteHostOrNetworkEndpoint", ios(13.0, 18.0), watchos(6.0, 11.0), tvos(13.0, 18.0), visionos(1.0, 2.0));
/*!
* @property matchRemotePrefix
@@ -120,10 +184,16 @@
@property (readonly) NSUInteger matchRemotePrefix API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios, watchos, tvos);
/*!
+ * @property matchLocalNetworkEndpoint
+ * @discussion The local network that the rule matches.
+ */
+@property (readonly, nullable) nw_endpoint_t matchLocalNetworkEndpoint API_AVAILABLE(macos(15.0)) API_UNAVAILABLE(ios, watchos, tvos, visionos);
+
+/*!
* @property matchLocalNetwork
* @discussion The local network that the rule matches.
*/
-@property (readonly, nullable) NWHostEndpoint *matchLocalNetwork API_AVAILABLE(macos(10.15)) API_UNAVAILABLE(ios, watchos, tvos);
+@property (readonly, nullable) NWHostEndpoint *matchLocalNetwork API_DEPRECATED_WITH_REPLACEMENT("matchLocalNetworkEndpoint", macos(10.15, 15.0)) API_DEPRECATED_WITH_REPLACEMENT("matchLocalNetworkEndpoint", ios(13.0, 18.0), watchos(6.0, 11.0), tvos(13.0, 18.0), visionos(1.0, 2.0));
/*!
* @property matchLocalPrefix
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h 2024-04-19 07:53:04
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h 2024-05-30 05:13:17
@@ -7,6 +7,7 @@
#error "Please import the NetworkExtension module instead of this file directly."
#endif
+#import <Network/Network.h>
#import <NetworkExtension/NETunnelProvider.h>
NS_ASSUME_NONNULL_BEGIN
@@ -64,6 +65,13 @@
@property (readonly) NEPacketTunnelFlow *packetFlow API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
/*!
+ * @property virtualInterface
+ * @abstract The virtual network interface used to route packets to the packet tunnel provider.
+ * @discussion For NEPacketTunnelProvider sub-classes, this property will be non-nil when `-[NEPacketTunnelProvider startTunnelWithOptions:completionHandler:]` is called. For NEEthernetTunnelProvider sub-classes, this property will be non-nil when the completion handler passed to `-[NETunnelProvider setTunnelNetworkSettings:completionHandler:]` is executed. To create a connection through the tunnel, pass this interface to `nw_parameters_require_interface`.
+ */
+@property (readonly, nullable) nw_interface_t virtualInterface API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
+/*!
* @method createTCPConnectionThroughTunnelToEndpoint:enableTLS:TLSParameters:delegate:
* @discussion This function can be called by subclass implementations to create a TCP connection to a given network endpoint, through the tunnel established by the provider. This function should not be overridden by subclasses.
* @param remoteEndpoint An NWEndpoint object that specifies the remote network endpoint to connect to.
@@ -72,7 +80,7 @@
* @param delegate An object to use as the connection delegate. This object should conform to the NWTCPConnectionAuthenticationDelegate protocol.
* @return An NWTCPConnection object.
*/
-- (NWTCPConnection *)createTCPConnectionThroughTunnelToEndpoint:(NWEndpoint *)remoteEndpoint enableTLS:(BOOL)enableTLS TLSParameters:(nullable NWTLSParameters *)TLSParameters delegate:(nullable id)delegate API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (NWTCPConnection *)createTCPConnectionThroughTunnelToEndpoint:(NWEndpoint *)remoteEndpoint enableTLS:(BOOL)enableTLS TLSParameters:(nullable NWTLSParameters *)TLSParameters delegate:(nullable id)delegate API_DEPRECATED("Use the `virtualInterface` property with `nw_parameters_require_interface`", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos);
/*!
* @method createUDPSessionThroughTunnelToEndpoint:fromEndpoint:
@@ -81,7 +89,7 @@
* @param localEndpoint An NWHostEndpoint object that specifies the local IP address endpoint to use as the source endpoint of the UDP session.
* @return An NWUDPSession object.
*/
-- (NWUDPSession *)createUDPSessionThroughTunnelToEndpoint:(NWEndpoint *)remoteEndpoint fromEndpoint:(nullable NWHostEndpoint *)localEndpoint API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (NWUDPSession *)createUDPSessionThroughTunnelToEndpoint:(NWEndpoint *)remoteEndpoint fromEndpoint:(nullable NWHostEndpoint *)localEndpoint API_DEPRECATED("Use the `virtualInterface` property with `nw_parameters_require_interface`", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEProvider.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEProvider.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEProvider.h 2024-04-19 07:53:03
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEProvider.h 2024-05-30 04:37:11
@@ -99,7 +99,7 @@
* @param delegate An object to use as the connections delegate. This object should conform to the NWTCPConnectionAuthenticationDelegate protocol.
* @return An NWTCPConnection object.
*/
-- (NWTCPConnection *)createTCPConnectionToEndpoint:(NWEndpoint *)remoteEndpoint enableTLS:(BOOL)enableTLS TLSParameters:(nullable NWTLSParameters *)TLSParameters delegate:(nullable id)delegate API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (NWTCPConnection *)createTCPConnectionToEndpoint:(NWEndpoint *)remoteEndpoint enableTLS:(BOOL)enableTLS TLSParameters:(nullable NWTLSParameters *)TLSParameters delegate:(nullable id)delegate API_DEPRECATED("Use nw_connection_t in Network framework instead", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos);
/*!
* @method createUDPSessionToEndpoint:fromEndpoint:
@@ -108,7 +108,7 @@
* @param localEndpoint An NWHostEndpoint object that specifies the local IP address endpoint to use as the source endpoint of the UDP session.
* @return An NWUDPSession object.
*/
-- (NWUDPSession *)createUDPSessionToEndpoint:(NWEndpoint *)remoteEndpoint fromEndpoint:(nullable NWHostEndpoint *)localEndpoint API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (NWUDPSession *)createUDPSessionToEndpoint:(NWEndpoint *)remoteEndpoint fromEndpoint:(nullable NWHostEndpoint *)localEndpoint API_DEPRECATED("Use nw_connection_t in Network framework instead", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos);
/*!
* @method displayMessage:completionHandler:
@@ -150,7 +150,7 @@
* @property defaultPath
* @discussion The current default path for connections created by the provider. Use KVO to watch for network changes.
*/
-@property (readonly, nullable) NWPath *defaultPath API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (readonly, nullable) NWPath *defaultPath API_DEPRECATED("Use nw_path_monitor_t in Network framework instead", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0)) API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NERelayManager.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NERelayManager.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NERelayManager.h 2024-04-19 06:01:46
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NERelayManager.h 2024-05-30 10:38:17
@@ -45,6 +45,36 @@
/*! @const NERelayErrorDomain The NERelay error domain */
NERELAY_EXPORT NSString * const NERelayErrorDomain API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+/*!
+ * @typedef NERelayManagerClientError
+ * @abstract NERelay Manager error codes detected by the client while trying to use this relay
+ */
+typedef NS_ENUM(NSInteger, NERelayManagerClientError) {
+ /*! @const NERelayManagerClientErrorNone The client did not have an error on the last connection */
+ NERelayManagerClientErrorNone = 1,
+ /*! @const NERelayManagerClientErrorDNSFailed DNS resolution of the relay server failed */
+ NERelayManagerClientErrorDNSFailed = 2,
+ /*! @const NERelayManagerClientErrorServerUnreachable The relay server was unreachable */
+ NERelayManagerClientErrorServerUnreachable = 3,
+ /*! @const NERelayManagerClientErrorServerDisconnected The relay server prematurely disconnected the connection */
+ NERelayManagerClientErrorServerDisconnected = 4,
+ /*! @const NERelayManagerClientErrorCertificateMissing The certificate needed to connect to the relay server could not be accessed or was not provided */
+ NERelayManagerClientErrorCertificateMissing = 5,
+ /*! @const NERelayManagerClientErrorCertificateInvalid The certificate needed to connect to the relay server was invalid. */
+ NERelayManagerClientErrorCertificateInvalid = 6,
+ /*! @const NERelayManagerClientErrorCertificateExpired The certificate needed to connect to the relay server was expired. */
+ NERelayManagerClientErrorCertificateExpired = 7,
+ /*! @const NERelayManagerClientErrorServerCertificateInvalid The relay server certificate was invalid. */
+ NERelayManagerClientErrorServerCertificateInvalid = 8,
+ /*! @const NERelayManagerClientErrorServerCertificateExpired The relay server certificate was expired. */
+ NERelayManagerClientErrorServerCertificateExpired = 9,
+ /*! @const NERelayManagerClientErrorOther The client detected an error that has not yet been enumerated */
+ NERelayManagerClientErrorOther = 10,
+} API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0)) API_UNAVAILABLE(watchos);
+
+/*! @const NERelayClientErrorDomain The NERelay error domain as detected by the client*/
+NERELAY_EXPORT NSString * const NERelayClientErrorDomain API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0)) API_UNAVAILABLE(watchos);
+
/*! @const NERelayConfigurationDidChangeNotification Name of the NSNotification that is posted when the relay configuration changes. */
NERELAY_EXPORT NSString * const NERelayConfigurationDidChangeNotification API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
@@ -85,6 +115,14 @@
* @param completionHandler A block that will be called when the save operation is completed. The NSError passed to this block will be nil if the save operation succeeded, non-nil otherwise.
*/
- (void)saveToPreferencesWithCompletionHandler:(void (^)(NSError * __nullable error))completionHandler;
+
+/*!
+ * @method getLastClientErrors
+ * @discussion This function will get errors that the client detected while using this relay configuration within the specified time period. Errors will be from the NERelayClientErrorDomain and the NERelayManagerClientErrorNone value will be set for successful connections.
+ * @param seconds A NSTimeInterval that specifies how many seconds to report errors for. The maximum supported value is 24 hours and any larger values will be automatically reduced to 24 hours.
+ * @param completionHandler A block that will be called when once the errors have been collected. The NSArray will contain a list of NERelayManagerClientError values detected within the last number of seconds as specified by the "seconds" parameter. The values will be ordered from the error most recently detected to the oldest. The error value of NERelayManagerClientErrorNone indicates the last successful use of the relay without error. The NSArray will be empty if there are no values detected within the specified time period or nil if there was a problem in retrieving the errors.
+ */
+- (void)getLastClientErrors:(NSTimeInterval)seconds completionHandler:(void (^)(NSArray<NSError *> * __nullable errors))completionHandler API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0)) API_UNAVAILABLE(watchos);
/*!
* @property localizedDescription
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNProtocol.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNProtocol.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNProtocol.h 2024-04-17 06:38:37
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNProtocol.h 2024-05-31 06:26:29
@@ -122,6 +122,13 @@
*/
@property BOOL enforceRoutes API_AVAILABLE(macos(11.0), ios(14.2), tvos(17.0)) API_UNAVAILABLE(watchos);
+/*!
+ * @property sliceUUID
+ * @discussion Identification string of the associated Cellular slice. If present, VPN tunnel will be scoped to the associated Cellular slice whenever slice is active.
+ * Otherwise, VPN tunnel will fallback onto the primary interface.
+ */
+@property (copy, nullable) NSString *sliceUUID API_AVAILABLE(ios(18.0)) API_UNAVAILABLE(macos, watchos, tvos);
+
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNProtocolIKEv2.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNProtocolIKEv2.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNProtocolIKEv2.h 2024-04-17 06:38:38
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNProtocolIKEv2.h 2024-05-30 03:52:05
@@ -171,6 +171,44 @@
@end
/*!
+ * @interface NEVPNIKEv2PPKConfiguration
+ * @discussion The NEVPNIKEv2PPKConfiguration class declares the programmatic interface of an object that manages parameters for a Post-quantum Pre-shared Key (PPK)
+ *
+ * Instances of this class conform to RFC 8784.
+ * Instances of this class are thread safe.
+ */
+API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos)
+@interface NEVPNIKEv2PPKConfiguration : NSObject<NSCopying>
+
+/*!
+ * @method initWithIdentifier:keychainReference:
+ * @discussion Initialize a newly-allocated NEVPNIKEv2PPKConfiguration object.
+ * @param identifier The identifer for the PPK.
+ * @param keychainReference A persistent reference to a keychain item of class kSecClassGenericPassword containing the PPK.
+ */
+- (instancetype)initWithIdentifier:(NSString *)identifier keychainReference:(NSData *)keychainReference;
+
+/*!
+ * @property identifier
+ * @discussion The identifer for the PPK.
+ */
+@property (readonly, copy) NSString *identifier;
+
+/*!
+ * @property keychainReference
+ * @discussion A persistent reference to a keychain item of class kSecClassGenericPassword containing the PPK.
+ */
+@property (readonly, copy) NSData *keychainReference;
+
+/*!
+ * @property isMandatory
+ * @discussion Boolean indicating whether use of the PPK is mandatory or not. Default is YES.
+ */
+@property BOOL isMandatory;
+
+@end
+
+/*!
* @interface NEVPNProtocolIKEv2
* @discussion The NEVPNProtocolIKEv2 class declares the programmatic interface of an object that manages the IKEv2-specific portion of a VPN configuration.
*
@@ -278,6 +316,12 @@
* @discussion Maximum Transmission Unit (MTU) size in bytes to assign to the tunnel interface.
*/
@property NSUInteger mtu API_AVAILABLE(macos(11.0), ios(14.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+
+/*!
+ * @property ppkConfiguration
+ * @discussion Configuration for the use of a Post-quantum Pre-shared Key (PPK).
+ */
+@property (copy, nullable) NEVPNIKEv2PPKConfiguration *ppkConfiguration API_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWBonjourServiceEndpoint.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWBonjourServiceEndpoint.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWBonjourServiceEndpoint.h 2024-04-17 06:46:33
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWBonjourServiceEndpoint.h 2024-05-30 05:16:40
@@ -14,6 +14,12 @@
#ifndef __NWBonjourServiceEndpoint_h_
#define __NWBonjourServiceEndpoint_h_
+/**
+ * DEPRECATION NOTICE
+ *
+ * NW object wrappers are hidden in Swift 6. To continue accessing them, you
+ * can prepend double underscores to the symbol name.
+ */
NS_ASSUME_NONNULL_BEGIN
@@ -24,7 +30,8 @@
* Bonjour service MyMusicStudio._music._tcp.local. has the name "MyMusicStudio",
* the type "_music._tcp", and the domain "local".
*/
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
+API_DEPRECATED("Use `nw_endpoint_t` in Network framework instead, see deprecation notice in <NetworkExtension/NWBonjourServiceEndpoint.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos)
@interface NWBonjourServiceEndpoint : NWEndpoint
/*!
@@ -36,25 +43,35 @@
*/
+ (instancetype)endpointWithName:(NSString *)name
type:(NSString *)type
- domain:(NSString *)domain API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+ domain:(NSString *)domain
+API_DEPRECATED("Use `nw_endpoint_create_bonjour_service` in Network framework instead, see deprecation notice in <NetworkExtension/NWBonjourServiceEndpoint.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property name
* @discussion The endpoint's Bonjour service name.
*/
-@property (nonatomic, readonly) NSString *name API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NSString *name
+API_DEPRECATED("Use `nw_endpoint_get_bonjour_service_name` in Network framework instead, see deprecation notice in <NetworkExtension/NWBonjourServiceEndpoint.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
+
/*!
* @property type
* @discussion The endpoint's Bonjour service type.
*/
-@property (nonatomic, readonly) NSString *type API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NSString *type
+API_DEPRECATED("Use `nw_endpoint_get_bonjour_service_type` in Network framework instead, see deprecation notice in <NetworkExtension/NWBonjourServiceEndpoint.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
+
/*!
* @property domain
* @discussion The endpoint's Bonjour service domain.
*/
-@property (nonatomic, readonly) NSString *domain API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NSString *domain
+API_DEPRECATED("Use `nw_endpoint_get_bonjour_service_domain` in Network framework instead, see deprecation notice in <NetworkExtension/NWBonjourServiceEndpoint.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWEndpoint.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWEndpoint.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWEndpoint.h 2024-04-17 06:46:34
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWEndpoint.h 2024-05-30 05:16:41
@@ -14,6 +14,12 @@
#ifndef __NWEndpoint_h_
#define __NWEndpoint_h_
+/**
+ * DEPRECATION NOTICE
+ *
+ * NW object wrappers are hidden in Swift 6. To continue accessing them, you
+ * can prepend double underscores to the symbol name.
+ */
NS_ASSUME_NONNULL_BEGIN
@@ -21,7 +27,8 @@
* @interface NWEndpoint
* @discussion NWEndpoint is a generic class to represent network endpoints, such as a port on a remote server.
*/
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
+API_DEPRECATED("Use nw_endpoint_t in Network framework instead, see deprecation notice in <NetworkExtension/NWEndpoint.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos)
@interface NWEndpoint : NSObject <NSSecureCoding, NSCopying>
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWHostEndpoint.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWHostEndpoint.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWHostEndpoint.h 2024-04-17 06:46:34
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWHostEndpoint.h 2024-05-30 05:16:41
@@ -14,6 +14,12 @@
#ifndef __NWHostEndpoint_h_
#define __NWHostEndpoint_h_
+/**
+ * DEPRECATION NOTICE
+ *
+ * NW object wrappers are hidden in Swift 6. To continue accessing them, you
+ * can prepend double underscores to the symbol name.
+ */
NS_ASSUME_NONNULL_BEGIN
@@ -22,7 +28,8 @@
* @discussion NWHostEndpoint is a subclass of NWEndpoint. It represents an endpoint backed by a
* hostname and port. Note that a hostname string may be an IP or IPv6 address.
*/
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
+API_DEPRECATED("Use `nw_endpoint_t` in Network framework instead, see deprecation notice in <NetworkExtension/NWHostEndpoint.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos)
@interface NWHostEndpoint : NWEndpoint
/*!
@@ -32,19 +39,25 @@
* @return An initialized NWHostEndpoint object.
*/
+ (instancetype)endpointWithHostname:(NSString *)hostname
- port:(NSString *)port API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+ port:(NSString *)port
+API_DEPRECATED("Use `nw_endpoint_create_host` in Network framework instead, see deprecation notice in <NetworkExtension/NWHostEndpoint.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property hostname
* @discussion The endpoint's hostname.
*/
-@property (nonatomic, readonly) NSString *hostname API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NSString *hostname
+API_DEPRECATED("Use `nw_endpoint_get_hostname` in Network framework instead, see deprecation notice in <NetworkExtension/NWHostEndpoint.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property port
* @discussion The endpoint's port.
*/
-@property (nonatomic, readonly) NSString *port API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NSString *port
+API_DEPRECATED("Use `nw_endpoint_get_port` in Network framework instead, see deprecation notice in <NetworkExtension/NWHostEndpoint.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWPath.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWPath.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWPath.h 2024-04-17 06:46:34
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWPath.h 2024-05-30 05:16:41
@@ -14,6 +14,12 @@
#ifndef __NWPath_h_
#define __NWPath_h_
+/**
+ * DEPRECATION NOTICE
+ *
+ * NW object wrappers are hidden in Swift 6. To continue accessing them, you
+ * can prepend double underscores to the symbol name.
+ */
NS_ASSUME_NONNULL_BEGIN
@@ -31,7 +37,9 @@
/*! @const NWPathStatusSatisfiable The path may become satisfied upon
* a connection attempt. */
NWPathStatusSatisfiable = 3,
-} API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+}
+API_DEPRECATED("Use `nw_path_status_t` in Network framework instead, see deprecation notice in <NetworkExtension/NWPath.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @interface NWPath
@@ -39,33 +47,42 @@
* properties of the path that a networking connection will take on the device. For example,
* if the path status is NWPathStatusSatisfied, then a connection could use that path.
*/
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
+API_DEPRECATED("Use `nw_path_t` in Network framework instead, see deprecation notice in <NetworkExtension/NWPath.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos)
@interface NWPath : NSObject
/*!
* @property status
* @discussion The evaluated NWPathStatus of the NWPath.
*/
-@property (nonatomic, readonly) NWPathStatus status API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NWPathStatus status
+API_DEPRECATED("Use `nw_path_get_status` in Network framework instead, see deprecation notice in <NetworkExtension/NWPath.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property expensive
* @discussion Returns YES if the path is considered expensive, as when using a cellular data plan.
*/
-@property (nonatomic, readonly, getter=isExpensive) BOOL expensive API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, getter=isExpensive) BOOL expensive
+API_DEPRECATED("Use `nw_path_is_expensive` in Network framework instead, see deprecation notice in <NetworkExtension/NWPath.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property constrained
* @discussion Returns YES if the path is considered constrained, as when it is in save data mode.
*/
-@property (nonatomic, readonly, getter=isConstrained) BOOL constrained API_AVAILABLE(macos(10.15), ios(13.0), watchos(6.0), tvos(13.0));
+@property (nonatomic, readonly, getter=isConstrained) BOOL constrained
+API_DEPRECATED("Use `nw_path_is_constrained` in Network framework instead, see deprecation notice in <NetworkExtension/NWPath.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method isEqualToPath:
* @param path An NWPath object to compare.
* @return YES if the two path objects have the same content, NO otherwise.
*/
-- (BOOL)isEqualToPath:(NWPath *)path API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (BOOL)isEqualToPath:(NWPath *)path
+API_DEPRECATED("Use `nw_path_is_equal` in Network framework instead, see deprecation notice in <NetworkExtension/NWPath.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWTCPConnection.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWTCPConnection.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWTCPConnection.h 2024-04-17 06:46:33
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWTCPConnection.h 2024-05-30 10:36:45
@@ -16,6 +16,12 @@
#import <Security/Security.h>
+/**
+ * DEPRECATION NOTICE
+ *
+ * NW object wrappers are hidden in Swift 6. To continue accessing them, you
+ * can prepend double underscores to the symbol name.
+ */
NS_ASSUME_NONNULL_BEGIN
@@ -51,13 +57,16 @@
* the cancellation method.
*/
NWTCPConnectionStateCancelled = 5,
-} API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+}
+API_DEPRECATED("Use `nw_connection_state_t` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @interface NWTCPConnection
* @discussion Establish TCP connections to an endpoint, and send and receive data on the TCP connection.
*/
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
+API_DEPRECATED("Use `nw_connection_t` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos)
@interface NWTCPConnection : NSObject
/*!
@@ -81,19 +90,25 @@
* @param connection The original connection from which the caller will upgrade
* @return An initialized NWTCPConnection
*/
-- (instancetype)initWithUpgradeForConnection:(NWTCPConnection *)connection API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (instancetype)initWithUpgradeForConnection:(NWTCPConnection *)connection
+API_DEPRECATED("Use `nw_connection_create` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property state
* @discussion The status of the connection. Use KVO to watch this property to get updates.
*/
-@property (nonatomic, readonly) NWTCPConnectionState state API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NWTCPConnectionState state
+API_DEPRECATED("Use `nw_connection_set_state_changed_handler` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property viable
* @discussion YES if the connection can read and write data, NO otherwise. Use KVO to watch this property.
*/
-@property (nonatomic, readonly, getter=isViable) BOOL viable API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, getter=isViable) BOOL viable
+API_DEPRECATED("Use `nw_connection_set_viability_changed_handler` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property hasBetterPath
@@ -102,13 +117,17 @@
* be done using the convenience upgrade initializer method.
* Use KVO to watch this property to get updates.
*/
-@property (nonatomic, readonly) BOOL hasBetterPath API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) BOOL hasBetterPath
+API_DEPRECATED("Use `nw_connection_set_better_path_available_handler` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property endpoint
* @discussion The destination endpoint with which this connection was created.
*/
-@property (nonatomic, readonly) NWEndpoint *endpoint API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NWEndpoint *endpoint
+API_DEPRECATED("Use `nw_connection_copy_endpoint` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property connectedPath
@@ -119,19 +138,25 @@
* for this connection only. As a result, some underlying properties might change in time and
* might not reflect the path for other connections that might be established at different times.
*/
-@property (nonatomic, readonly, nullable) NWPath *connectedPath API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) NWPath *connectedPath
+API_DEPRECATED("Use `nw_connection_copy_current_path` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property localAddress
* @discussion The IP address endpoint from which the connection was connected.
*/
-@property (nonatomic, readonly, nullable) NWEndpoint *localAddress API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) NWEndpoint *localAddress
+API_DEPRECATED("Use `nw_path_copy_effective_local_endpoint` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property remoteAddress
* @discussion The IP address endpoint to which the connection was connected.
*/
-@property (nonatomic, readonly, nullable) NWEndpoint *remoteAddress API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) NWEndpoint *remoteAddress
+API_DEPRECATED("Use `nw_path_copy_effective_remote_endpoint` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property txtRecord
@@ -139,21 +164,27 @@
* with the Bonjour service is available via this property. Beware that the value comes from
* the network. Care must be taken when parsing this potentially malicious value.
*/
-@property (nonatomic, readonly, nullable) NSData *txtRecord API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) NSData *txtRecord
+API_DEPRECATED("Use `nw_endpoint_copy_txt_record` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property error
* @discussion The connection-wide error property indicates any fatal error that occurred while
* processing the connection or performing data reading or writing.
*/
-@property (nonatomic, readonly, nullable) NSError *error API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) NSError *error
+API_DEPRECATED("Use `nw_connection_set_state_changed_handler` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method cancel:
* @discussion Cancel the connection. This will clean up the resources associated with this object
* and transition this object to NWTCPConnectionStateCancelled state.
*/
-- (void)cancel API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (void)cancel
+API_DEPRECATED("Use `nw_connection_cancel` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method readLength:completionHandler:
@@ -162,7 +193,9 @@
* @param length The exact number of bytes the application wants to read
* @param completion The completion handler to be invoked when there is data to read or an error occurred
*/
-- (void)readLength:(NSUInteger)length completionHandler:(void (^)(NSData * _Nullable data, NSError * _Nullable error))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (void)readLength:(NSUInteger)length completionHandler:(void (^)(NSData * _Nullable data, NSError * _Nullable error))completion NS_SWIFT_DISABLE_ASYNC
+API_DEPRECATED("Use `nw_connection_receive` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method readMinimumLength:maximumLength:completionHandler:
@@ -189,7 +222,9 @@
* @param maximum The maximum number of bytes the caller wants to read
* @param completion The completion handler to be invoked when there is data to read or an error occurred
*/
-- (void)readMinimumLength:(NSUInteger)minimum maximumLength:(NSUInteger)maximum completionHandler:(void (^)(NSData * _Nullable data, NSError * _Nullable error))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (void)readMinimumLength:(NSUInteger)minimum maximumLength:(NSUInteger)maximum completionHandler:(void (^)(NSData * _Nullable data, NSError * _Nullable error))completion NS_SWIFT_DISABLE_ASYNC
+API_DEPRECATED("Use `nw_connection_receive` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method write:completionHandler:
@@ -199,7 +234,9 @@
* @param completion The completion handler to be invoked when the data content has been written or an error has occurred.
* If the error is nil, the write succeeded and the caller can write more data.
*/
-- (void)write:(NSData *)data completionHandler:(void (^)(NSError * _Nullable error))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (void)write:(NSData *)data completionHandler:(void (^)(NSError * _Nullable error))completion NS_SWIFT_DISABLE_ASYNC
+API_DEPRECATED("Use `nw_connection_send` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method writeClose:
@@ -208,7 +245,9 @@
* When the connection's read side and write side are closed, the connection is considered
* disconnected and will transition to the appropriate state.
*/
-- (void)writeClose API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (void)writeClose
+API_DEPRECATED("Use `nw_connection_send` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
@end
@@ -216,7 +255,8 @@
* @protocol NWTCPConnectionAuthenticationDelegate
* @discussion Allows the caller to take custom actions on some connection events.
*/
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
+API_DEPRECATED("Use `sec_protocol_options_t` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos)
@protocol NWTCPConnectionAuthenticationDelegate <NSObject>
@optional
@@ -230,7 +270,9 @@
* @return YES to provide the identity for this connection, in which case, the delegate method
* provideIdentityForConnection:completionHandler: will be called.
*/
-- (BOOL)shouldProvideIdentityForConnection:(NWTCPConnection *)connection API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (BOOL)shouldProvideIdentityForConnection:(NWTCPConnection *)connection
+API_DEPRECATED("Use `sec_protocol_options_set_challenge_block` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method provideIdentityForConnection:completionHandler:
@@ -247,7 +289,9 @@
* completion handler invocation.
*/
- (void)provideIdentityForConnection:(NWTCPConnection *)connection
- completionHandler:(void (^)(SecIdentityRef identity, NSArray<id> *certificateChain))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+ completionHandler:(void (^)(SecIdentityRef identity, NSArray<id> *certificateChain))completion NS_SWIFT_DISABLE_ASYNC
+API_DEPRECATED("Use `sec_protocol_options_set_challenge_block` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method shouldEvaluateTrustForConnection:
@@ -259,7 +303,9 @@
* @return YES to take over the default trust evaluation, in which case, the delegate method
* evaluateTrustForConnection:peerCertificateChain:completionHandler: will be called.
*/
-- (BOOL)shouldEvaluateTrustForConnection:(NWTCPConnection *)connection API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (BOOL)shouldEvaluateTrustForConnection:(NWTCPConnection *)connection
+API_DEPRECATED("Use `sec_protocol_options_set_verify_block` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method evaluateTrustForConnection:peerCertificateChain:completionHandler:
@@ -276,7 +322,9 @@
*/
- (void)evaluateTrustForConnection:(NWTCPConnection *)connection
peerCertificateChain:(NSArray<id> *)peerCertificateChain
- completionHandler:(void (^)(SecTrustRef trust))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+ completionHandler:(void (^)(SecTrustRef trust))completion NS_SWIFT_DISABLE_ASYNC
+API_DEPRECATED("Use `sec_protocol_options_set_verify_block` in Network framework instead, see deprecation notice in <NetworkExtension/NWTCPConnection.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWTLSParameters.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWTLSParameters.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWTLSParameters.h 2024-04-17 06:46:34
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWTLSParameters.h 2024-05-30 05:16:41
@@ -12,9 +12,17 @@
#ifndef __NWTLSParameters_h_
#define __NWTLSParameters_h_
+/**
+ * DEPRECATION NOTICE
+ *
+ * NW object wrappers are hidden in Swift 6. To continue accessing them, you
+ * can prepend double underscores to the symbol name.
+ */
NS_ASSUME_NONNULL_BEGIN
+API_DEPRECATED("Use `sec_protocol_options_t` in Security framework instead, see deprecation notice in <NetworkExtension/NWTLSParameters.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos)
@interface NWTLSParameters : NSObject
/*!
@@ -22,21 +30,27 @@
* @discussion The session ID for the associated connection, used for TLS session resumption.
* This property is optional when using TLS.
*/
-@property (nullable, copy) NSData *TLSSessionID API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nullable, copy) NSData *TLSSessionID
+API_DEPRECATED("Use `sec_protocol_options_set_tls_resumption_enabled` in Security framework instead, see deprecation notice in <NetworkExtension/NWTLSParameters.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property SSLCipherSuites
* @discussion The set of allowed cipher suites, as defined in <Security/CipherSuite.h>.
* If set to nil, the default cipher suites will be used.
*/
-@property (nullable, copy) NSSet<NSNumber *> *SSLCipherSuites API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nullable, copy) NSSet<NSNumber *> *SSLCipherSuites
+API_DEPRECATED("Use `sec_protocol_options_append_tls_ciphersuite` in Security framework instead, see deprecation notice in <NetworkExtension/NWTLSParameters.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property minimumSSLProtocolVersion
* @discussion The minimum allowed SSLProtocol value. as defined in <Security/SecureTransport.h>.
* If set, the SSL handshake will not accept any protocol version older than the minimum.
*/
-@property (assign) NSUInteger minimumSSLProtocolVersion API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (assign) NSUInteger minimumSSLProtocolVersion
+API_DEPRECATED("Use `sec_protocol_options_set_min_tls_protocol_version` in Security framework instead, see deprecation notice in <NetworkExtension/NWTLSParameters.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property maximumSSLProtocolVersion
@@ -45,7 +59,9 @@
* This property should be used with caution, since it may limit the use of preferred
* SSL protocols.
*/
-@property (assign) NSUInteger maximumSSLProtocolVersion API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (assign) NSUInteger maximumSSLProtocolVersion
+API_DEPRECATED("Use `sec_protocol_options_set_max_tls_protocol_version` in Security framework instead, see deprecation notice in <NetworkExtension/NWTLSParameters.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWUDPSession.h /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWUDPSession.h
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWUDPSession.h 2024-04-08 10:32:56
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NWUDPSession.h 2024-05-30 05:02:58
@@ -15,6 +15,12 @@
#ifndef __NWUDPSession_h_
#define __NWUDPSession_h_
+/**
+ * DEPRECATION NOTICE
+ *
+ * NW object wrappers are hidden in Swift 6. To continue accessing them, you
+ * can prepend double underscores to the symbol name.
+ */
NS_ASSUME_NONNULL_BEGIN
@@ -40,13 +46,16 @@
NWUDPSessionStateFailed = 4,
/*! @constant NWUDPSessionStateCancelled The session has been cancelled by the client */
NWUDPSessionStateCancelled = 5,
-} API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+}
+API_DEPRECATED("Use `nw_connection_state_t` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @interface NWUDPSession
* @discussion Open UDP datagram sessions to an endpoint, and send and receive datagrams.
*/
-API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
+API_DEPRECATED("Use `nw_connection_t` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos)
@interface NWUDPSession : NSObject
/*!
@@ -65,7 +74,9 @@
* @param session The original session from which the application will upgrade
* @return An initialized NWUDPSession object.
*/
-- (instancetype)initWithUpgradeForSession:(NWUDPSession *)session API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (instancetype)initWithUpgradeForSession:(NWUDPSession *)session
+API_DEPRECATED("Use `nw_connection_create` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property state
@@ -74,39 +85,51 @@
* NWUDPSessionStateFailed if the endpoint could not be resolved, or all endpoints have been
* rejected. Use KVO to watch for changes.
*/
-@property (nonatomic, readonly) NWUDPSessionState state API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NWUDPSessionState state
+API_DEPRECATED("Use `nw_connection_set_state_changed_handler` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property endpoint
* @discussion The provided endpoint.
*/
-@property (atomic, readonly) NWEndpoint *endpoint API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (atomic, readonly) NWEndpoint *endpoint
+API_DEPRECATED("Use `nw_connection_copy_endpoint` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property resolvedEndpoint
* @discussion The currently targeted remote endpoint. Use KVO to watch for changes.
*/
-@property (nonatomic, readonly, nullable) NWEndpoint *resolvedEndpoint API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) NWEndpoint *resolvedEndpoint
+API_DEPRECATED("Use `nw_connection_copy_current_path` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property viable
* @discussion YES if the connection can read and write data, NO otherwise.
* Use KVO to watch this property.
*/
-@property (nonatomic, readonly, getter=isViable) BOOL viable API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, getter=isViable) BOOL viable
+API_DEPRECATED("Use `nw_connection_set_viability_changed_handler` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property hasBetterPath
* @discussion YES if there is another path available that is preferred over the currentPath.
* To take advantage of this path, create a new UDPSession. Use KVO to watch for changes.
*/
-@property (nonatomic, readonly) BOOL hasBetterPath API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) BOOL hasBetterPath
+API_DEPRECATED("Use `nw_connection_set_better_path_available_handler` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property currentPath
* @discussion The current evaluated path for the resolvedEndpoint. Use KVO to watch for changes.
*/
-@property (nonatomic, readonly, nullable) NWPath *currentPath API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly, nullable) NWPath *currentPath
+API_DEPRECATED("Use `nw_connection_copy_current_path` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method tryNextResolvedEndpoint
@@ -115,7 +138,9 @@
* with the current resolvedEndpoint, and the caller has determined that it is unusable. If
* there are no other resolved endpoints, the session will move to the failed state.
*/
-- (void)tryNextResolvedEndpoint API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (void)tryNextResolvedEndpoint
+API_DEPRECATED("Use `nw_connection_cancel_current_endpoint` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @property maximumDatagramLength
@@ -124,7 +149,9 @@
* value is not guaranteed to be the maximum datagram length for end-to-end communication
* across the network. Use KVO to watch for changes.
*/
-@property (nonatomic, readonly) NSUInteger maximumDatagramLength API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) NSUInteger maximumDatagramLength
+API_DEPRECATED("Use `nw_connection_get_maximum_datagram_size` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method setReadHandler:maxDatagrams
@@ -134,7 +161,9 @@
* @param maxDatagrams The maximum number of datagrams to send to the handler.
*/
- (void)setReadHandler:(void (^)(NSArray<NSData *> * _Nullable datagrams, NSError * _Nullable error))handler
- maxDatagrams:(NSUInteger)maxDatagrams API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+ maxDatagrams:(NSUInteger)maxDatagrams
+API_DEPRECATED("Use `nw_connection_receive` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method writeMultipleDatagrams:completionHandler
@@ -144,7 +173,9 @@
* @param completionHandler A handler called when the write request has either succeeded or failed.
*/
- (void)writeMultipleDatagrams:(NSArray<NSData *> *)datagramArray
- completionHandler:(void (^)(NSError * _Nullable error))completionHandler NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+ completionHandler:(void (^)(NSError * _Nullable error))completionHandler NS_SWIFT_DISABLE_ASYNC
+API_DEPRECATED("Use `nw_connection_send` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method writeDatagram:completionHandler
@@ -154,14 +185,18 @@
* @param completionHandler A handler called when the write request has either succeeded or failed.
*/
- (void)writeDatagram:(NSData *)datagram
- completionHandler:(void (^)(NSError * _Nullable error))completionHandler NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+ completionHandler:(void (^)(NSError * _Nullable error))completionHandler NS_SWIFT_DISABLE_ASYNC
+API_DEPRECATED("Use `nw_connection_send` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
/*!
* @method cancel
* @discussion Move into the NWUDPSessionStateCancelled state. The connection will be terminated,
* and all handlers will be cancelled.
*/
-- (void)cancel API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+- (void)cancel
+API_DEPRECATED("Use `nw_connection_cancel` in Network framework instead, see deprecation notice in <NetworkExtension/NWUDPSession.h>", macos(10.11, 15.0), ios(9.0, 18.0), tvos(17.0, 18.0), visionos(1.0, 2.0))
+API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.apinotes /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.apinotes
--- /Applications/Xcode_15.4.0.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.apinotes 2024-04-17 06:42:09
+++ /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NetworkExtension.apinotes 2024-05-30 10:35:06
@@ -11,6 +11,15 @@
NSErrorDomain: NEVPNErrorDomain
- Name: NEAppPushManagerError
NSErrorDomain: NEAppPushErrorDomain
+- Name: NWPathStatus
+ SwiftPrivate: true
+- Name: NWTCPConnectionState
+ SwiftPrivate: true
+- Name: NWUDPSessionState
+ SwiftPrivate: true
+Protocols:
+- Name: NWTCPConnectionAuthenticationDelegate
+ SwiftPrivate: true
Classes:
- Name: NEPacketTunnelNetworkSettings
Properties:
@@ -33,6 +42,156 @@
- Selector: "settingsWithLinkLocalAddressing"
MethodKind: Class
SwiftName: "linkLocalAddressing()"
+- Name: NEAppProxyFlow
+ Methods:
+ - Selector: "openWithLocalFlowEndpoint:completionHandler:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "openWithLocalEndpoint:completionHandler:"
+ MethodKind: Instance
+ SwiftPrivate: true
+- Name: NEAppProxyProvider
+ Methods:
+ - Selector: "handleNewUDPFlow:initialRemoteFlowEndpoint:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "handleNewUDPFlow:initialRemoteEndpoint:"
+ MethodKind: Instance
+ SwiftPrivate: true
+- Name: NEAppProxyTCPFlow
+ Properties:
+ - Name: remoteFlowEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: true
+ - Name: remoteEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: true
+- Name: NEAppProxyUDPFlow
+ Methods:
+ - Selector: "readDatagramsAndFlowEndpointsWithCompletionHandler:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "readDatagramsWithCompletionHandler:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "writeDatagrams:sentByFlowEndpoints:completionHandler:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "writeDatagrams:sentByEndpoints:completionHandler:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ Properties:
+ - Name: localFlowEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: true
+ - Name: localEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: true
+- Name: NEDNSProxyProvider
+ Methods:
+ - Selector: "handleNewUDPFlow:initialRemoteFlowEndpoint:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "handleNewUDPFlow:initialRemoteEndpoint:"
+ MethodKind: Instance
+ SwiftPrivate: true
+- Name: NEFilterSocketFlow
+ Properties:
+ - Name: remoteFlowEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: true
+ - Name: remoteEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: true
+ - Name: localFlowEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: true
+ - Name: localEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: true
+- Name: NEHotspotHelperCommand
+ Methods:
+ - Selector: "createTCPConnection:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "createUDPSession:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ Properties:
+ - Name: interface
+ PropertyKind: Instance
+ SwiftPrivate: true
+- Name: NENetworkRule
+ Methods:
+ - Selector: "initWithDestinationNetworkEndpoint:prefix:protocol:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "initWithDestinationNetwork:prefix:protocol:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "initWithDestinationHostEndpoint:protocol:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "initWithDestinationHost:protocol:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "initWithRemoteNetworkEndpoint:remotePrefix:localNetworkEndpoint:localPrefix:protocol:direction:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "initWithRemoteNetwork:remotePrefix:localNetwork:localPrefix:protocol:direction:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ Properties:
+ - Name: matchRemoteHostOrNetworkEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: true
+ - Name: matchRemoteEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: true
+ - Name: matchLocalNetworkEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: true
+ - Name: matchLocalNetwork
+ PropertyKind: Instance
+ SwiftPrivate: true
+- Name: NEPacketTunnelProvider
+ Methods:
+ - Selector: "createTCPConnectionThroughTunnelToEndpoint:enableTLS:TLSParameters:delegate:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "createUDPSessionThroughTunnelToEndpoint:fromEndpoint:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ Properties:
+ - Name: virtualInterface
+ PropertyKind: Instance
+ SwiftPrivate: true
+- Name: NEProvider
+ Methods:
+ - Selector: "createTCPConnectionToEndpoint:enableTLS:TLSParameters:delegate:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ - Selector: "createUDPSessionToEndpoint:fromEndpoint:"
+ MethodKind: Instance
+ SwiftPrivate: true
+ Properties:
+ - Name: defaultPath
+ PropertyKind: Instance
+ SwiftPrivate: true
+- Name: NWPath
+ SwiftPrivate: true
+- Name: NWEndpoint
+ SwiftPrivate: true
+- Name: NWHostEndpoint
+ SwiftPrivate: true
+- Name: NWBonjourServiceEndpoint
+ SwiftPrivate: true
+- Name: NWTLSParameters
+ SwiftPrivate: true
+- Name: NWTCPConnection
+ SwiftPrivate: true
+- Name: NWUDPSession
+ SwiftPrivate: true
Enumerators:
- Name: NEVPNIKEv2EncryptionAlgorithmDES
SwiftName: algorithmDES
@@ -49,6 +208,118 @@
- Name: NEVPNIKEv2EncryptionAlgorithmChaCha20Poly1305
SwiftName: algorithmChaCha20Poly1305
SwiftVersions:
+- Version: 5.0
+ Tags:
+ - Name: NWPathStatus
+ SwiftPrivate: false
+ - Name: NWTCPConnectionState
+ SwiftPrivate: false
+ - Name: NWUDPSessionState
+ SwiftPrivate: false
+ Protocols:
+ - Name: NWTCPConnectionAuthenticationDelegate
+ SwiftPrivate: false
+ Classes:
+ - Name: NEAppProxyFlow
+ Methods:
+ - Selector: "openWithLocalEndpoint:completionHandler:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ - Name: NEAppProxyProvider
+ Methods:
+ - Selector: "handleNewUDPFlow:initialRemoteEndpoint:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ - Name: NEAppProxyTCPFlow
+ Properties:
+ - Name: remoteEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: false
+ - Name: NEAppProxyUDPFlow
+ Methods:
+ - Selector: "readDatagramsWithCompletionHandler:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ - Selector: "writeDatagrams:sentByEndpoints:completionHandler:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ Properties:
+ - Name: localEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: false
+ - Name: NEDNSProxyProvider
+ Methods:
+ - Selector: "handleNewUDPFlow:initialRemoteEndpoint:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ - Name: NEFilterSocketFlow
+ Properties:
+ - Name: remoteEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: false
+ - Name: localEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: false
+ - Name: NEHotspotHelperCommand
+ Methods:
+ - Selector: "createTCPConnection:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ - Selector: "createUDPSession:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ - Name: NENetworkRule
+ Methods:
+ - Selector: "initWithDestinationNetwork:prefix:protocol:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ - Selector: "initWithDestinationHost:protocol:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ - Selector: "initWithRemoteNetwork:remotePrefix:localNetwork:localPrefix:protocol:direction:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ Properties:
+ - Name: matchRemoteEndpoint
+ PropertyKind: Instance
+ SwiftPrivate: false
+ - Name: matchLocalNetwork
+ PropertyKind: Instance
+ SwiftPrivate: false
+ - Name: NEPacketTunnelProvider
+ Methods:
+ - Selector: "createTCPConnectionThroughTunnelToEndpoint:enableTLS:TLSParameters:delegate:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ - Selector: "createUDPSessionThroughTunnelToEndpoint:fromEndpoint:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ - Name: NEProvider
+ Methods:
+ - Selector: "createTCPConnectionToEndpoint:enableTLS:TLSParameters:delegate:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ - Selector: "createUDPSessionToEndpoint:fromEndpoint:"
+ MethodKind: Instance
+ SwiftPrivate: false
+ Properties:
+ - Name: defaultPath
+ PropertyKind: Instance
+ SwiftPrivate: false
+ - Name: NWPath
+ SwiftPrivate: false
+ - Name: NWEndpoint
+ SwiftPrivate: false
+ - Name: NWHostEndpoint
+ SwiftPrivate: false
+ - Name: NWBonjourServiceEndpoint
+ SwiftPrivate: false
+ - Name: NWTLSParameters
+ SwiftPrivate: false
+ - Name: NWTCPConnection
+ SwiftPrivate: false
+ - Name: NWUDPSession
+ SwiftPrivate: false
- Version: 3.0
Classes:
- Name: NEPacketTunnelNetworkSettings
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status
- xcode16.2 Binding Status