Build Information
Failed to build TunnelMonitorKit, reference master (c15886), with Swift 6.4 for watchOS using Xcode 27.0 on 20 Sep 2026 16:05:15 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun xcodebuild -IDEClonedSourcePackagesDirPathOverride=$PWD/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath $PWD/.derivedData build -scheme TunnelMonitorKit -destination generic/platform=watchOSBuild Log
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:74:33: error: 'NEVPNStatus' is unavailable in watchOS
72 | }
73 |
74 | override public var status: NEVPNStatus {
| `- error: 'NEVPNStatus' is unavailable in watchOS
75 | return currentStatus
76 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:43:30: error: 'status' is unavailable in watchOS
41 |
42 | override public var status: NEVPNStatus {
43 | return nativeSession.status
| `- error: 'status' is unavailable in watchOS
44 | }
45 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:145:34: note: 'status' has been explicitly marked unavailable here
143 | * @discussion The current status of the VPN.
144 | */
145 | @property (readonly) NEVPNStatus status API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'status' has been explicitly marked unavailable here
146 |
147 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:47:23: error: 'stopTunnel()' is unavailable in watchOS
45 |
46 | override public func stopTunnel() {
47 | nativeSession.stopTunnel()
| `- error: 'stopTunnel()' is unavailable in watchOS
48 | }
49 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:39:1: note: 'stopTunnel()' has been explicitly marked unavailable here
37 | * @discussion This function is used to stop the tunnel. The tunnel disconnect process is started and this function returns immediately.
38 | */
39 | - (void)stopTunnel API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'stopTunnel()' has been explicitly marked unavailable here
40 |
41 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:51:27: error: 'startTunnel(options:)' is unavailable in watchOS
49 |
50 | override public func startTunnel(options: [String: Any]?) throws {
51 | try nativeSession.startTunnel(options: options)
| `- error: 'startTunnel(options:)' is unavailable in watchOS
52 | }
53 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:33:1: note: 'startTunnel(options:)' has been explicitly marked unavailable here
31 | * @return YES if the tunnel was started successfully, NO if an error occurred.
32 | */
33 | - (BOOL)startTunnelWithOptions:(nullable NSDictionary<NSString *,id> *)options andReturnError:(NSError **)error API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'startTunnel(options:)' has been explicitly marked unavailable here
34 |
35 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:55:27: error: 'sendProviderMessage(_:responseHandler:)' is unavailable in watchOS
53 |
54 | override public func sendProviderMessage(_ message: Data, responseHandler: ResponseCompletion) throws {
55 | try nativeSession.sendProviderMessage(message, responseHandler: responseHandler)
| `- error: 'sendProviderMessage(_:responseHandler:)' is unavailable in watchOS
56 | }
57 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:51:1: note: 'sendProviderMessage(_:responseHandler:)' has been explicitly marked unavailable here
49 | * @return YES if the message was sent successfully, NO if an error occurred.
50 | */
51 | - (BOOL)sendProviderMessage:(NSData *)messageData returnError:(NSError **)error responseHandler:(nullable void (^)( NSData * __nullable responseData))responseHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'sendProviderMessage(_:responseHandler:)' has been explicitly marked unavailable here
52 |
53 | @end
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:79:25: error: 'NEVPNStatus' is unavailable in watchOS
77 |
78 | override public func stopTunnel() {
79 | currentStatus = NEVPNStatus.disconnected
| `- error: 'NEVPNStatus' is unavailable in watchOS
80 | }
81 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMTunnelProviderManagerFactory.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMTunnelProviderSession.swift
SwiftCompile normal arm64_32 Compiling\ PacketTunnelConfiguration.swift,\ TunnelConfigurationError.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/TunnelConfigurationError.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:63:45: error: 'NEPacketTunnelNetworkSettings' is unavailable in watchOS
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- error: 'NEPacketTunnelNetworkSettings' is unavailable in watchOS
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelNetworkSettings.h:45:12: note: 'NEPacketTunnelNetworkSettings' has been explicitly marked unavailable here
43 | */
44 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
45 | @interface NEPacketTunnelNetworkSettings : NETunnelNetworkSettings
| `- note: 'NEPacketTunnelNetworkSettings' has been explicitly marked unavailable here
46 |
47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:81:57: error: 'NEIPv4Route' is unavailable in watchOS
79 | }
80 |
81 | private static func parseRoutes(string: String) -> [NEIPv4Route] {
| `- error: 'NEIPv4Route' is unavailable in watchOS
82 | return string.split(separator: ",")
83 | .map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h:85:12: note: 'NEIPv4Route' has been explicitly marked unavailable here
83 | */
84 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
85 | @interface NEIPv4Route : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NEIPv4Route' has been explicitly marked unavailable here
86 |
87 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:64:31: error: 'NEPacketTunnelNetworkSettings' is unavailable in watchOS
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
| `- error: 'NEPacketTunnelNetworkSettings' is unavailable in watchOS
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelNetworkSettings.h:45:12: note: 'NEPacketTunnelNetworkSettings' has been explicitly marked unavailable here
43 | */
44 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
45 | @interface NEPacketTunnelNetworkSettings : NETunnelNetworkSettings
| `- note: 'NEPacketTunnelNetworkSettings' has been explicitly marked unavailable here
46 |
47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:64:31: error: 'init(tunnelRemoteAddress:)' is unavailable in watchOS
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
| `- error: 'init(tunnelRemoteAddress:)' is unavailable in watchOS
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelNetworkSettings.h:34:1: note: 'init(tunnelRemoteAddress:)' has been explicitly marked unavailable here
32 | * @param address The address of the remote endpoint that is providing the tunnel service.
33 | */
34 | - (instancetype)initWithTunnelRemoteAddress:(NSString *)address API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'init(tunnelRemoteAddress:)' has been explicitly marked unavailable here
35 |
36 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:66:28: error: 'NEIPv4Settings' is unavailable in watchOS
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
| `- error: 'NEIPv4Settings' is unavailable in watchOS
67 | ipv4Settings.includedRoutes = TMNetworkSettings.parseRoutes(string: includedRoutes)
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h:28:12: note: 'NEIPv4Settings' has been explicitly marked unavailable here
26 | */
27 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
28 | @interface NEIPv4Settings : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NEIPv4Settings' has been explicitly marked unavailable here
29 |
30 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:66:28: error: 'init(addresses:subnetMasks:)' is unavailable in watchOS
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
| `- error: 'init(addresses:subnetMasks:)' is unavailable in watchOS
67 | ipv4Settings.includedRoutes = TMNetworkSettings.parseRoutes(string: includedRoutes)
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h:37:1: note: 'init(addresses:subnetMasks:)' has been explicitly marked unavailable here
35 | * @return The initialized object.
36 | */
37 | - (instancetype)initWithAddresses:(NSArray<NSString *> *)addresses subnetMasks:(NSArray<NSString *> *)subnetMasks API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'init(addresses:subnetMasks:)' has been explicitly marked unavailable here
38 |
39 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:67:22: error: 'includedRoutes' is unavailable in watchOS
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
67 | ipv4Settings.includedRoutes = TMNetworkSettings.parseRoutes(string: includedRoutes)
| `- error: 'includedRoutes' is unavailable in watchOS
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
69 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h:68:52: note: 'includedRoutes' has been explicitly marked unavailable here
66 | * @discussion An array of NEIPv4Route objects. Traffic matching these routes will be routed through the virtual interface used by the VPN tunnel.
67 | */
68 | @property (copy, nullable) NSArray<NEIPv4Route *> *includedRoutes API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'includedRoutes' has been explicitly marked unavailable here
69 |
70 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:68:22: error: 'excludedRoutes' is unavailable in watchOS
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
67 | ipv4Settings.includedRoutes = TMNetworkSettings.parseRoutes(string: includedRoutes)
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
| `- error: 'excludedRoutes' is unavailable in watchOS
69 |
70 | networkSettings.ipv4Settings = ipv4Settings
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h:74:52: note: 'excludedRoutes' has been explicitly marked unavailable here
72 | * @discussion An array of NEIPv4Route objects. Traffic matching these routes will be routed through the current primary physical interface of the device.
73 | */
74 | @property (copy, nullable) NSArray<NEIPv4Route *> *excludedRoutes API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'excludedRoutes' has been explicitly marked unavailable here
75 |
76 | @end
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:70:25: error: 'ipv4Settings' is unavailable in watchOS
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
69 |
70 | networkSettings.ipv4Settings = ipv4Settings
| `- error: 'ipv4Settings' is unavailable in watchOS
71 |
72 | if let overheadBytes = tunnelOverheadBytes {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelNetworkSettings.h:51:44: note: 'ipv4Settings' has been explicitly marked unavailable here
49 | * @discussion An NEIPv4Settings object that contains the desired tunnel IPv4 settings.
50 | */
51 | @property (copy, nullable) NEIPv4Settings *IPv4Settings API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'ipv4Settings' has been explicitly marked unavailable here
52 |
53 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:73:29: error: 'tunnelOverheadBytes' is unavailable in watchOS
71 |
72 | if let overheadBytes = tunnelOverheadBytes {
73 | networkSettings.tunnelOverheadBytes = NSNumber(value: overheadBytes)
| `- error: 'tunnelOverheadBytes' is unavailable in watchOS
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelNetworkSettings.h:63:38: note: 'tunnelOverheadBytes' has been explicitly marked unavailable here
61 | * @discussion An NSNumber object containing the number of bytes of overhead appended to each outbound packet through the tunnel. The MTU for the TUN interface is computed by subtracting this value from the MTU of the primary physical interface.
62 | */
63 | @property (copy, nullable) NSNumber *tunnelOverheadBytes API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'tunnelOverheadBytes' has been explicitly marked unavailable here
64 |
65 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:75:25: error: 'mtu' is unavailable in watchOS
73 | networkSettings.tunnelOverheadBytes = NSNumber(value: overheadBytes)
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
| `- error: 'mtu' is unavailable in watchOS
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
77 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelNetworkSettings.h:69:38: note: 'mtu' has been explicitly marked unavailable here
67 | * @discussion An NSNumber object containing the Maximum Transmission Unit (MTU) size in bytes to assign to the TUN interface. If this property is set, the tunnelOverheadBytes property is ignored.
68 | */
69 | @property (copy, nullable) NSNumber *MTU API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'mtu' has been explicitly marked unavailable here
70 |
71 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:76:25: error: 'dnsSettings' is unavailable in watchOS
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
| `- error: 'dnsSettings' is unavailable in watchOS
77 |
78 | return networkSettings
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelNetworkSettings.h:46:43: note: 'dnsSettings' has been explicitly marked unavailable here
44 | * @discussion An NEDNSSettings object that contains the desired tunnel DNS settings.
45 | */
46 | @property (copy, nullable) NEDNSSettings *DNSSettings API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'dnsSettings' has been explicitly marked unavailable here
47 |
48 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:76:39: error: 'NEDNSSettings' is unavailable in watchOS
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
| `- error: 'NEDNSSettings' is unavailable in watchOS
77 |
78 | return networkSettings
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEDNSSettings.h:37:12: note: 'NEDNSSettings' has been explicitly marked unavailable here
35 | */
36 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
37 | @interface NEDNSSettings : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NEDNSSettings' has been explicitly marked unavailable here
38 |
39 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:76:39: error: 'init(servers:)' is unavailable in watchOS
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
| `- error: 'init(servers:)' is unavailable in watchOS
77 |
78 | return networkSettings
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEDNSSettings.h:50:1: note: 'init(servers:)' has been explicitly marked unavailable here
48 | * @param servers An array of DNS server IP address strings.
49 | */
50 | - (instancetype)initWithServers:(NSArray<NSString *> *)servers API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'init(servers:)' has been explicitly marked unavailable here
51 |
52 | /*!
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PacketTunnelConfiguration.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/TunnelConfigurationError.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TunnelConfigurationError.swift
SwiftCompile normal arm64_32 Compiling\ TMNativeTunnelProviderManager.swift,\ TMPacketTunnelProvider.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:16:34: error: 'NETunnelProviderManager' is unavailable in watchOS
14 |
15 | private let monitor = TunnelMonitor()
16 | private let providerManager: NETunnelProviderManager
| `- error: 'NETunnelProviderManager' is unavailable in watchOS
17 |
18 | private var pollingInterval = 1.0
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderManager.h:31:12: note: 'NETunnelProviderManager' has been explicitly marked unavailable here
29 | */
30 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
31 | @interface NETunnelProviderManager : NEVPNManager
| `- note: 'NETunnelProviderManager' has been explicitly marked unavailable here
32 |
33 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:20:39: error: 'NEVPNStatus' is unavailable in watchOS
18 | private var pollingInterval = 1.0
19 |
20 | override public var tunnelStatus: NEVPNStatus { session?.status ?? .invalid }
| `- error: 'NEVPNStatus' is unavailable in watchOS
21 | override public var tunnelMonitor: TunnelMonitor { monitor }
22 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:24:20: error: 'NETunnelProviderManager' is unavailable in watchOS
22 |
23 | /// Initialise VPNManager, which also saves/updates a tunnel configuration to the phone's VPN settings
24 | init(provider: NETunnelProviderManager) {
| `- error: 'NETunnelProviderManager' is unavailable in watchOS
25 | providerManager = provider
26 | super.init()
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderManager.h:31:12: note: 'NETunnelProviderManager' has been explicitly marked unavailable here
29 | */
30 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
31 | @interface NETunnelProviderManager : NEVPNManager
| `- note: 'NETunnelProviderManager' has been explicitly marked unavailable here
32 |
33 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:31:37: error: 'NEVPNStatusDidChange' is unavailable in watchOS
29 | self,
30 | selector: #selector(handleVPNStatusChange),
31 | name: Notification.Name.NEVPNStatusDidChange,
| `- error: 'NEVPNStatusDidChange' is unavailable in watchOS
32 | object: nil
33 | )
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:38:31: note: 'NEVPNStatusDidChange' has been explicitly marked unavailable here
36 |
37 | /*! @const NEVPNStatusDidChangeNotification Name of the NSNotification that is posted when the VPN status changes. */
38 | NEVPN_EXPORT NSString * const NEVPNStatusDidChangeNotification API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'NEVPNStatusDidChange' has been explicitly marked unavailable here
39 |
40 | /*! @const NEVPNConnectionStartOptionUsername Specify this key in the options dictionary passed to startVPNTunnelWithOptions:returningError: to override the username saved in the configuration. The value is a string */
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:37:65: error: 'NETunnelProviderSession' is unavailable in watchOS
35 |
36 | override var session: TMTunnelProviderSession? {
37 | if let providerSession = providerManager.connection as? NETunnelProviderSession {
| `- error: 'NETunnelProviderSession' is unavailable in watchOS
38 | return TMTunnelProviderSessionNative(nativeSession: providerSession)
39 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:22:12: note: 'NETunnelProviderSession' has been explicitly marked unavailable here
20 |
21 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
22 | @interface NETunnelProviderSession : NEVPNConnection
| `- note: 'NETunnelProviderSession' has been explicitly marked unavailable here
23 |
24 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:37:50: error: 'connection' is unavailable in watchOS
35 |
36 | override var session: TMTunnelProviderSession? {
37 | if let providerSession = providerManager.connection as? NETunnelProviderSession {
| `- error: 'connection' is unavailable in watchOS
38 | return TMTunnelProviderSessionNative(nativeSession: providerSession)
39 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNManager.h:142:39: note: 'connection' has been explicitly marked unavailable here
140 | * @discussion The NEVPNConnection object used for controlling the VPN tunnel.
141 | */
142 | @property (readonly) NEVPNConnection *connection API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'connection' has been explicitly marked unavailable here
143 |
144 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:49:33: error: 'connection' is unavailable in watchOS
47 | }
48 | do {
49 | try providerManager.connection.startVPNTunnel()
| `- error: 'connection' is unavailable in watchOS
50 | } catch {
51 | print("\(error)")
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNManager.h:142:39: note: 'connection' has been explicitly marked unavailable here
140 | * @discussion The NEVPNConnection object used for controlling the VPN tunnel.
141 | */
142 | @property (readonly) NEVPNConnection *connection API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'connection' has been explicitly marked unavailable here
143 |
144 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:49:44: error: 'startVPNTunnel()' is unavailable in watchOS
47 | }
48 | do {
49 | try providerManager.connection.startVPNTunnel()
| `- error: 'startVPNTunnel()' is unavailable in watchOS
50 | } catch {
51 | print("\(error)")
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:112:1: note: 'startVPNTunnel()' has been explicitly marked unavailable here
110 | * @return YES if the VPN tunnel was started successfully, NO if an error occurred.
111 | */
112 | - (BOOL)startVPNTunnelAndReturnError:(NSError **)error API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'startVPNTunnel()' has been explicitly marked unavailable here
113 |
114 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:58:25: error: 'connection' is unavailable in watchOS
56 | /// Stop the service, closing the existing VPN Tunnel.
57 | override public func stopTunnel() {
58 | providerManager.connection.stopVPNTunnel()
| `- error: 'connection' is unavailable in watchOS
59 | tunnelMonitor.stopMonitoring()
60 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNManager.h:142:39: note: 'connection' has been explicitly marked unavailable here
140 | * @discussion The NEVPNConnection object used for controlling the VPN tunnel.
141 | */
142 | @property (readonly) NEVPNConnection *connection API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'connection' has been explicitly marked unavailable here
143 |
144 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:58:36: error: 'stopVPNTunnel()' is unavailable in watchOS
56 | /// Stop the service, closing the existing VPN Tunnel.
57 | override public func stopTunnel() {
58 | providerManager.connection.stopVPNTunnel()
| `- error: 'stopVPNTunnel()' is unavailable in watchOS
59 | tunnelMonitor.stopMonitoring()
60 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:132:1: note: 'stopVPNTunnel()' has been explicitly marked unavailable here
130 | * @discussion This function is used to stop the VPN tunnel. The VPN tunnel disconnect process is started and this function returns immediately.
131 | */
132 | - (void)stopVPNTunnel API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'stopVPNTunnel()' has been explicitly marked unavailable here
133 |
134 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift:51:46: error: 'NETunnelNetworkSettings' is unavailable in watchOS
49 | func configureTunnel(
50 | userConfigurationData: Data?,
51 | settingsApplicationBlock: @escaping (NETunnelNetworkSettings?, ((Error?) -> Void)?) -> Void,
| `- error: 'NETunnelNetworkSettings' is unavailable in watchOS
52 | completionHandler: @escaping (TMTunnelConfigurationError?) -> Void
53 | )
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelNetworkSettings.h:27:12: note: 'NETunnelNetworkSettings' has been explicitly marked unavailable here
25 | */
26 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
27 | @interface NETunnelNetworkSettings : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NETunnelNetworkSettings' has been explicitly marked unavailable here
28 |
29 | /*!
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMNativeTunnelProviderManager.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMPacketTunnelProvider.swift
SwiftCompile normal arm64_32 Compiling\ MessageContainer.swift,\ MessageRouter.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/MessageContainer.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/MessageRouter.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/MessageContainer.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile MessageContainer.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/MessageRouter.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile MessageRouter.swift
SwiftCompile normal arm64_32 Compiling\ TMLogger.swift,\ TMOSLogger.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMLogger.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMOSLogger.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMLogger.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMLogger.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMOSLogger.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMOSLogger.swift
SwiftEmitModule normal arm64 Emitting\ module\ for\ TunnelMonitorKit (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64 (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
2026-09-20 12:05:06.286 xcodebuild[652:4213] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
2026-09-20 12:05:06.428 xcodebuild[652:4213] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
SwiftEmitModule normal arm64_32 Emitting\ module\ for\ TunnelMonitorKit (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64_32 (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
Building workspace TunnelMonitorKit with scheme TunnelMonitorKit
(3 failures)
Command line invocation:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/usr/bin/xcodebuild -IDEClonedSourcePackagesDirPathOverride=/Users/admin/builder/spi-builder-workspace/.dependencies -resolvePackageDependencies
Resolve Package Graph
Resolved source packages:
TunnelMonitorKit: /Users/admin/builder/spi-builder-workspace
resolved source packages: TunnelMonitorKit
2026-09-20 12:05:11.951 xcodebuild[747:4591] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
2026-09-20 12:05:12.090 xcodebuild[747:4591] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
{
"dependencies" : [
],
"manifest_display_name" : "TunnelMonitorKit",
"name" : "TunnelMonitorKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "11.0"
},
{
"name" : "macos",
"version" : "10.13"
}
],
"products" : [
{
"name" : "TunnelMonitorKit",
"targets" : [
"TunnelMonitorKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "TunnelMonitorKitTests",
"module_type" : "SwiftTarget",
"name" : "TunnelMonitorKitTests",
"path" : "Tests/TunnelMonitorKitTests",
"sources" : [
"MockingTests/TMMockTunnelProviderManagerTests.swift",
"MockingTests/TMTunnelProviderSessionMockTests.swift",
"TunnelCommunicationTests/MessageContainerTests.swift",
"TunnelCommunicationTests/MessageRouterTests.swift",
"TunnelCommunicationTests/TunnelMonitorTests.swift",
"TunnelConfigurationTests/PacketTunnelConfigurationTests.swift",
"UtilTests/NEIPv4RouteTests.swift"
],
"target_dependencies" : [
"TunnelMonitorKit"
],
"type" : "test"
},
{
"c99name" : "TunnelMonitorKit",
"module_type" : "SwiftTarget",
"name" : "TunnelMonitorKit",
"path" : "Sources/TunnelMonitorKit",
"product_memberships" : [
"TunnelMonitorKit"
],
"sources" : [
"Logging/TMLogger.swift",
"Logging/TMOSLogger.swift",
"Mocking/TMNativeTunnelProviderManager.swift",
"Mocking/TMPacketTunnelProvider.swift",
"Mocking/TMPacketTunnelProviderNative.swift",
"Mocking/TMTunnelProviderManager.swift",
"Mocking/TMTunnelProviderManagerFactory.swift",
"Mocking/TMTunnelProviderSession.swift",
"TunnelCommunication/MessageContainer.swift",
"TunnelCommunication/MessageRouter.swift",
"TunnelCommunication/TMCommunicationError.swift",
"TunnelCommunication/TunnelMonitor.swift",
"TunnelConfiguration/PacketTunnelConfiguration.swift",
"TunnelConfiguration/TunnelConfigurationError.swift",
"TunnelMonitorKit.swift",
"Util/NEIPv4Route+Util.swift",
"Util/NEProviderStopReason+StringConvertible.swift",
"Util/NEVPNStatus+Util.swift",
"Util/NSTextCheckingResult+Util.swift"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
{
"workspace" : {
"name" : "TunnelMonitorKit",
"schemes" : [
"TunnelMonitorKit"
]
}
}
2026-09-20 12:05:13.140 xcodebuild[755:4662] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
2026-09-20 12:05:13.279 xcodebuild[755:4662] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun xcodebuild -IDEClonedSourcePackagesDirPathOverride=$PWD/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath $PWD/.derivedData build -scheme TunnelMonitorKit -destination generic/platform=watchOS
Command line invocation:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/usr/bin/xcodebuild -IDEClonedSourcePackagesDirPathOverride=/Users/admin/builder/spi-builder-workspace/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath /Users/admin/builder/spi-builder-workspace/.derivedData build -scheme TunnelMonitorKit -destination generic/platform=watchOS
Resolve Package Graph
Resolved source packages:
TunnelMonitorKit: /Users/admin/builder/spi-builder-workspace
ComputePackagePrebuildTargetDependencyGraph
Prepare packages
CreateBuildRequest
SendProjectDescription
CreateBuildOperation
ComputeTargetDependencyGraph
note: Building targets in dependency order
note: Target dependency graph (3 targets)
Target 'TunnelMonitorKitTests-product' in project 'TunnelMonitorKit'
➜ Explicit dependency on target 'TunnelMonitorKit' in project 'TunnelMonitorKit'
Target 'TunnelMonitorKit-product' in project 'TunnelMonitorKit'
➜ Explicit dependency on target 'TunnelMonitorKit' in project 'TunnelMonitorKit'
Target 'TunnelMonitorKit' in project 'TunnelMonitorKit' (no dependencies)
GatherProvisioningInputs
CreateBuildDescription
ClangStatCache /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang-stat-cache /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/watchos27.0-24R360-e829b21a6f8c9b70876ba0858053c04477534ef55a1706bf4c1112bbb242f0a2.sdkstatcache
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang-stat-cache /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk -o /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/watchos27.0-24R360-e829b21a6f8c9b70876ba0858053c04477534ef55a1706bf4c1112bbb242f0a2.sdkstatcache
SwiftDriver TunnelMonitorKit normal arm64_32 com.apple.xcode.tools.swift.compiler (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftDriver -- /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -parse-as-library -module-name TunnelMonitorKit -Onone @/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit.SwiftFileList -DSWIFT_PACKAGE -DDEBUG -DSWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -DXcode -plugin-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins/testing -enable-experimental-feature DebugDescriptionMacro -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk -target arm64_32-apple-watchos9.0 -g -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -Xfrontend -serialize-debugging-options -profile-coverage-mapping -profile-generate -enable-testing -index-store-path /Users/admin/builder/spi-builder-workspace/.derivedData/Index.noindex/DataStore -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -swift-version 5 -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/Developer/Library/Frameworks -c -j10 -enable-batch-mode -incremental -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/watchos27.0-24R360-e829b21a6f8c9b70876ba0858053c04477534ef55a1706bf4c1112bbb242f0a2.sdkstatcache -output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit-OutputFileMap.json -save-temps -no-color-diagnostics -explicit-module-build -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -clang-scanner-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -sdk-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules -emit-dependencies -emit-module -emit-module-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit.swiftmodule -serialize-diagnostics -dependency-scan-serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit-dependency-scan.dia -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -emit-const-values -const-gather-protocols-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit_const_extract_protocols.json -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/DerivedSources-normal/arm64_32 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/DerivedSources/arm64_32 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -emit-objc-header -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit-Swift.h -working-directory /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -experimental-emit-module-separately -disable-cmo
SwiftDriver TunnelMonitorKit normal arm64 com.apple.xcode.tools.swift.compiler (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftDriver -- /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -parse-as-library -module-name TunnelMonitorKit -Onone @/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit.SwiftFileList -DSWIFT_PACKAGE -DDEBUG -DSWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -DXcode -plugin-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins/testing -enable-experimental-feature DebugDescriptionMacro -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk -target arm64-apple-watchos9.0 -g -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -Xfrontend -serialize-debugging-options -profile-coverage-mapping -profile-generate -enable-testing -index-store-path /Users/admin/builder/spi-builder-workspace/.derivedData/Index.noindex/DataStore -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -swift-version 5 -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/Developer/Library/Frameworks -c -j10 -enable-batch-mode -incremental -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/watchos27.0-24R360-e829b21a6f8c9b70876ba0858053c04477534ef55a1706bf4c1112bbb242f0a2.sdkstatcache -output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit-OutputFileMap.json -save-temps -no-color-diagnostics -explicit-module-build -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -clang-scanner-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -sdk-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules -emit-dependencies -emit-module -emit-module-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit.swiftmodule -serialize-diagnostics -dependency-scan-serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit-dependency-scan.dia -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -emit-const-values -const-gather-protocols-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit_const_extract_protocols.json -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -emit-objc-header -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit-Swift.h -working-directory /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -experimental-emit-module-separately -disable-cmo
SwiftCompile normal arm64 Compiling\ TMLogger.swift,\ TMOSLogger.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMLogger.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMOSLogger.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMLogger.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMLogger.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMOSLogger.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMOSLogger.swift
SwiftCompile normal arm64 Compiling\ TMTunnelProviderManagerFactory.swift,\ TMTunnelProviderSession.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:46:9: error: 'NETunnelProviderManager' is unavailable in watchOS
44 | ) {
45 | // Initialise VPNManager, which also saves/updates a tunnel configuration to the phone's VPN settings
46 | NETunnelProviderManager.loadAllFromPreferences { (savedManagers, error) in
| `- error: 'NETunnelProviderManager' is unavailable in watchOS
47 | if let error = error {
48 | log(.error, "Failed to load list of tunnel provider managers with error: \(error)")
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderManager.h:31:12: note: 'NETunnelProviderManager' has been explicitly marked unavailable here
29 | */
30 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
31 | @interface NETunnelProviderManager : NEVPNManager
| `- note: 'NETunnelProviderManager' has been explicitly marked unavailable here
32 |
33 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:46:33: error: 'loadAllFromPreferences(completionHandler:)' is unavailable in watchOS
44 | ) {
45 | // Initialise VPNManager, which also saves/updates a tunnel configuration to the phone's VPN settings
46 | NETunnelProviderManager.loadAllFromPreferences { (savedManagers, error) in
| `- error: 'loadAllFromPreferences(completionHandler:)' is unavailable in watchOS
47 | if let error = error {
48 | log(.error, "Failed to load list of tunnel provider managers with error: \(error)")
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderManager.h:38:1: note: 'loadAllFromPreferences(completionHandler:)' has been explicitly marked unavailable here
36 | * @param completionHandler A block that takes an array NETunnelProviderManager objects. The array passed to the block may be empty if no NETunnelProvider configurations were successfully read from the disk. The NSError passed to this block will be nil if the load operation succeeded, non-nil otherwise.
37 | */
38 | + (void)loadAllFromPreferencesWithCompletionHandler:(void (^)(NSArray<NETunnelProviderManager *> * __nullable managers, NSError * __nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'loadAllFromPreferences(completionHandler:)' has been explicitly marked unavailable here
39 |
40 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:57:26: error: 'loadFromPreferences(completionHandler:)' is unavailable in watchOS
55 | return
56 | }
57 | savedManager.loadFromPreferences { (error) in
| `- error: 'loadFromPreferences(completionHandler:)' is unavailable in watchOS
58 | if let error = error {
59 | log(.error, "Failed to load tunnel provider manager: \(savedManager) error: \(error)")
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNManager.h:82:1: note: 'loadFromPreferences(completionHandler:)' has been explicitly marked unavailable here
80 | * @param completionHandler A block that will be called on the main thread when the load operation is completed. The NSError passed to this block will be nil if the load operation succeeded, non-nil otherwise.
81 | */
82 | - (void)loadFromPreferencesWithCompletionHandler:(void (^)(NSError * __nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'loadFromPreferences(completionHandler:)' has been explicitly marked unavailable here
83 |
84 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:64:32: error: 'NETunnelProviderProtocol' is unavailable in watchOS
62 | }
63 |
64 | let provider = NETunnelProviderProtocol()
| `- error: 'NETunnelProviderProtocol' is unavailable in watchOS
65 | provider.providerBundleIdentifier = tunnelSettings.tunnelBundleID
66 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderProtocol.h:28:12: note: 'NETunnelProviderProtocol' has been explicitly marked unavailable here
26 | */
27 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
28 | @interface NETunnelProviderProtocol : NEVPNProtocol
| `- note: 'NETunnelProviderProtocol' has been explicitly marked unavailable here
29 |
30 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:65:26: error: 'providerBundleIdentifier' is unavailable in watchOS
63 |
64 | let provider = NETunnelProviderProtocol()
65 | provider.providerBundleIdentifier = tunnelSettings.tunnelBundleID
| `- error: 'providerBundleIdentifier' is unavailable in watchOS
66 |
67 | let encoder = JSONEncoder()
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderProtocol.h:40:38: note: 'providerBundleIdentifier' has been explicitly marked unavailable here
38 | * @discussion A string containing the bundle identifier of the NETunnelProvider to be used by this configuration.
39 | */
40 | @property (copy, nullable) NSString *providerBundleIdentifier API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'providerBundleIdentifier' has been explicitly marked unavailable here
41 |
42 | @end
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:76:30: error: 'providerConfiguration' is unavailable in watchOS
74 | ]
75 |
76 | provider.providerConfiguration = config
| `- error: 'providerConfiguration' is unavailable in watchOS
77 | provider.serverAddress = networkSettings.tunnelRemoteAddress
78 | provider.disconnectOnSleep = tunnelSettings.disconnectOnSleep
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderProtocol.h:34:57: note: 'providerConfiguration' has been explicitly marked unavailable here
32 | * @discussion A dictionary containing NETunnelProvider vendor-specific configuration parameters. This dictionary is passed as-is to NETunnelProviders when a tunnel is started.
33 | */
34 | @property (copy, nullable) NSDictionary<NSString *,id> *providerConfiguration API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'providerConfiguration' has been explicitly marked unavailable here
35 |
36 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:77:30: error: 'serverAddress' is unavailable in watchOS
75 |
76 | provider.providerConfiguration = config
77 | provider.serverAddress = networkSettings.tunnelRemoteAddress
| `- error: 'serverAddress' is unavailable in watchOS
78 | provider.disconnectOnSleep = tunnelSettings.disconnectOnSleep
79 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNProtocol.h:31:38: note: 'serverAddress' has been explicitly marked unavailable here
29 | * @discussion The VPN server. Depending on the protocol, may be an IP address, host name, or URL.
30 | */
31 | @property (copy, nullable) NSString *serverAddress API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'serverAddress' has been explicitly marked unavailable here
32 |
33 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:78:30: error: 'disconnectOnSleep' is unavailable in watchOS
76 | provider.providerConfiguration = config
77 | provider.serverAddress = networkSettings.tunnelRemoteAddress
78 | provider.disconnectOnSleep = tunnelSettings.disconnectOnSleep
| `- error: 'disconnectOnSleep' is unavailable in watchOS
79 |
80 | savedManager.localizedDescription = tunnelSettings.managerLocalizedDescription
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNProtocol.h:67:16: note: 'disconnectOnSleep' has been explicitly marked unavailable here
65 | * @discussion If YES, the VPN connection will be disconnected when the device goes to sleep. The default is NO.
66 | */
67 | @property BOOL disconnectOnSleep API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'disconnectOnSleep' has been explicitly marked unavailable here
68 |
69 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:80:34: error: 'localizedDescription' is unavailable in watchOS
78 | provider.disconnectOnSleep = tunnelSettings.disconnectOnSleep
79 |
80 | savedManager.localizedDescription = tunnelSettings.managerLocalizedDescription
| `- error: 'localizedDescription' is unavailable in watchOS
81 | savedManager.protocolConfiguration = provider
82 | savedManager.isEnabled = true
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNManager.h:124:38: note: 'localizedDescription' has been explicitly marked unavailable here
122 | * @discussion A string containing a description of the VPN.
123 | */
124 | @property (copy, nullable) NSString *localizedDescription API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'localizedDescription' has been explicitly marked unavailable here
125 |
126 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:81:34: error: 'protocolConfiguration' is unavailable in watchOS
79 |
80 | savedManager.localizedDescription = tunnelSettings.managerLocalizedDescription
81 | savedManager.protocolConfiguration = provider
| `- error: 'protocolConfiguration' is unavailable in watchOS
82 | savedManager.isEnabled = true
83 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNManager.h:136:45: note: 'protocolConfiguration' has been explicitly marked unavailable here
134 | * @discussion An NEVPNProtocol object containing the protocol-specific portion of the VPN configuration.
135 | */
136 | @property (strong, nullable) NEVPNProtocol *protocolConfiguration API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'protocolConfiguration' has been explicitly marked unavailable here
137 |
138 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:82:34: error: 'isEnabled' is unavailable in watchOS
80 | savedManager.localizedDescription = tunnelSettings.managerLocalizedDescription
81 | savedManager.protocolConfiguration = provider
82 | savedManager.isEnabled = true
| `- error: 'isEnabled' is unavailable in watchOS
83 |
84 | savedManager.saveToPreferences { error in
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNManager.h:148:35: note: 'isEnabled' has been explicitly marked unavailable here
146 | * @discussion Toggles the enabled status of the VPN. Setting this property will disable VPN configurations of other apps. This property will be set to NO when other VPN configurations are enabled.
147 | */
148 | @property (getter=isEnabled) BOOL enabled API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'isEnabled' has been explicitly marked unavailable here
149 |
150 | @end
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:84:34: error: 'saveToPreferences(completionHandler:)' is unavailable in watchOS
82 | savedManager.isEnabled = true
83 |
84 | savedManager.saveToPreferences { error in
| `- error: 'saveToPreferences(completionHandler:)' is unavailable in watchOS
85 | if let error = error {
86 | log(.error, "Failed to save tunnel provider manager: \(savedManager) error: \(error)")
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNManager.h:97:1: note: 'saveToPreferences(completionHandler:)' has been explicitly marked unavailable here
95 | * @param completionHandler A block that will be called on the main thread when the save operation is completed. The NSError passed to this block will be nil if the save operation succeeded, non-nil otherwise.
96 | */
97 | - (void)saveToPreferencesWithCompletionHandler:(nullable void (^)(NSError * __nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'saveToPreferences(completionHandler:)' has been explicitly marked unavailable here
98 |
99 | #if TARGET_OS_OSX
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:29:17: error: 'NEVPNStatus' is unavailable in watchOS
27 |
28 | /// Returns the current session status.
29 | var status: NEVPNStatus { return .invalid }
| `- error: 'NEVPNStatus' is unavailable in watchOS
30 |
31 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:36:32: error: 'NETunnelProviderSession' is unavailable in watchOS
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
35 |
36 | private let nativeSession: NETunnelProviderSession
| `- error: 'NETunnelProviderSession' is unavailable in watchOS
37 |
38 | public init(nativeSession: NETunnelProviderSession) {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:22:12: note: 'NETunnelProviderSession' has been explicitly marked unavailable here
20 |
21 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
22 | @interface NETunnelProviderSession : NEVPNConnection
| `- note: 'NETunnelProviderSession' has been explicitly marked unavailable here
23 |
24 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:38:32: error: 'NETunnelProviderSession' is unavailable in watchOS
36 | private let nativeSession: NETunnelProviderSession
37 |
38 | public init(nativeSession: NETunnelProviderSession) {
| `- error: 'NETunnelProviderSession' is unavailable in watchOS
39 | self.nativeSession = nativeSession
40 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:22:12: note: 'NETunnelProviderSession' has been explicitly marked unavailable here
20 |
21 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
22 | @interface NETunnelProviderSession : NEVPNConnection
| `- note: 'NETunnelProviderSession' has been explicitly marked unavailable here
23 |
24 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:42:33: error: 'NEVPNStatus' is unavailable in watchOS
40 | }
41 |
42 | override public var status: NEVPNStatus {
| `- error: 'NEVPNStatus' is unavailable in watchOS
43 | return nativeSession.status
44 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:63:32: error: 'NEVPNStatus' is unavailable in watchOS
61 |
62 | public let mockMessageRouter = MessageRouter()
63 | private var currentStatus: NEVPNStatus = .invalid
| `- error: 'NEVPNStatus' is unavailable in watchOS
64 | private var provider: TMPacketTunnelProvider?
65 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:70:37: error: 'NEVPNStatus' is unavailable in watchOS
68 | }
69 |
70 | public func setStatus(_ status: NEVPNStatus) {
| `- error: 'NEVPNStatus' is unavailable in watchOS
71 | currentStatus = status
72 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:74:33: error: 'NEVPNStatus' is unavailable in watchOS
72 | }
73 |
74 | override public var status: NEVPNStatus {
| `- error: 'NEVPNStatus' is unavailable in watchOS
75 | return currentStatus
76 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:43:30: error: 'status' is unavailable in watchOS
41 |
42 | override public var status: NEVPNStatus {
43 | return nativeSession.status
| `- error: 'status' is unavailable in watchOS
44 | }
45 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:145:34: note: 'status' has been explicitly marked unavailable here
143 | * @discussion The current status of the VPN.
144 | */
145 | @property (readonly) NEVPNStatus status API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'status' has been explicitly marked unavailable here
146 |
147 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:47:23: error: 'stopTunnel()' is unavailable in watchOS
45 |
46 | override public func stopTunnel() {
47 | nativeSession.stopTunnel()
| `- error: 'stopTunnel()' is unavailable in watchOS
48 | }
49 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:39:1: note: 'stopTunnel()' has been explicitly marked unavailable here
37 | * @discussion This function is used to stop the tunnel. The tunnel disconnect process is started and this function returns immediately.
38 | */
39 | - (void)stopTunnel API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'stopTunnel()' has been explicitly marked unavailable here
40 |
41 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:51:27: error: 'startTunnel(options:)' is unavailable in watchOS
49 |
50 | override public func startTunnel(options: [String: Any]?) throws {
51 | try nativeSession.startTunnel(options: options)
| `- error: 'startTunnel(options:)' is unavailable in watchOS
52 | }
53 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:33:1: note: 'startTunnel(options:)' has been explicitly marked unavailable here
31 | * @return YES if the tunnel was started successfully, NO if an error occurred.
32 | */
33 | - (BOOL)startTunnelWithOptions:(nullable NSDictionary<NSString *,id> *)options andReturnError:(NSError **)error API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'startTunnel(options:)' has been explicitly marked unavailable here
34 |
35 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:55:27: error: 'sendProviderMessage(_:responseHandler:)' is unavailable in watchOS
53 |
54 | override public func sendProviderMessage(_ message: Data, responseHandler: ResponseCompletion) throws {
55 | try nativeSession.sendProviderMessage(message, responseHandler: responseHandler)
| `- error: 'sendProviderMessage(_:responseHandler:)' is unavailable in watchOS
56 | }
57 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:51:1: note: 'sendProviderMessage(_:responseHandler:)' has been explicitly marked unavailable here
49 | * @return YES if the message was sent successfully, NO if an error occurred.
50 | */
51 | - (BOOL)sendProviderMessage:(NSData *)messageData returnError:(NSError **)error responseHandler:(nullable void (^)( NSData * __nullable responseData))responseHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'sendProviderMessage(_:responseHandler:)' has been explicitly marked unavailable here
52 |
53 | @end
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:79:25: error: 'NEVPNStatus' is unavailable in watchOS
77 |
78 | override public func stopTunnel() {
79 | currentStatus = NEVPNStatus.disconnected
| `- error: 'NEVPNStatus' is unavailable in watchOS
80 | }
81 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMTunnelProviderManagerFactory.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMTunnelProviderSession.swift
SwiftCompile normal arm64 Compiling\ MessageContainer.swift,\ MessageRouter.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/MessageContainer.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/MessageRouter.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/MessageContainer.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile MessageContainer.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/MessageRouter.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile MessageRouter.swift
SwiftCompile normal arm64 Compiling\ TunnelMonitorKit.swift,\ NEIPv4Route+Util.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelMonitorKit.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEIPv4Route+Util.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEIPv4Route+Util.swift:19:11: error: 'NEIPv4Route' is unavailable in watchOS
17 | private let routeRegex = try! NSRegularExpression(pattern: "^(?<address>\(ipPattern)):(?<subnet>\(ipPattern))$")
18 |
19 | extension NEIPv4Route {
| `- error: 'NEIPv4Route' is unavailable in watchOS
20 |
21 | /// Required to prevent invalid IP routes from being constructed, e.g. 0.0.0.0:0
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h:85:12: note: 'NEIPv4Route' has been explicitly marked unavailable here
83 | */
84 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
85 | @interface NEIPv4Route : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NEIPv4Route' has been explicitly marked unavailable here
86 |
87 | /*!
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelMonitorKit.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TunnelMonitorKit.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEIPv4Route+Util.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile NEIPv4Route+Util.swift
SwiftCompile normal arm64 Compiling\ TMPacketTunnelProviderNative.swift,\ TMTunnelProviderManager.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:72:26: error: cannot override 'startTunnel' which has been marked unavailable
70 | }
71 |
72 | override public func startTunnel(
| |- error: cannot override 'startTunnel' which has been marked unavailable
| `- note: remove 'override' modifier to declare a new 'startTunnel'
73 | options: [String: NSObject]? = nil,
74 | completionHandler: @escaping (Error?) -> Void
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h:44:1: note: 'startTunnel(options:completionHandler:)' has been explicitly marked unavailable here
42 | * @param completionHandler A block that must be called when the process of starting the tunnel is complete. If the tunnel cannot be established then the subclass' implementation of this method must pass a non-nil NSError object to this block. A value of nil passed to the completion handler indicates that the tunnel was successfully established.
43 | */
44 | - (void)startTunnelWithOptions:(nullable NSDictionary<NSString *,NSObject *> *)options completionHandler:(void (^)(NSError * __nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'startTunnel(options:completionHandler:)' has been explicitly marked unavailable here
45 |
46 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:93:50: error: 'NEProviderStopReason' is unavailable in watchOS
91 | }
92 |
93 | override public func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
| `- error: 'NEProviderStopReason' is unavailable in watchOS
94 | log(.info, "Stopping tunnel provider with reason: \(reason)")
95 | provider.stopTunnel(with: reason, completionHandler: completionHandler)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEProvider.h:25:28: note: 'NEProviderStopReason' has been explicitly marked unavailable here
23 | * @abstract Provider stop reasons
24 | */
25 | typedef NS_ENUM(NSInteger, NEProviderStopReason) {
| `- note: 'NEProviderStopReason' has been explicitly marked unavailable here
26 | /*! @const NEProviderStopReasonNone No specific reason. */
27 | NEProviderStopReasonNone = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:93:26: error: cannot override 'stopTunnel' which has been marked unavailable
91 | }
92 |
93 | override public func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
| |- error: cannot override 'stopTunnel' which has been marked unavailable
| `- note: remove 'override' modifier to declare a new 'stopTunnel'
94 | log(.info, "Stopping tunnel provider with reason: \(reason)")
95 | provider.stopTunnel(with: reason, completionHandler: completionHandler)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h:52:1: note: 'stopTunnel(with:completionHandler:)' has been explicitly marked unavailable here
50 | * @param completionHandler A block that must be called when the tunnel is completely torn down.
51 | */
52 | - (void)stopTunnelWithReason:(NEProviderStopReason)reason completionHandler:(void (^)(void))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'stopTunnel(with:completionHandler:)' has been explicitly marked unavailable here
53 |
54 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:98:26: error: cannot override 'handleAppMessage' which has been marked unavailable
96 | }
97 |
98 | override public func handleAppMessage(_ messageData: Data, completionHandler: ((Data?) -> Void)? = nil) {
| |- error: cannot override 'handleAppMessage' which has been marked unavailable
| `- note: remove 'override' modifier to declare a new 'handleAppMessage'
99 | provider.handleAppMessage(messageData, completionHandler: completionHandler)
100 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProvider.h:76:1: note: 'handleAppMessage(_:completionHandler:)' has been explicitly marked unavailable here
74 | * @param completionHandler A block that the method can execute to send a response to the container app. If this parameter is non-nil then the method implementation should always execute the block. If this parameter is nil then the method implementation should treat this as an indication that the container app is not expecting a response.
75 | */
76 | - (void)handleAppMessage:(NSData *)messageData completionHandler:(nullable void (^)(NSData * __nullable responseData))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'handleAppMessage(_:completionHandler:)' has been explicitly marked unavailable here
77 |
78 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:21:82: error: 'NEPacketTunnelProvider' is unavailable in watchOS
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- error: 'NEPacketTunnelProvider' is unavailable in watchOS
22 |
23 | let provider: TunnelProvider
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h:36:12: note: 'NEPacketTunnelProvider' has been explicitly marked unavailable here
34 | */
35 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
36 | @interface NEPacketTunnelProvider : NETunnelProvider
| `- note: 'NEPacketTunnelProvider' has been explicitly marked unavailable here
37 |
38 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:31:48: error: 'NETunnelProviderProtocol' is unavailable in watchOS
29 |
30 | private var configuration: [String: Any]? {
31 | return (self.protocolConfiguration as? NETunnelProviderProtocol)?.providerConfiguration
| `- error: 'NETunnelProviderProtocol' is unavailable in watchOS
32 | }
33 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderProtocol.h:28:12: note: 'NETunnelProviderProtocol' has been explicitly marked unavailable here
26 | */
27 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
28 | @interface NETunnelProviderProtocol : NEVPNProtocol
| `- note: 'NETunnelProviderProtocol' has been explicitly marked unavailable here
29 |
30 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:31:22: error: 'protocolConfiguration' is unavailable in watchOS
29 |
30 | private var configuration: [String: Any]? {
31 | return (self.protocolConfiguration as? NETunnelProviderProtocol)?.providerConfiguration
| `- error: 'protocolConfiguration' is unavailable in watchOS
32 | }
33 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProvider.h:90:37: note: 'protocolConfiguration' has been explicitly marked unavailable here
88 | * @discussion An NEVPNProtocol object containing the provider's current configuration. The value of this property may change during the lifetime of the tunnel provided by this NETunnelProvider, KVO can be used to detect when changes occur. For different protocol types, this property will contain the corresponding subclass. For NEVPNProtocolTypePlugin protocol type, this property will contain the NETunnelProviderProtocol subclass. For NEVPNProtocolTypeIKEv2 protocol type, this property will contain the NEVPNProtocolIKEv2 subclass.
89 | */
90 | @property (readonly) NEVPNProtocol *protocolConfiguration API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'protocolConfiguration' has been explicitly marked unavailable here
91 |
92 | /*!
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMPacketTunnelProviderNative.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMTunnelProviderManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:31:75: error: 'providerConfiguration' is unavailable in watchOS
29 |
30 | private var configuration: [String: Any]? {
31 | return (self.protocolConfiguration as? NETunnelProviderProtocol)?.providerConfiguration
| `- error: 'providerConfiguration' is unavailable in watchOS
32 | }
33 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderProtocol.h:34:57: note: 'providerConfiguration' has been explicitly marked unavailable here
32 | * @discussion A dictionary containing NETunnelProvider vendor-specific configuration parameters. This dictionary is passed as-is to NETunnelProviders when a tunnel is started.
33 | */
34 | @property (copy, nullable) NSDictionary<NSString *,id> *providerConfiguration API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'providerConfiguration' has been explicitly marked unavailable here
35 |
36 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:50:13: error: 'setTunnelNetworkSettings(_:completionHandler:)' is unavailable in watchOS
48 | let settings = networkSettings.packetTunnelNetworkSettings
49 |
50 | setTunnelNetworkSettings(settings) { error in
| `- error: 'setTunnelNetworkSettings(_:completionHandler:)' is unavailable in watchOS
51 | if let error = error {
52 | completionHandler(.configurationDecodingFailed(decodeError: error))
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProvider.h:84:1: note: 'setTunnelNetworkSettings(_:completionHandler:)' has been explicitly marked unavailable here
82 | * @param completionHandler A block that will be called by the framework when the process of setting or clearing the network settings is complete. If an error occurred during the process of setting or clearing the IP network settings then a non-nill NSError object will be passed to this block containing error details.
83 | */
84 | - (void)setTunnelNetworkSettings:(nullable NETunnelNetworkSettings *)tunnelNetworkSettings completionHandler:(nullable void (^)( NSError * __nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'setTunnelNetworkSettings(_:completionHandler:)' has been explicitly marked unavailable here
85 |
86 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:57:52: error: 'setTunnelNetworkSettings(_:completionHandler:)' is unavailable in watchOS
55 | self.provider.configureTunnel(
56 | userConfigurationData: userConfigData,
57 | settingsApplicationBlock: self.setTunnelNetworkSettings
| `- error: 'setTunnelNetworkSettings(_:completionHandler:)' is unavailable in watchOS
58 | ) { error in
59 | if let error = error {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProvider.h:84:1: note: 'setTunnelNetworkSettings(_:completionHandler:)' has been explicitly marked unavailable here
82 | * @param completionHandler A block that will be called by the framework when the process of setting or clearing the network settings is complete. If an error occurred during the process of setting or clearing the IP network settings then a non-nill NSError object will be passed to this block containing error details.
83 | */
84 | - (void)setTunnelNetworkSettings:(nullable NETunnelNetworkSettings *)tunnelNetworkSettings completionHandler:(nullable void (^)( NSError * __nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'setTunnelNetworkSettings(_:completionHandler:)' has been explicitly marked unavailable here
85 |
86 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:16:39: error: 'NEVPNStatus' is unavailable in watchOS
14 |
15 | /// Invoked whenever the tunnel provider state changes.
16 | func tunnelStateChanged(to state: NEVPNStatus)
| `- error: 'NEVPNStatus' is unavailable in watchOS
17 |
18 | /// Invoked every time the service state changes. This contains information specific to the service provided by the
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:45:30: error: 'NEVPNStatus' is unavailable in watchOS
43 |
44 | /// Current status of the network extension
45 | public var tunnelStatus: NEVPNStatus { fatalError("Must override") }
| `- error: 'NEVPNStatus' is unavailable in watchOS
46 |
47 | /// Sends a message request to the tunnel provider.
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:112:38: error: 'NEVPNStatus' is unavailable in watchOS
110 | private let userConfigurationData: Data?
111 |
112 | private var currentTunnelStatus: NEVPNStatus = .invalid {
| `- error: 'NEVPNStatus' is unavailable in watchOS
113 | didSet {
114 | mockSession.setStatus(currentTunnelStatus)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
SwiftEmitModule normal arm64 Emitting\ module\ for\ TunnelMonitorKit (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:16:34: error: 'NETunnelProviderManager' is unavailable in watchOS
14 |
15 | private let monitor = TunnelMonitor()
16 | private let providerManager: NETunnelProviderManager
| `- error: 'NETunnelProviderManager' is unavailable in watchOS
17 |
18 | private var pollingInterval = 1.0
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderManager.h:31:12: note: 'NETunnelProviderManager' has been explicitly marked unavailable here
29 | */
30 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
31 | @interface NETunnelProviderManager : NEVPNManager
| `- note: 'NETunnelProviderManager' has been explicitly marked unavailable here
32 |
33 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:20:39: error: 'NEVPNStatus' is unavailable in watchOS
18 | private var pollingInterval = 1.0
19 |
20 | override public var tunnelStatus: NEVPNStatus { session?.status ?? .invalid }
| `- error: 'NEVPNStatus' is unavailable in watchOS
21 | override public var tunnelMonitor: TunnelMonitor { monitor }
22 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:24:20: error: 'NETunnelProviderManager' is unavailable in watchOS
22 |
23 | /// Initialise VPNManager, which also saves/updates a tunnel configuration to the phone's VPN settings
24 | init(provider: NETunnelProviderManager) {
| `- error: 'NETunnelProviderManager' is unavailable in watchOS
25 | providerManager = provider
26 | super.init()
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderManager.h:31:12: note: 'NETunnelProviderManager' has been explicitly marked unavailable here
29 | */
30 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
31 | @interface NETunnelProviderManager : NEVPNManager
| `- note: 'NETunnelProviderManager' has been explicitly marked unavailable here
32 |
33 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift:51:46: error: 'NETunnelNetworkSettings' is unavailable in watchOS
49 | func configureTunnel(
50 | userConfigurationData: Data?,
51 | settingsApplicationBlock: @escaping (NETunnelNetworkSettings?, ((Error?) -> Void)?) -> Void,
| `- error: 'NETunnelNetworkSettings' is unavailable in watchOS
52 | completionHandler: @escaping (TMTunnelConfigurationError?) -> Void
53 | )
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelNetworkSettings.h:27:12: note: 'NETunnelNetworkSettings' has been explicitly marked unavailable here
25 | */
26 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
27 | @interface NETunnelNetworkSettings : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NETunnelNetworkSettings' has been explicitly marked unavailable here
28 |
29 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift:69:34: error: 'NEProviderStopReason' is unavailable in watchOS
67 | /// - reason: The reason for stopping the tunnel
68 | /// - completionHandler: Completion handler used to signal that the tunne lhas been stopped.
69 | func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void)
| `- error: 'NEProviderStopReason' is unavailable in watchOS
70 |
71 | /// This method is invoked whenever the tunnel receives a message from the host application. This communication
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEProvider.h:25:28: note: 'NEProviderStopReason' has been explicitly marked unavailable here
23 | * @abstract Provider stop reasons
24 | */
25 | typedef NS_ENUM(NSInteger, NEProviderStopReason) {
| `- note: 'NEProviderStopReason' has been explicitly marked unavailable here
26 | /*! @const NEProviderStopReasonNone No specific reason. */
27 | NEProviderStopReasonNone = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:72:26: error: cannot override 'startTunnel' which has been marked unavailable
70 | }
71 |
72 | override public func startTunnel(
| |- error: cannot override 'startTunnel' which has been marked unavailable
| `- note: remove 'override' modifier to declare a new 'startTunnel'
73 | options: [String: NSObject]? = nil,
74 | completionHandler: @escaping (Error?) -> Void
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h:44:1: note: 'startTunnel(options:completionHandler:)' has been explicitly marked unavailable here
42 | * @param completionHandler A block that must be called when the process of starting the tunnel is complete. If the tunnel cannot be established then the subclass' implementation of this method must pass a non-nil NSError object to this block. A value of nil passed to the completion handler indicates that the tunnel was successfully established.
43 | */
44 | - (void)startTunnelWithOptions:(nullable NSDictionary<NSString *,NSObject *> *)options completionHandler:(void (^)(NSError * __nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'startTunnel(options:completionHandler:)' has been explicitly marked unavailable here
45 |
46 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:93:50: error: 'NEProviderStopReason' is unavailable in watchOS
91 | }
92 |
93 | override public func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
| `- error: 'NEProviderStopReason' is unavailable in watchOS
94 | log(.info, "Stopping tunnel provider with reason: \(reason)")
95 | provider.stopTunnel(with: reason, completionHandler: completionHandler)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEProvider.h:25:28: note: 'NEProviderStopReason' has been explicitly marked unavailable here
23 | * @abstract Provider stop reasons
24 | */
25 | typedef NS_ENUM(NSInteger, NEProviderStopReason) {
| `- note: 'NEProviderStopReason' has been explicitly marked unavailable here
26 | /*! @const NEProviderStopReasonNone No specific reason. */
27 | NEProviderStopReasonNone = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:93:26: error: cannot override 'stopTunnel' which has been marked unavailable
91 | }
92 |
93 | override public func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
| |- error: cannot override 'stopTunnel' which has been marked unavailable
| `- note: remove 'override' modifier to declare a new 'stopTunnel'
94 | log(.info, "Stopping tunnel provider with reason: \(reason)")
95 | provider.stopTunnel(with: reason, completionHandler: completionHandler)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h:52:1: note: 'stopTunnel(with:completionHandler:)' has been explicitly marked unavailable here
50 | * @param completionHandler A block that must be called when the tunnel is completely torn down.
51 | */
52 | - (void)stopTunnelWithReason:(NEProviderStopReason)reason completionHandler:(void (^)(void))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'stopTunnel(with:completionHandler:)' has been explicitly marked unavailable here
53 |
54 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:98:26: error: cannot override 'handleAppMessage' which has been marked unavailable
96 | }
97 |
98 | override public func handleAppMessage(_ messageData: Data, completionHandler: ((Data?) -> Void)? = nil) {
| |- error: cannot override 'handleAppMessage' which has been marked unavailable
| `- note: remove 'override' modifier to declare a new 'handleAppMessage'
99 | provider.handleAppMessage(messageData, completionHandler: completionHandler)
100 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProvider.h:76:1: note: 'handleAppMessage(_:completionHandler:)' has been explicitly marked unavailable here
74 | * @param completionHandler A block that the method can execute to send a response to the container app. If this parameter is non-nil then the method implementation should always execute the block. If this parameter is nil then the method implementation should treat this as an indication that the container app is not expecting a response.
75 | */
76 | - (void)handleAppMessage:(NSData *)messageData completionHandler:(nullable void (^)(NSData * __nullable responseData))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'handleAppMessage(_:completionHandler:)' has been explicitly marked unavailable here
77 |
78 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:21:82: error: 'NEPacketTunnelProvider' is unavailable in watchOS
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- error: 'NEPacketTunnelProvider' is unavailable in watchOS
22 |
23 | let provider: TunnelProvider
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h:36:12: note: 'NEPacketTunnelProvider' has been explicitly marked unavailable here
34 | */
35 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
36 | @interface NEPacketTunnelProvider : NETunnelProvider
| `- note: 'NEPacketTunnelProvider' has been explicitly marked unavailable here
37 |
38 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:16:39: error: 'NEVPNStatus' is unavailable in watchOS
14 |
15 | /// Invoked whenever the tunnel provider state changes.
16 | func tunnelStateChanged(to state: NEVPNStatus)
| `- error: 'NEVPNStatus' is unavailable in watchOS
17 |
18 | /// Invoked every time the service state changes. This contains information specific to the service provided by the
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:45:30: error: 'NEVPNStatus' is unavailable in watchOS
43 |
44 | /// Current status of the network extension
45 | public var tunnelStatus: NEVPNStatus { fatalError("Must override") }
| `- error: 'NEVPNStatus' is unavailable in watchOS
46 |
47 | /// Sends a message request to the tunnel provider.
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:112:38: error: 'NEVPNStatus' is unavailable in watchOS
110 | private let userConfigurationData: Data?
111 |
112 | private var currentTunnelStatus: NEVPNStatus = .invalid {
| `- error: 'NEVPNStatus' is unavailable in watchOS
113 | didSet {
114 | mockSession.setStatus(currentTunnelStatus)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:138:39: error: 'NEVPNStatus' is unavailable in watchOS
136 |
137 | override var session: TMTunnelProviderSession? { mockSession }
138 | override public var tunnelStatus: NEVPNStatus { currentTunnelStatus }
| `- error: 'NEVPNStatus' is unavailable in watchOS
139 | override public var tunnelMonitor: TunnelMonitor { monitor }
140 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:29:17: error: 'NEVPNStatus' is unavailable in watchOS
27 |
28 | /// Returns the current session status.
29 | var status: NEVPNStatus { return .invalid }
| `- error: 'NEVPNStatus' is unavailable in watchOS
30 |
31 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:36:32: error: 'NETunnelProviderSession' is unavailable in watchOS
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
35 |
36 | private let nativeSession: NETunnelProviderSession
| `- error: 'NETunnelProviderSession' is unavailable in watchOS
37 |
38 | public init(nativeSession: NETunnelProviderSession) {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:22:12: note: 'NETunnelProviderSession' has been explicitly marked unavailable here
20 |
21 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
22 | @interface NETunnelProviderSession : NEVPNConnection
| `- note: 'NETunnelProviderSession' has been explicitly marked unavailable here
23 |
24 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:38:32: error: 'NETunnelProviderSession' is unavailable in watchOS
36 | private let nativeSession: NETunnelProviderSession
37 |
38 | public init(nativeSession: NETunnelProviderSession) {
| `- error: 'NETunnelProviderSession' is unavailable in watchOS
39 | self.nativeSession = nativeSession
40 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:22:12: note: 'NETunnelProviderSession' has been explicitly marked unavailable here
20 |
21 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
22 | @interface NETunnelProviderSession : NEVPNConnection
| `- note: 'NETunnelProviderSession' has been explicitly marked unavailable here
23 |
24 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:42:33: error: 'NEVPNStatus' is unavailable in watchOS
40 | }
41 |
42 | override public var status: NEVPNStatus {
| `- error: 'NEVPNStatus' is unavailable in watchOS
43 | return nativeSession.status
44 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:63:32: error: 'NEVPNStatus' is unavailable in watchOS
61 |
62 | public let mockMessageRouter = MessageRouter()
63 | private var currentStatus: NEVPNStatus = .invalid
| `- error: 'NEVPNStatus' is unavailable in watchOS
64 | private var provider: TMPacketTunnelProvider?
65 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:70:37: error: 'NEVPNStatus' is unavailable in watchOS
68 | }
69 |
70 | public func setStatus(_ status: NEVPNStatus) {
| `- error: 'NEVPNStatus' is unavailable in watchOS
71 | currentStatus = status
72 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:74:33: error: 'NEVPNStatus' is unavailable in watchOS
72 | }
73 |
74 | override public var status: NEVPNStatus {
| `- error: 'NEVPNStatus' is unavailable in watchOS
75 | return currentStatus
76 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/TMCommunicationError.swift:15:23: error: 'NEVPNStatus' is unavailable in watchOS
13 |
14 | /// The extension is not in a state in which it can be communicated with
15 | case invalidState(NEVPNStatus)
| `- error: 'NEVPNStatus' is unavailable in watchOS
16 |
17 | /// The manager connection instance could not be cast to a NETunnelProviderSession or is nil
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:63:45: error: 'NEPacketTunnelNetworkSettings' is unavailable in watchOS
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- error: 'NEPacketTunnelNetworkSettings' is unavailable in watchOS
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelNetworkSettings.h:45:12: note: 'NEPacketTunnelNetworkSettings' has been explicitly marked unavailable here
43 | */
44 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
45 | @interface NEPacketTunnelNetworkSettings : NETunnelNetworkSettings
| `- note: 'NEPacketTunnelNetworkSettings' has been explicitly marked unavailable here
46 |
47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:81:57: error: 'NEIPv4Route' is unavailable in watchOS
79 | }
80 |
81 | private static func parseRoutes(string: String) -> [NEIPv4Route] {
| `- error: 'NEIPv4Route' is unavailable in watchOS
82 | return string.split(separator: ",")
83 | .map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h:85:12: note: 'NEIPv4Route' has been explicitly marked unavailable here
83 | */
84 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
85 | @interface NEIPv4Route : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NEIPv4Route' has been explicitly marked unavailable here
86 |
87 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEIPv4Route+Util.swift:19:11: error: 'NEIPv4Route' is unavailable in watchOS
17 | private let routeRegex = try! NSRegularExpression(pattern: "^(?<address>\(ipPattern)):(?<subnet>\(ipPattern))$")
18 |
19 | extension NEIPv4Route {
| `- error: 'NEIPv4Route' is unavailable in watchOS
20 |
21 | /// Required to prevent invalid IP routes from being constructed, e.g. 0.0.0.0:0
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h:85:12: note: 'NEIPv4Route' has been explicitly marked unavailable here
83 | */
84 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
85 | @interface NEIPv4Route : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NEIPv4Route' has been explicitly marked unavailable here
86 |
87 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEProviderStopReason+StringConvertible.swift:11:1: warning: extension declares a conformance of imported type 'NEProviderStopReason' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
9 | import NetworkExtension
10 |
11 | extension NEProviderStopReason: CustomStringConvertible {
| |- warning: extension declares a conformance of imported type 'NEProviderStopReason' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
12 |
13 | /// A textual representation of this instance.
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEProviderStopReason+StringConvertible.swift:11:11: error: 'NEProviderStopReason' is unavailable in watchOS
9 | import NetworkExtension
10 |
11 | extension NEProviderStopReason: CustomStringConvertible {
| `- error: 'NEProviderStopReason' is unavailable in watchOS
12 |
13 | /// A textual representation of this instance.
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEProvider.h:25:28: note: 'NEProviderStopReason' has been explicitly marked unavailable here
23 | * @abstract Provider stop reasons
24 | */
25 | typedef NS_ENUM(NSInteger, NEProviderStopReason) {
| `- note: 'NEProviderStopReason' has been explicitly marked unavailable here
26 | /*! @const NEProviderStopReasonNone No specific reason. */
27 | NEProviderStopReasonNone = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift:11:1: warning: extension declares a conformance of imported type 'NEVPNStatus' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
9 | import NetworkExtension
10 |
11 | extension NEVPNStatus: CustomStringConvertible {
| |- warning: extension declares a conformance of imported type 'NEVPNStatus' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
12 |
13 | /// A textual representation of this instance
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift:11:11: error: 'NEVPNStatus' is unavailable in watchOS
9 | import NetworkExtension
10 |
11 | extension NEVPNStatus: CustomStringConvertible {
| `- error: 'NEVPNStatus' is unavailable in watchOS
12 |
13 | /// A textual representation of this instance
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift:28:1: warning: extension declares a conformance of imported type 'NEVPNStatus' to imported protocol 'CaseIterable'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
26 | }
27 |
28 | extension NEVPNStatus: CaseIterable {
| |- warning: extension declares a conformance of imported type 'NEVPNStatus' to imported protocol 'CaseIterable'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
29 | public static var allCases: [NEVPNStatus] {
30 | return [.invalid, .disconnected, .disconnecting, .connecting, .connected, .reasserting]
SwiftCompile normal arm64 (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
SwiftEmitModule normal arm64_32 Emitting\ module\ for\ TunnelMonitorKit (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:16:34: error: 'NETunnelProviderManager' is unavailable in watchOS
14 |
15 | private let monitor = TunnelMonitor()
16 | private let providerManager: NETunnelProviderManager
| `- error: 'NETunnelProviderManager' is unavailable in watchOS
17 |
18 | private var pollingInterval = 1.0
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderManager.h:31:12: note: 'NETunnelProviderManager' has been explicitly marked unavailable here
29 | */
30 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
31 | @interface NETunnelProviderManager : NEVPNManager
| `- note: 'NETunnelProviderManager' has been explicitly marked unavailable here
32 |
33 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:20:39: error: 'NEVPNStatus' is unavailable in watchOS
18 | private var pollingInterval = 1.0
19 |
20 | override public var tunnelStatus: NEVPNStatus { session?.status ?? .invalid }
| `- error: 'NEVPNStatus' is unavailable in watchOS
21 | override public var tunnelMonitor: TunnelMonitor { monitor }
22 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:24:20: error: 'NETunnelProviderManager' is unavailable in watchOS
22 |
23 | /// Initialise VPNManager, which also saves/updates a tunnel configuration to the phone's VPN settings
24 | init(provider: NETunnelProviderManager) {
| `- error: 'NETunnelProviderManager' is unavailable in watchOS
25 | providerManager = provider
26 | super.init()
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderManager.h:31:12: note: 'NETunnelProviderManager' has been explicitly marked unavailable here
29 | */
30 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
31 | @interface NETunnelProviderManager : NEVPNManager
| `- note: 'NETunnelProviderManager' has been explicitly marked unavailable here
32 |
33 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift:51:46: error: 'NETunnelNetworkSettings' is unavailable in watchOS
49 | func configureTunnel(
50 | userConfigurationData: Data?,
51 | settingsApplicationBlock: @escaping (NETunnelNetworkSettings?, ((Error?) -> Void)?) -> Void,
| `- error: 'NETunnelNetworkSettings' is unavailable in watchOS
52 | completionHandler: @escaping (TMTunnelConfigurationError?) -> Void
53 | )
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelNetworkSettings.h:27:12: note: 'NETunnelNetworkSettings' has been explicitly marked unavailable here
25 | */
26 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
27 | @interface NETunnelNetworkSettings : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NETunnelNetworkSettings' has been explicitly marked unavailable here
28 |
29 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift:69:34: error: 'NEProviderStopReason' is unavailable in watchOS
67 | /// - reason: The reason for stopping the tunnel
68 | /// - completionHandler: Completion handler used to signal that the tunne lhas been stopped.
69 | func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void)
| `- error: 'NEProviderStopReason' is unavailable in watchOS
70 |
71 | /// This method is invoked whenever the tunnel receives a message from the host application. This communication
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEProvider.h:25:28: note: 'NEProviderStopReason' has been explicitly marked unavailable here
23 | * @abstract Provider stop reasons
24 | */
25 | typedef NS_ENUM(NSInteger, NEProviderStopReason) {
| `- note: 'NEProviderStopReason' has been explicitly marked unavailable here
26 | /*! @const NEProviderStopReasonNone No specific reason. */
27 | NEProviderStopReasonNone = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:72:26: error: cannot override 'startTunnel' which has been marked unavailable
70 | }
71 |
72 | override public func startTunnel(
| |- error: cannot override 'startTunnel' which has been marked unavailable
| `- note: remove 'override' modifier to declare a new 'startTunnel'
73 | options: [String: NSObject]? = nil,
74 | completionHandler: @escaping (Error?) -> Void
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h:44:1: note: 'startTunnel(options:completionHandler:)' has been explicitly marked unavailable here
42 | * @param completionHandler A block that must be called when the process of starting the tunnel is complete. If the tunnel cannot be established then the subclass' implementation of this method must pass a non-nil NSError object to this block. A value of nil passed to the completion handler indicates that the tunnel was successfully established.
43 | */
44 | - (void)startTunnelWithOptions:(nullable NSDictionary<NSString *,NSObject *> *)options completionHandler:(void (^)(NSError * __nullable error))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'startTunnel(options:completionHandler:)' has been explicitly marked unavailable here
45 |
46 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:93:50: error: 'NEProviderStopReason' is unavailable in watchOS
91 | }
92 |
93 | override public func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
| `- error: 'NEProviderStopReason' is unavailable in watchOS
94 | log(.info, "Stopping tunnel provider with reason: \(reason)")
95 | provider.stopTunnel(with: reason, completionHandler: completionHandler)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEProvider.h:25:28: note: 'NEProviderStopReason' has been explicitly marked unavailable here
23 | * @abstract Provider stop reasons
24 | */
25 | typedef NS_ENUM(NSInteger, NEProviderStopReason) {
| `- note: 'NEProviderStopReason' has been explicitly marked unavailable here
26 | /*! @const NEProviderStopReasonNone No specific reason. */
27 | NEProviderStopReasonNone = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:93:26: error: cannot override 'stopTunnel' which has been marked unavailable
91 | }
92 |
93 | override public func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
| |- error: cannot override 'stopTunnel' which has been marked unavailable
| `- note: remove 'override' modifier to declare a new 'stopTunnel'
94 | log(.info, "Stopping tunnel provider with reason: \(reason)")
95 | provider.stopTunnel(with: reason, completionHandler: completionHandler)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h:52:1: note: 'stopTunnel(with:completionHandler:)' has been explicitly marked unavailable here
50 | * @param completionHandler A block that must be called when the tunnel is completely torn down.
51 | */
52 | - (void)stopTunnelWithReason:(NEProviderStopReason)reason completionHandler:(void (^)(void))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'stopTunnel(with:completionHandler:)' has been explicitly marked unavailable here
53 |
54 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:98:26: error: cannot override 'handleAppMessage' which has been marked unavailable
96 | }
97 |
98 | override public func handleAppMessage(_ messageData: Data, completionHandler: ((Data?) -> Void)? = nil) {
| |- error: cannot override 'handleAppMessage' which has been marked unavailable
| `- note: remove 'override' modifier to declare a new 'handleAppMessage'
99 | provider.handleAppMessage(messageData, completionHandler: completionHandler)
100 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProvider.h:76:1: note: 'handleAppMessage(_:completionHandler:)' has been explicitly marked unavailable here
74 | * @param completionHandler A block that the method can execute to send a response to the container app. If this parameter is non-nil then the method implementation should always execute the block. If this parameter is nil then the method implementation should treat this as an indication that the container app is not expecting a response.
75 | */
76 | - (void)handleAppMessage:(NSData *)messageData completionHandler:(nullable void (^)(NSData * __nullable responseData))completionHandler API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'handleAppMessage(_:completionHandler:)' has been explicitly marked unavailable here
77 |
78 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:21:82: error: 'NEPacketTunnelProvider' is unavailable in watchOS
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- error: 'NEPacketTunnelProvider' is unavailable in watchOS
22 |
23 | let provider: TunnelProvider
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelProvider.h:36:12: note: 'NEPacketTunnelProvider' has been explicitly marked unavailable here
34 | */
35 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
36 | @interface NEPacketTunnelProvider : NETunnelProvider
| `- note: 'NEPacketTunnelProvider' has been explicitly marked unavailable here
37 |
38 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:16:39: error: 'NEVPNStatus' is unavailable in watchOS
14 |
15 | /// Invoked whenever the tunnel provider state changes.
16 | func tunnelStateChanged(to state: NEVPNStatus)
| `- error: 'NEVPNStatus' is unavailable in watchOS
17 |
18 | /// Invoked every time the service state changes. This contains information specific to the service provided by the
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:45:30: error: 'NEVPNStatus' is unavailable in watchOS
43 |
44 | /// Current status of the network extension
45 | public var tunnelStatus: NEVPNStatus { fatalError("Must override") }
| `- error: 'NEVPNStatus' is unavailable in watchOS
46 |
47 | /// Sends a message request to the tunnel provider.
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:112:38: error: 'NEVPNStatus' is unavailable in watchOS
110 | private let userConfigurationData: Data?
111 |
112 | private var currentTunnelStatus: NEVPNStatus = .invalid {
| `- error: 'NEVPNStatus' is unavailable in watchOS
113 | didSet {
114 | mockSession.setStatus(currentTunnelStatus)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:138:39: error: 'NEVPNStatus' is unavailable in watchOS
136 |
137 | override var session: TMTunnelProviderSession? { mockSession }
138 | override public var tunnelStatus: NEVPNStatus { currentTunnelStatus }
| `- error: 'NEVPNStatus' is unavailable in watchOS
139 | override public var tunnelMonitor: TunnelMonitor { monitor }
140 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:29:17: error: 'NEVPNStatus' is unavailable in watchOS
27 |
28 | /// Returns the current session status.
29 | var status: NEVPNStatus { return .invalid }
| `- error: 'NEVPNStatus' is unavailable in watchOS
30 |
31 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:36:32: error: 'NETunnelProviderSession' is unavailable in watchOS
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
35 |
36 | private let nativeSession: NETunnelProviderSession
| `- error: 'NETunnelProviderSession' is unavailable in watchOS
37 |
38 | public init(nativeSession: NETunnelProviderSession) {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:22:12: note: 'NETunnelProviderSession' has been explicitly marked unavailable here
20 |
21 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
22 | @interface NETunnelProviderSession : NEVPNConnection
| `- note: 'NETunnelProviderSession' has been explicitly marked unavailable here
23 |
24 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:38:32: error: 'NETunnelProviderSession' is unavailable in watchOS
36 | private let nativeSession: NETunnelProviderSession
37 |
38 | public init(nativeSession: NETunnelProviderSession) {
| `- error: 'NETunnelProviderSession' is unavailable in watchOS
39 | self.nativeSession = nativeSession
40 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:22:12: note: 'NETunnelProviderSession' has been explicitly marked unavailable here
20 |
21 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
22 | @interface NETunnelProviderSession : NEVPNConnection
| `- note: 'NETunnelProviderSession' has been explicitly marked unavailable here
23 |
24 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:42:33: error: 'NEVPNStatus' is unavailable in watchOS
40 | }
41 |
42 | override public var status: NEVPNStatus {
| `- error: 'NEVPNStatus' is unavailable in watchOS
43 | return nativeSession.status
44 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:63:32: error: 'NEVPNStatus' is unavailable in watchOS
61 |
62 | public let mockMessageRouter = MessageRouter()
63 | private var currentStatus: NEVPNStatus = .invalid
| `- error: 'NEVPNStatus' is unavailable in watchOS
64 | private var provider: TMPacketTunnelProvider?
65 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:70:37: error: 'NEVPNStatus' is unavailable in watchOS
68 | }
69 |
70 | public func setStatus(_ status: NEVPNStatus) {
| `- error: 'NEVPNStatus' is unavailable in watchOS
71 | currentStatus = status
72 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:74:33: error: 'NEVPNStatus' is unavailable in watchOS
72 | }
73 |
74 | override public var status: NEVPNStatus {
| `- error: 'NEVPNStatus' is unavailable in watchOS
75 | return currentStatus
76 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/TMCommunicationError.swift:15:23: error: 'NEVPNStatus' is unavailable in watchOS
13 |
14 | /// The extension is not in a state in which it can be communicated with
15 | case invalidState(NEVPNStatus)
| `- error: 'NEVPNStatus' is unavailable in watchOS
16 |
17 | /// The manager connection instance could not be cast to a NETunnelProviderSession or is nil
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:63:45: error: 'NEPacketTunnelNetworkSettings' is unavailable in watchOS
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- error: 'NEPacketTunnelNetworkSettings' is unavailable in watchOS
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEPacketTunnelNetworkSettings.h:45:12: note: 'NEPacketTunnelNetworkSettings' has been explicitly marked unavailable here
43 | */
44 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
45 | @interface NEPacketTunnelNetworkSettings : NETunnelNetworkSettings
| `- note: 'NEPacketTunnelNetworkSettings' has been explicitly marked unavailable here
46 |
47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:81:57: error: 'NEIPv4Route' is unavailable in watchOS
79 | }
80 |
81 | private static func parseRoutes(string: String) -> [NEIPv4Route] {
| `- error: 'NEIPv4Route' is unavailable in watchOS
82 | return string.split(separator: ",")
83 | .map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h:85:12: note: 'NEIPv4Route' has been explicitly marked unavailable here
83 | */
84 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
85 | @interface NEIPv4Route : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NEIPv4Route' has been explicitly marked unavailable here
86 |
87 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEIPv4Route+Util.swift:19:11: error: 'NEIPv4Route' is unavailable in watchOS
17 | private let routeRegex = try! NSRegularExpression(pattern: "^(?<address>\(ipPattern)):(?<subnet>\(ipPattern))$")
18 |
19 | extension NEIPv4Route {
| `- error: 'NEIPv4Route' is unavailable in watchOS
20 |
21 | /// Required to prevent invalid IP routes from being constructed, e.g. 0.0.0.0:0
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEIPv4Settings.h:85:12: note: 'NEIPv4Route' has been explicitly marked unavailable here
83 | */
84 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
85 | @interface NEIPv4Route : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NEIPv4Route' has been explicitly marked unavailable here
86 |
87 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEProviderStopReason+StringConvertible.swift:11:1: warning: extension declares a conformance of imported type 'NEProviderStopReason' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
9 | import NetworkExtension
10 |
11 | extension NEProviderStopReason: CustomStringConvertible {
| |- warning: extension declares a conformance of imported type 'NEProviderStopReason' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
12 |
13 | /// A textual representation of this instance.
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEProviderStopReason+StringConvertible.swift:11:11: error: 'NEProviderStopReason' is unavailable in watchOS
9 | import NetworkExtension
10 |
11 | extension NEProviderStopReason: CustomStringConvertible {
| `- error: 'NEProviderStopReason' is unavailable in watchOS
12 |
13 | /// A textual representation of this instance.
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEProvider.h:25:28: note: 'NEProviderStopReason' has been explicitly marked unavailable here
23 | * @abstract Provider stop reasons
24 | */
25 | typedef NS_ENUM(NSInteger, NEProviderStopReason) {
| `- note: 'NEProviderStopReason' has been explicitly marked unavailable here
26 | /*! @const NEProviderStopReasonNone No specific reason. */
27 | NEProviderStopReasonNone = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift:11:1: warning: extension declares a conformance of imported type 'NEVPNStatus' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
9 | import NetworkExtension
10 |
11 | extension NEVPNStatus: CustomStringConvertible {
| |- warning: extension declares a conformance of imported type 'NEVPNStatus' to imported protocol 'CustomStringConvertible'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
12 |
13 | /// A textual representation of this instance
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift:11:11: error: 'NEVPNStatus' is unavailable in watchOS
9 | import NetworkExtension
10 |
11 | extension NEVPNStatus: CustomStringConvertible {
| `- error: 'NEVPNStatus' is unavailable in watchOS
12 |
13 | /// A textual representation of this instance
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift:28:1: warning: extension declares a conformance of imported type 'NEVPNStatus' to imported protocol 'CaseIterable'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
26 | }
27 |
28 | extension NEVPNStatus: CaseIterable {
| |- warning: extension declares a conformance of imported type 'NEVPNStatus' to imported protocol 'CaseIterable'; this will not behave correctly if the owners of 'NetworkExtension' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
29 | public static var allCases: [NEVPNStatus] {
30 | return [.invalid, .disconnected, .disconnecting, .connecting, .connected, .reasserting]
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift:29:34: error: 'NEVPNStatus' is unavailable in watchOS
27 |
28 | extension NEVPNStatus: CaseIterable {
29 | public static var allCases: [NEVPNStatus] {
| `- error: 'NEVPNStatus' is unavailable in watchOS
30 | return [.invalid, .disconnected, .disconnecting, .connecting, .connected, .reasserting]
31 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift:28:11: error: 'NEVPNStatus' is unavailable in watchOS
26 | }
27 |
28 | extension NEVPNStatus: CaseIterable {
| `- error: 'NEVPNStatus' is unavailable in watchOS
29 | public static var allCases: [NEVPNStatus] {
30 | return [.invalid, .disconnected, .disconnecting, .connecting, .connected, .reasserting]
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMLogger.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMOSLogger.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/MessageContainer.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/MessageRouter.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/TMCommunicationError.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/TunnelMonitor.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/TunnelConfigurationError.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelMonitorKit.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEIPv4Route+Util.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEProviderStopReason+StringConvertible.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NSTextCheckingResult+Util.swift -target arm64_32-apple-watchos9.0 -disable-cross-import-overlay-search -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit-dependencies-1.json -enable-objc-interop -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -no-color-diagnostics -Xcc -fno-color-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -profile-generate -profile-coverage-mapping -swift-version 5 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/watchos27.0-24R360-e829b21a6f8c9b70876ba0858053c04477534ef55a1706bf4c1112bbb242f0a2.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/DerivedSources-normal/arm64_32 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/DerivedSources/arm64_32 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name TunnelMonitorKit -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit_const_extract_protocols.json -disable-clang-spi -clang-target arm64_32-apple-watchos27.0 -target-sdk-version 27.0 -target-sdk-name watchos27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -emit-module-doc-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-watchos/TunnelMonitorKit-t.build/Objects-normal/arm64_32/TunnelMonitorKit.abi.json
SwiftCompile normal arm64_32 (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
SwiftCompile normal arm64_32 Compiling\ TMLogger.swift,\ TMOSLogger.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMLogger.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMOSLogger.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMLogger.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMLogger.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Logging/TMOSLogger.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMOSLogger.swift
SwiftCompile normal arm64_32 Compiling\ TMNativeTunnelProviderManager.swift,\ TMPacketTunnelProvider.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:16:34: error: 'NETunnelProviderManager' is unavailable in watchOS
14 |
15 | private let monitor = TunnelMonitor()
16 | private let providerManager: NETunnelProviderManager
| `- error: 'NETunnelProviderManager' is unavailable in watchOS
17 |
18 | private var pollingInterval = 1.0
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderManager.h:31:12: note: 'NETunnelProviderManager' has been explicitly marked unavailable here
29 | */
30 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
31 | @interface NETunnelProviderManager : NEVPNManager
| `- note: 'NETunnelProviderManager' has been explicitly marked unavailable here
32 |
33 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:20:39: error: 'NEVPNStatus' is unavailable in watchOS
18 | private var pollingInterval = 1.0
19 |
20 | override public var tunnelStatus: NEVPNStatus { session?.status ?? .invalid }
| `- error: 'NEVPNStatus' is unavailable in watchOS
21 | override public var tunnelMonitor: TunnelMonitor { monitor }
22 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:22:28: note: 'NEVPNStatus' has been explicitly marked unavailable here
20 | * @abstract VPN status codes
21 | */
22 | typedef NS_ENUM(NSInteger, NEVPNStatus) {
| `- note: 'NEVPNStatus' has been explicitly marked unavailable here
23 | /*! @const NEVPNStatusInvalid The VPN is not configured. */
24 | NEVPNStatusInvalid = 0,
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:24:20: error: 'NETunnelProviderManager' is unavailable in watchOS
22 |
23 | /// Initialise VPNManager, which also saves/updates a tunnel configuration to the phone's VPN settings
24 | init(provider: NETunnelProviderManager) {
| `- error: 'NETunnelProviderManager' is unavailable in watchOS
25 | providerManager = provider
26 | super.init()
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderManager.h:31:12: note: 'NETunnelProviderManager' has been explicitly marked unavailable here
29 | */
30 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
31 | @interface NETunnelProviderManager : NEVPNManager
| `- note: 'NETunnelProviderManager' has been explicitly marked unavailable here
32 |
33 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:31:37: error: 'NEVPNStatusDidChange' is unavailable in watchOS
29 | self,
30 | selector: #selector(handleVPNStatusChange),
31 | name: Notification.Name.NEVPNStatusDidChange,
| `- error: 'NEVPNStatusDidChange' is unavailable in watchOS
32 | object: nil
33 | )
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:38:31: note: 'NEVPNStatusDidChange' has been explicitly marked unavailable here
36 |
37 | /*! @const NEVPNStatusDidChangeNotification Name of the NSNotification that is posted when the VPN status changes. */
38 | NEVPN_EXPORT NSString * const NEVPNStatusDidChangeNotification API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'NEVPNStatusDidChange' has been explicitly marked unavailable here
39 |
40 | /*! @const NEVPNConnectionStartOptionUsername Specify this key in the options dictionary passed to startVPNTunnelWithOptions:returningError: to override the username saved in the configuration. The value is a string */
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:37:65: error: 'NETunnelProviderSession' is unavailable in watchOS
35 |
36 | override var session: TMTunnelProviderSession? {
37 | if let providerSession = providerManager.connection as? NETunnelProviderSession {
| `- error: 'NETunnelProviderSession' is unavailable in watchOS
38 | return TMTunnelProviderSessionNative(nativeSession: providerSession)
39 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelProviderSession.h:22:12: note: 'NETunnelProviderSession' has been explicitly marked unavailable here
20 |
21 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
22 | @interface NETunnelProviderSession : NEVPNConnection
| `- note: 'NETunnelProviderSession' has been explicitly marked unavailable here
23 |
24 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:37:50: error: 'connection' is unavailable in watchOS
35 |
36 | override var session: TMTunnelProviderSession? {
37 | if let providerSession = providerManager.connection as? NETunnelProviderSession {
| `- error: 'connection' is unavailable in watchOS
38 | return TMTunnelProviderSessionNative(nativeSession: providerSession)
39 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNManager.h:142:39: note: 'connection' has been explicitly marked unavailable here
140 | * @discussion The NEVPNConnection object used for controlling the VPN tunnel.
141 | */
142 | @property (readonly) NEVPNConnection *connection API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'connection' has been explicitly marked unavailable here
143 |
144 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:49:33: error: 'connection' is unavailable in watchOS
47 | }
48 | do {
49 | try providerManager.connection.startVPNTunnel()
| `- error: 'connection' is unavailable in watchOS
50 | } catch {
51 | print("\(error)")
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNManager.h:142:39: note: 'connection' has been explicitly marked unavailable here
140 | * @discussion The NEVPNConnection object used for controlling the VPN tunnel.
141 | */
142 | @property (readonly) NEVPNConnection *connection API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'connection' has been explicitly marked unavailable here
143 |
144 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:49:44: error: 'startVPNTunnel()' is unavailable in watchOS
47 | }
48 | do {
49 | try providerManager.connection.startVPNTunnel()
| `- error: 'startVPNTunnel()' is unavailable in watchOS
50 | } catch {
51 | print("\(error)")
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:112:1: note: 'startVPNTunnel()' has been explicitly marked unavailable here
110 | * @return YES if the VPN tunnel was started successfully, NO if an error occurred.
111 | */
112 | - (BOOL)startVPNTunnelAndReturnError:(NSError **)error API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'startVPNTunnel()' has been explicitly marked unavailable here
113 |
114 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:58:25: error: 'connection' is unavailable in watchOS
56 | /// Stop the service, closing the existing VPN Tunnel.
57 | override public func stopTunnel() {
58 | providerManager.connection.stopVPNTunnel()
| `- error: 'connection' is unavailable in watchOS
59 | tunnelMonitor.stopMonitoring()
60 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNManager.h:142:39: note: 'connection' has been explicitly marked unavailable here
140 | * @discussion The NEVPNConnection object used for controlling the VPN tunnel.
141 | */
142 | @property (readonly) NEVPNConnection *connection API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'connection' has been explicitly marked unavailable here
143 |
144 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:58:36: error: 'stopVPNTunnel()' is unavailable in watchOS
56 | /// Stop the service, closing the existing VPN Tunnel.
57 | override public func stopTunnel() {
58 | providerManager.connection.stopVPNTunnel()
| `- error: 'stopVPNTunnel()' is unavailable in watchOS
59 | tunnelMonitor.stopMonitoring()
60 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NEVPNConnection.h:132:1: note: 'stopVPNTunnel()' has been explicitly marked unavailable here
130 | * @discussion This function is used to stop the VPN tunnel. The VPN tunnel disconnect process is started and this function returns immediately.
131 | */
132 | - (void)stopVPNTunnel API_AVAILABLE(macos(10.11), ios(8.0), tvos(17.0)) API_UNAVAILABLE(watchos);
| `- note: 'stopVPNTunnel()' has been explicitly marked unavailable here
133 |
134 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift:51:46: error: 'NETunnelNetworkSettings' is unavailable in watchOS
49 | func configureTunnel(
50 | userConfigurationData: Data?,
51 | settingsApplicationBlock: @escaping (NETunnelNetworkSettings?, ((Error?) -> Void)?) -> Void,
| `- error: 'NETunnelNetworkSettings' is unavailable in watchOS
52 | completionHandler: @escaping (TMTunnelConfigurationError?) -> Void
53 | )
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk/System/Library/Frameworks/NetworkExtension.framework/Headers/NETunnelNetworkSettings.h:27:12: note: 'NETunnelNetworkSettings' has been explicitly marked unavailable here
25 | */
26 | API_AVAILABLE(macos(10.11), ios(9.0), tvos(17.0)) API_UNAVAILABLE(watchos)
27 | @interface NETunnelNetworkSettings : NSObject <NSSecureCoding,NSCopying>
| `- note: 'NETunnelNetworkSettings' has been explicitly marked unavailable here
28 |
29 | /*!
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMNativeTunnelProviderManager.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMPacketTunnelProvider.swift
SwiftCompile normal arm64_32 Compiling\ TMCommunicationError.swift,\ TunnelMonitor.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/TMCommunicationError.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/TunnelMonitor.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/TMCommunicationError.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TMCommunicationError.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/TunnelMonitor.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile TunnelMonitor.swift
SwiftCompile normal arm64_32 Compiling\ NSTextCheckingResult+Util.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NSTextCheckingResult+Util.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NSTextCheckingResult+Util.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile NSTextCheckingResult+Util.swift
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
2026-09-20 12:05:14.086 xcodebuild[756:4688] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
SwiftEmitModule normal arm64_32 Emitting\ module\ for\ TunnelMonitorKit (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64_32 (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
Building workspace TunnelMonitorKit with scheme TunnelMonitorKit
(3 failures)
BUILD FAILURE 6.4 watchOS