Build Information
Failed to build TunnelMonitorKit, reference master (c15886), with Swift 6.4 for tvOS using Xcode 27.0 on 20 Sep 2026 16:05:14 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=tvOSBuild Log
:
72 | }
73 |
74 | override public var status: NEVPNStatus {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
75 | return currentStatus
76 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/TMCommunicationError.swift:15:23: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
10 |
11 | /// Contains information about why communication with tunnel failed
12 | public enum TMCommunicationError: Error {
| `- note: add '@available' attribute to enclosing enum
13 |
14 | /// The extension is not in a state in which it can be communicated with
15 | case invalidState(NEVPNStatus)
| `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
16 |
17 | /// The manager connection instance could not be cast to a NETunnelProviderSession or is nil
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:63:45: error: 'NEPacketTunnelNetworkSettings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| | `- error: 'NEPacketTunnelNetworkSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:81:57: error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
79 | }
80 |
81 | private static func parseRoutes(string: String) -> [NEIPv4Route] {
| | `- error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing static method
82 | return string.split(separator: ",")
83 | .map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEIPv4Route+Util.swift:19:11: error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
17 | private let routeRegex = try! NSRegularExpression(pattern: "^(?<address>\(ipPattern)):(?<subnet>\(ipPattern))$")
18 |
19 | extension NEIPv4Route {
| | `- error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
20 |
21 | /// Required to prevent invalid IP routes from being constructed, e.g. 0.0.0.0:0
/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 only available in tvOS 17.0 or newer
9 | import NetworkExtension
10 |
11 | extension NEProviderStopReason: CustomStringConvertible {
| | `- error: 'NEProviderStopReason' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
12 |
13 | /// A textual representation of this instance.
/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 only available in tvOS 17.0 or newer
9 | import NetworkExtension
10 |
11 | extension NEVPNStatus: CustomStringConvertible {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
12 |
13 | /// A textual representation of this instance
/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 only available in tvOS 17.0 or newer
26 | }
27 |
28 | extension NEVPNStatus: CaseIterable {
| `- note: add '@available' attribute to enclosing extension
29 | public static var allCases: [NEVPNStatus] {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing static property
30 | return [.invalid, .disconnected, .disconnecting, .connecting, .connected, .reasserting]
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift:28:11: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
26 | }
27 |
28 | extension NEVPNStatus: CaseIterable {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
29 | public static var allCases: [NEVPNStatus] {
30 | return [.invalid, .disconnected, .disconnecting, .connecting, .connected, .reasserting]
Failed frontend command:
SwiftCompile normal arm64 (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
/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-apple-tvos15.0 -disable-cross-import-overlay-search -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.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-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/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-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-tvos27.0 -target-sdk-version 27.0 -target-sdk-name appletvos27.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-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit.abi.json
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')
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
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEIPv4Route+Util.swift:19:11: error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
17 | private let routeRegex = try! NSRegularExpression(pattern: "^(?<address>\(ipPattern)):(?<subnet>\(ipPattern))$")
18 |
19 | extension NEIPv4Route {
| | `- error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
20 |
21 | /// Required to prevent invalid IP routes from being constructed, e.g. 0.0.0.0:0
SwiftCompile normal arm64 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 only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| | `- error: 'NEPacketTunnelNetworkSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:81:57: error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
79 | }
80 |
81 | private static func parseRoutes(string: String) -> [NEIPv4Route] {
| | `- error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing static method
82 | return string.split(separator: ",")
83 | .map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:64:31: error: 'NEPacketTunnelNetworkSettings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
| |- error: 'NEPacketTunnelNetworkSettings' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:64:31: error: 'init(tunnelRemoteAddress:)' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
| |- error: 'init(tunnelRemoteAddress:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:66:28: error: 'NEIPv4Settings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
| |- error: 'NEIPv4Settings' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
67 | ipv4Settings.includedRoutes = TMNetworkSettings.parseRoutes(string: includedRoutes)
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:66:28: error: 'init(addresses:subnetMasks:)' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
| |- error: 'init(addresses:subnetMasks:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
67 | ipv4Settings.includedRoutes = TMNetworkSettings.parseRoutes(string: includedRoutes)
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:67:22: error: 'includedRoutes' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
67 | ipv4Settings.includedRoutes = TMNetworkSettings.parseRoutes(string: includedRoutes)
| |- error: 'includedRoutes' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
69 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:68:22: error: 'excludedRoutes' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
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 only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
69 |
70 | networkSettings.ipv4Settings = ipv4Settings
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:70:25: error: 'ipv4Settings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
69 |
70 | networkSettings.ipv4Settings = ipv4Settings
| |- error: 'ipv4Settings' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
71 |
72 | if let overheadBytes = tunnelOverheadBytes {
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:73:29: error: 'tunnelOverheadBytes' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
71 |
72 | if let overheadBytes = tunnelOverheadBytes {
73 | networkSettings.tunnelOverheadBytes = NSNumber(value: overheadBytes)
| |- error: 'tunnelOverheadBytes' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:75:25: error: 'mtu' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
73 | networkSettings.tunnelOverheadBytes = NSNumber(value: overheadBytes)
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
| |- error: 'mtu' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
77 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:76:25: error: 'dnsSettings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
| |- error: 'dnsSettings' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
77 |
78 | return networkSettings
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:76:39: error: 'NEDNSSettings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
| |- error: 'NEDNSSettings' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
77 |
78 | return networkSettings
SwiftCompile normal arm64 /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 /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
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:76:39: error: 'init(servers:)' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
| |- error: 'init(servers:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
77 |
78 | return networkSettings
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\ NSTextCheckingResult+Util.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NSTextCheckingResult+Util.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64 /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
SwiftCompile normal arm64 Compiling\ NEProviderStopReason+StringConvertible.swift,\ NEVPNStatus+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 (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
/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 only available in tvOS 17.0 or newer
9 | import NetworkExtension
10 |
11 | extension NEProviderStopReason: CustomStringConvertible {
| | `- error: 'NEProviderStopReason' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
12 |
13 | /// A textual representation of this instance.
/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 only available in tvOS 17.0 or newer
9 | import NetworkExtension
10 |
11 | extension NEVPNStatus: CustomStringConvertible {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
12 |
13 | /// A textual representation of this instance
/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 only available in tvOS 17.0 or newer
26 | }
27 |
28 | extension NEVPNStatus: CaseIterable {
| `- note: add '@available' attribute to enclosing extension
29 | public static var allCases: [NEVPNStatus] {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing static property
30 | return [.invalid, .disconnected, .disconnecting, .connecting, .connected, .reasserting]
31 | }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEProviderStopReason+StringConvertible.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile NEProviderStopReason+StringConvertible.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile NEVPNStatus+Util.swift
SwiftCompile normal arm64 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 only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
16 | private let providerManager: NETunnelProviderManager
| `- error: 'NETunnelProviderManager' is only available in tvOS 17.0 or newer
17 |
18 | private var pollingInterval = 1.0
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:20:39: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
18 | private var pollingInterval = 1.0
19 |
20 | override public var tunnelStatus: NEVPNStatus { session?.status ?? .invalid }
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
21 | override public var tunnelMonitor: TunnelMonitor { monitor }
22 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:24:20: error: 'NETunnelProviderManager' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
22 |
23 | /// Initialise VPNManager, which also saves/updates a tunnel configuration to the phone's VPN settings
24 | init(provider: NETunnelProviderManager) {
| | `- error: 'NETunnelProviderManager' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing initializer
25 | providerManager = provider
26 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:31:37: error: 'NEVPNStatusDidChange' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
22 |
23 | /// Initialise VPNManager, which also saves/updates a tunnel configuration to the phone's VPN settings
24 | init(provider: NETunnelProviderManager) {
| `- note: add '@available' attribute to enclosing initializer
25 | providerManager = provider
26 | super.init()
:
29 | self,
30 | selector: #selector(handleVPNStatusChange),
31 | name: Notification.Name.NEVPNStatusDidChange,
| |- error: 'NEVPNStatusDidChange' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
32 | object: nil
33 | )
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:37:65: error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
34 | }
35 |
36 | override var session: TMTunnelProviderSession? {
| `- note: add '@available' attribute to enclosing property
37 | if let providerSession = providerManager.connection as? NETunnelProviderSession {
| |- error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
38 | return TMTunnelProviderSessionNative(nativeSession: providerSession)
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:37:50: error: 'connection' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
34 | }
35 |
36 | override var session: TMTunnelProviderSession? {
| `- note: add '@available' attribute to enclosing property
37 | if let providerSession = providerManager.connection as? NETunnelProviderSession {
| |- error: 'connection' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
38 | return TMTunnelProviderSessionNative(nativeSession: providerSession)
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:49:33: error: 'connection' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
41 | }
42 |
43 | override public func startTunnel() {
| `- note: add '@available' attribute to enclosing instance method
44 | guard let session = session, session.status != .connected else {
45 | log(.error, "Failed to start: tunnel is already connected!")
:
47 | }
48 | do {
49 | try providerManager.connection.startVPNTunnel()
| |- error: 'connection' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
50 | } catch {
51 | print("\(error)")
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:49:44: error: 'startVPNTunnel()' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
41 | }
42 |
43 | override public func startTunnel() {
| `- note: add '@available' attribute to enclosing instance method
44 | guard let session = session, session.status != .connected else {
45 | log(.error, "Failed to start: tunnel is already connected!")
:
47 | }
48 | do {
49 | try providerManager.connection.startVPNTunnel()
| |- error: 'startVPNTunnel()' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
50 | } catch {
51 | print("\(error)")
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:58:25: error: 'connection' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
55 |
56 | /// Stop the service, closing the existing VPN Tunnel.
57 | override public func stopTunnel() {
| `- note: add '@available' attribute to enclosing instance method
58 | providerManager.connection.stopVPNTunnel()
| |- error: 'connection' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
59 | tunnelMonitor.stopMonitoring()
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:58:36: error: 'stopVPNTunnel()' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
55 |
56 | /// Stop the service, closing the existing VPN Tunnel.
57 | override public func stopTunnel() {
| `- note: add '@available' attribute to enclosing instance method
58 | providerManager.connection.stopVPNTunnel()
| |- error: 'stopVPNTunnel()' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
59 | tunnelMonitor.stopMonitoring()
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift:51:46: error: 'NETunnelNetworkSettings' is only available in tvOS 17.0 or newer
27 | /// the `TMPacketTunnelProvider` protocol, with the info.plist file pointing to it via the `NSExtensionPrincipalClass`
28 | /// entry.
29 | public protocol TMPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing protocol
30 |
31 | init()
:
47 | /// - settingsApplicationBlock: The block which applies the tunnel's protocol configuration object.
48 | /// - completionHandler: The completion handler which signals configuration completion to the provider manager.
49 | func configureTunnel(
| `- note: add '@available' attribute to enclosing instance method
50 | userConfigurationData: Data?,
51 | settingsApplicationBlock: @escaping (NETunnelNetworkSettings?, ((Error?) -> Void)?) -> Void,
| `- error: 'NETunnelNetworkSettings' is only available in tvOS 17.0 or newer
52 | completionHandler: @escaping (TMTunnelConfigurationError?) -> Void
53 | )
SwiftCompile normal arm64 /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 /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 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:93:50: error: 'NEProviderStopReason' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
91 | }
92 |
93 | override public func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
| | `- error: 'NEProviderStopReason' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
94 | log(.info, "Stopping tunnel provider with reason: \(reason)")
95 | provider.stopTunnel(with: reason, completionHandler: completionHandler)
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:21:82: error: 'NEPacketTunnelProvider' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| | `- error: 'NEPacketTunnelProvider' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:31:48: error: 'NETunnelProviderProtocol' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
28 | }
29 |
30 | private var configuration: [String: Any]? {
| `- note: add '@available' attribute to enclosing property
31 | return (self.protocolConfiguration as? NETunnelProviderProtocol)?.providerConfiguration
| |- error: 'NETunnelProviderProtocol' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
32 | }
33 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:31:22: error: 'protocolConfiguration' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
28 | }
29 |
30 | private var configuration: [String: Any]? {
| `- note: add '@available' attribute to enclosing property
31 | return (self.protocolConfiguration as? NETunnelProviderProtocol)?.providerConfiguration
| |- error: 'protocolConfiguration' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
32 | }
33 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:31:75: error: 'providerConfiguration' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
28 | }
29 |
30 | private var configuration: [String: Any]? {
| `- note: add '@available' attribute to enclosing property
31 | return (self.protocolConfiguration as? NETunnelProviderProtocol)?.providerConfiguration
| |- error: 'providerConfiguration' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
32 | }
33 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:50:13: error: 'setTunnelNetworkSettings(_:completionHandler:)' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
32 | }
33 |
34 | private func configureProvider(completionHandler: @escaping (TMTunnelConfigurationError?) -> Void) {
| `- note: add '@available' attribute to enclosing instance method
35 | guard let config = configuration else {
36 | completionHandler(.missingConfiguration)
:
48 | let settings = networkSettings.packetTunnelNetworkSettings
49 |
50 | setTunnelNetworkSettings(settings) { error in
| |- error: 'setTunnelNetworkSettings(_:completionHandler:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
51 | if let error = error {
52 | completionHandler(.configurationDecodingFailed(decodeError: error))
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:57:52: error: 'setTunnelNetworkSettings(_:completionHandler:)' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
32 | }
33 |
34 | private func configureProvider(completionHandler: @escaping (TMTunnelConfigurationError?) -> Void) {
| `- note: add '@available' attribute to enclosing instance method
35 | guard let config = configuration else {
36 | completionHandler(.missingConfiguration)
:
55 | self.provider.configureTunnel(
56 | userConfigurationData: userConfigData,
57 | settingsApplicationBlock: self.setTunnelNetworkSettings
| |- error: 'setTunnelNetworkSettings(_:completionHandler:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
58 | ) { error in
59 | if let error = error {
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:16:39: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
11 |
12 | /// Defines events describing changes to the state of the tunnel provider, and the specific service it provides.
13 | public protocol TMTunnelProviderManagerDelegate: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
14 |
15 | /// Invoked whenever the tunnel provider state changes.
16 | func tunnelStateChanged(to state: NEVPNStatus)
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
17 |
18 | /// Invoked every time the service state changes. This contains information specific to the service provided by the
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:45:30: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
25 | /// `TMMockTunnelProviderManager` or `TMNativeTunnelProviderManager` using `TMMockTunnelProviderManagerFactory`, based
26 | /// on whether mocking is desired or not.
27 | public class TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
28 |
29 | init() {}
:
43 |
44 | /// Current status of the network extension
45 | public var tunnelStatus: NEVPNStatus { fatalError("Must override") }
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
46 |
47 | /// Sends a message request to the tunnel provider.
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:112:38: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
102 | /// A mock tunnel provider manager which allows the functionality of a specific TMPacketTunnelProvider to be executed on
103 | /// host/container app targets and simulator target environments.
104 | public class TMMockTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
105 |
106 | private let provider: TMPacketTunnelProvider
:
110 | private let userConfigurationData: Data?
111 |
112 | private var currentTunnelStatus: NEVPNStatus = .invalid {
| `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
113 | didSet {
114 | mockSession.setStatus(currentTunnelStatus)
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
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\ 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 /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 /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 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')
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
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:05.176 xcodebuild[631:4014] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
2026-09-20 12:05:05.319 xcodebuild[631:4014] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
SwiftCompile normal arm64 (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftEmitModule normal arm64 Emitting\ module\ for\ TunnelMonitorKit (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:10.687 xcodebuild[713:4452] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
2026-09-20 12:05:10.835 xcodebuild[713:4452] [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:12.007 xcodebuild[721:4522] [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=tvOS
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=tvOS
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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -o /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache
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-appletvos/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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -target arm64-apple-tvos15.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-appletvos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/Developer/Library/Frameworks -c -j10 -enable-batch-mode -incremental -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/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-appletvos/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-appletvos/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-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit_const_extract_protocols.json -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/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-appletvos/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\ 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:93:50: error: 'NEProviderStopReason' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
91 | }
92 |
93 | override public func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
| | `- error: 'NEProviderStopReason' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
94 | log(.info, "Stopping tunnel provider with reason: \(reason)")
95 | provider.stopTunnel(with: reason, completionHandler: completionHandler)
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:21:82: error: 'NEPacketTunnelProvider' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| | `- error: 'NEPacketTunnelProvider' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:31:48: error: 'NETunnelProviderProtocol' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
28 | }
29 |
30 | private var configuration: [String: Any]? {
| `- note: add '@available' attribute to enclosing property
31 | return (self.protocolConfiguration as? NETunnelProviderProtocol)?.providerConfiguration
| |- error: 'NETunnelProviderProtocol' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
32 | }
33 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:31:22: error: 'protocolConfiguration' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
28 | }
29 |
30 | private var configuration: [String: Any]? {
| `- note: add '@available' attribute to enclosing property
31 | return (self.protocolConfiguration as? NETunnelProviderProtocol)?.providerConfiguration
| |- error: 'protocolConfiguration' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
32 | }
33 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:31:75: error: 'providerConfiguration' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
28 | }
29 |
30 | private var configuration: [String: Any]? {
| `- note: add '@available' attribute to enclosing property
31 | return (self.protocolConfiguration as? NETunnelProviderProtocol)?.providerConfiguration
| |- error: 'providerConfiguration' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
32 | }
33 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:50:13: error: 'setTunnelNetworkSettings(_:completionHandler:)' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
32 | }
33 |
34 | private func configureProvider(completionHandler: @escaping (TMTunnelConfigurationError?) -> Void) {
| `- note: add '@available' attribute to enclosing instance method
35 | guard let config = configuration else {
36 | completionHandler(.missingConfiguration)
:
48 | let settings = networkSettings.packetTunnelNetworkSettings
49 |
50 | setTunnelNetworkSettings(settings) { error in
| |- error: 'setTunnelNetworkSettings(_:completionHandler:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
51 | if let error = error {
52 | completionHandler(.configurationDecodingFailed(decodeError: error))
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:57:52: error: 'setTunnelNetworkSettings(_:completionHandler:)' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
32 | }
33 |
34 | private func configureProvider(completionHandler: @escaping (TMTunnelConfigurationError?) -> Void) {
| `- note: add '@available' attribute to enclosing instance method
35 | guard let config = configuration else {
36 | completionHandler(.missingConfiguration)
:
55 | self.provider.configureTunnel(
56 | userConfigurationData: userConfigData,
57 | settingsApplicationBlock: self.setTunnelNetworkSettings
| |- error: 'setTunnelNetworkSettings(_:completionHandler:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
58 | ) { error in
59 | if let error = error {
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:16:39: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
11 |
12 | /// Defines events describing changes to the state of the tunnel provider, and the specific service it provides.
13 | public protocol TMTunnelProviderManagerDelegate: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
14 |
15 | /// Invoked whenever the tunnel provider state changes.
16 | func tunnelStateChanged(to state: NEVPNStatus)
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
17 |
18 | /// Invoked every time the service state changes. This contains information specific to the service provided by the
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/TMTunnelProviderManager.swift:45:30: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
25 | /// `TMMockTunnelProviderManager` or `TMNativeTunnelProviderManager` using `TMMockTunnelProviderManagerFactory`, based
26 | /// on whether mocking is desired or not.
27 | public class TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
28 |
29 | init() {}
:
43 |
44 | /// Current status of the network extension
45 | public var tunnelStatus: NEVPNStatus { fatalError("Must override") }
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
46 |
47 | /// Sends a message request to the tunnel provider.
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:112:38: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
102 | /// A mock tunnel provider manager which allows the functionality of a specific TMPacketTunnelProvider to be executed on
103 | /// host/container app targets and simulator target environments.
104 | public class TMMockTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
105 |
106 | private let provider: TMPacketTunnelProvider
:
110 | private let userConfigurationData: Data?
111 |
112 | private var currentTunnelStatus: NEVPNStatus = .invalid {
| `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
113 | didSet {
114 | mockSession.setStatus(currentTunnelStatus)
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 only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
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 only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
47 | if let error = error {
48 | log(.error, "Failed to load list of tunnel provider managers with error: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:46:33: error: 'loadAllFromPreferences(completionHandler:)' is only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
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 only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
47 | if let error = error {
48 | log(.error, "Failed to load list of tunnel provider managers with error: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:57:26: error: 'loadFromPreferences(completionHandler:)' is only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
55 | return
56 | }
57 | savedManager.loadFromPreferences { (error) in
| |- error: 'loadFromPreferences(completionHandler:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
58 | if let error = error {
59 | log(.error, "Failed to load tunnel provider manager: \(savedManager) error: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:64:32: error: 'NETunnelProviderProtocol' is only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
62 | }
63 |
64 | let provider = NETunnelProviderProtocol()
| |- error: 'NETunnelProviderProtocol' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
65 | provider.providerBundleIdentifier = tunnelSettings.tunnelBundleID
66 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:65:26: error: 'providerBundleIdentifier' is only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
63 |
64 | let provider = NETunnelProviderProtocol()
65 | provider.providerBundleIdentifier = tunnelSettings.tunnelBundleID
| |- error: 'providerBundleIdentifier' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
66 |
67 | let encoder = JSONEncoder()
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:76:30: error: 'providerConfiguration' is only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
74 | ]
75 |
76 | provider.providerConfiguration = config
| |- error: 'providerConfiguration' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
77 | provider.serverAddress = networkSettings.tunnelRemoteAddress
78 | provider.disconnectOnSleep = tunnelSettings.disconnectOnSleep
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:77:30: error: 'serverAddress' is only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
75 |
76 | provider.providerConfiguration = config
77 | provider.serverAddress = networkSettings.tunnelRemoteAddress
| |- error: 'serverAddress' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
78 | provider.disconnectOnSleep = tunnelSettings.disconnectOnSleep
79 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:78:30: error: 'disconnectOnSleep' is only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
76 | provider.providerConfiguration = config
77 | provider.serverAddress = networkSettings.tunnelRemoteAddress
78 | provider.disconnectOnSleep = tunnelSettings.disconnectOnSleep
| |- error: 'disconnectOnSleep' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
79 |
80 | savedManager.localizedDescription = tunnelSettings.managerLocalizedDescription
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:80:34: error: 'localizedDescription' is only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
78 | provider.disconnectOnSleep = tunnelSettings.disconnectOnSleep
79 |
80 | savedManager.localizedDescription = tunnelSettings.managerLocalizedDescription
| |- error: 'localizedDescription' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
81 | savedManager.protocolConfiguration = provider
82 | savedManager.isEnabled = true
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:81:34: error: 'protocolConfiguration' is only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
79 |
80 | savedManager.localizedDescription = tunnelSettings.managerLocalizedDescription
81 | savedManager.protocolConfiguration = provider
| |- error: 'protocolConfiguration' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
82 | savedManager.isEnabled = true
83 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:82:34: error: 'isEnabled' is only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
80 | savedManager.localizedDescription = tunnelSettings.managerLocalizedDescription
81 | savedManager.protocolConfiguration = provider
82 | savedManager.isEnabled = true
| |- error: 'isEnabled' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
83 |
84 | savedManager.saveToPreferences { error in
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManagerFactory.swift:84:34: error: 'saveToPreferences(completionHandler:)' is only available in tvOS 17.0 or newer
11 |
12 | /// Responsible for constructing mock or native packet tunnel provider managers.
13 | public class TMTunnelProviderManagerFactory {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// Creates a mock provider manager, capable of executing tunnel provider logic implemented by the given
:
37 | /// - userConfiguration: Service specific configuration, required to configure the given `Provider`.
38 | /// - completionHandler: Completion handler executed when the tunnel loading finishes.
39 | public static func loadNativeProviderManager<UserConfiguration: Codable>(
| `- note: add '@available' attribute to enclosing static method
40 | tunnelSettings: TMTunnelSettings,
41 | networkSettings: TMNetworkSettings,
:
82 | savedManager.isEnabled = true
83 |
84 | savedManager.saveToPreferences { error in
| |- error: 'saveToPreferences(completionHandler:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
85 | if let error = error {
86 | log(.error, "Failed to save tunnel provider manager: \(savedManager) error: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:29:17: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
11 |
12 | /// A base class allowing native and mock sessions to be used interchangebly.
13 | public class TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// This method returns immediately after starting the process of connecting the tunnel.
:
27 |
28 | /// Returns the current session status.
29 | var status: NEVPNStatus { return .invalid }
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
30 |
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:36:32: error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
32 |
33 | /// A wrapper around a real NETunnelProviderSession.
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
35 |
36 | private let nativeSession: NETunnelProviderSession
| `- error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
37 |
38 | public init(nativeSession: NETunnelProviderSession) {
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:38:32: error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
32 |
33 | /// A wrapper around a real NETunnelProviderSession.
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
35 |
36 | private let nativeSession: NETunnelProviderSession
37 |
38 | public init(nativeSession: NETunnelProviderSession) {
| | `- error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing initializer
39 | self.nativeSession = nativeSession
40 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:42:33: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
32 |
33 | /// A wrapper around a real NETunnelProviderSession.
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
35 |
36 | private let nativeSession: NETunnelProviderSession
:
40 | }
41 |
42 | override public var status: NEVPNStatus {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
43 | return nativeSession.status
44 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:63:32: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
58 |
59 | /// A mock tunnel provider session.
60 | public class TMTunnelProviderSessionMock: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
61 |
62 | public let mockMessageRouter = MessageRouter()
63 | private var currentStatus: NEVPNStatus = .invalid
| `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
64 | private var provider: TMPacketTunnelProvider?
65 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:70:37: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
58 |
59 | /// A mock tunnel provider session.
60 | public class TMTunnelProviderSessionMock: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
61 |
62 | public let mockMessageRouter = MessageRouter()
:
68 | }
69 |
70 | public func setStatus(_ status: NEVPNStatus) {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
71 | currentStatus = status
72 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:74:33: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
58 |
59 | /// A mock tunnel provider session.
60 | public class TMTunnelProviderSessionMock: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
61 |
62 | public let mockMessageRouter = MessageRouter()
:
72 | }
73 |
74 | override public var status: NEVPNStatus {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
75 | return currentStatus
76 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:43:30: error: 'status' is only available in tvOS 17.0 or newer
32 |
33 | /// A wrapper around a real NETunnelProviderSession.
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
35 |
36 | private let nativeSession: NETunnelProviderSession
:
40 | }
41 |
42 | override public var status: NEVPNStatus {
| `- note: add '@available' attribute to enclosing property
43 | return nativeSession.status
| |- error: 'status' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
44 | }
45 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:47:23: error: 'stopTunnel()' is only available in tvOS 17.0 or newer
32 |
33 | /// A wrapper around a real NETunnelProviderSession.
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
35 |
36 | private let nativeSession: NETunnelProviderSession
:
44 | }
45 |
46 | override public func stopTunnel() {
| `- note: add '@available' attribute to enclosing instance method
47 | nativeSession.stopTunnel()
| |- error: 'stopTunnel()' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
48 | }
49 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:51:27: error: 'startTunnel(options:)' is only available in tvOS 17.0 or newer
32 |
33 | /// A wrapper around a real NETunnelProviderSession.
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
35 |
36 | private let nativeSession: NETunnelProviderSession
:
48 | }
49 |
50 | override public func startTunnel(options: [String: Any]?) throws {
| `- note: add '@available' attribute to enclosing instance method
51 | try nativeSession.startTunnel(options: options)
| |- error: 'startTunnel(options:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
52 | }
53 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:55:27: error: 'sendProviderMessage(_:responseHandler:)' is only available in tvOS 17.0 or newer
32 |
33 | /// A wrapper around a real NETunnelProviderSession.
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
35 |
36 | private let nativeSession: NETunnelProviderSession
:
52 | }
53 |
54 | override public func sendProviderMessage(_ message: Data, responseHandler: ResponseCompletion) throws {
| `- note: add '@available' attribute to enclosing instance method
55 | try nativeSession.sendProviderMessage(message, responseHandler: responseHandler)
| |- error: 'sendProviderMessage(_:responseHandler:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
56 | }
57 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:79:25: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
58 |
59 | /// A mock tunnel provider session.
60 | public class TMTunnelProviderSessionMock: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
61 |
62 | public let mockMessageRouter = MessageRouter()
:
76 | }
77 |
78 | override public func stopTunnel() {
| `- note: add '@available' attribute to enclosing instance method
79 | currentStatus = NEVPNStatus.disconnected
| |- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
80 | }
81 |
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\ 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 only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
16 | private let providerManager: NETunnelProviderManager
| `- error: 'NETunnelProviderManager' is only available in tvOS 17.0 or newer
17 |
18 | private var pollingInterval = 1.0
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:20:39: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
18 | private var pollingInterval = 1.0
19 |
20 | override public var tunnelStatus: NEVPNStatus { session?.status ?? .invalid }
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
21 | override public var tunnelMonitor: TunnelMonitor { monitor }
22 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:24:20: error: 'NETunnelProviderManager' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
22 |
23 | /// Initialise VPNManager, which also saves/updates a tunnel configuration to the phone's VPN settings
24 | init(provider: NETunnelProviderManager) {
| | `- error: 'NETunnelProviderManager' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing initializer
25 | providerManager = provider
26 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:31:37: error: 'NEVPNStatusDidChange' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
22 |
23 | /// Initialise VPNManager, which also saves/updates a tunnel configuration to the phone's VPN settings
24 | init(provider: NETunnelProviderManager) {
| `- note: add '@available' attribute to enclosing initializer
25 | providerManager = provider
26 | super.init()
:
29 | self,
30 | selector: #selector(handleVPNStatusChange),
31 | name: Notification.Name.NEVPNStatusDidChange,
| |- error: 'NEVPNStatusDidChange' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
32 | object: nil
33 | )
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:37:65: error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
34 | }
35 |
36 | override var session: TMTunnelProviderSession? {
| `- note: add '@available' attribute to enclosing property
37 | if let providerSession = providerManager.connection as? NETunnelProviderSession {
| |- error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
38 | return TMTunnelProviderSessionNative(nativeSession: providerSession)
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:37:50: error: 'connection' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
34 | }
35 |
36 | override var session: TMTunnelProviderSession? {
| `- note: add '@available' attribute to enclosing property
37 | if let providerSession = providerManager.connection as? NETunnelProviderSession {
| |- error: 'connection' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
38 | return TMTunnelProviderSessionNative(nativeSession: providerSession)
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:49:33: error: 'connection' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
41 | }
42 |
43 | override public func startTunnel() {
| `- note: add '@available' attribute to enclosing instance method
44 | guard let session = session, session.status != .connected else {
45 | log(.error, "Failed to start: tunnel is already connected!")
:
47 | }
48 | do {
49 | try providerManager.connection.startVPNTunnel()
| |- error: 'connection' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
50 | } catch {
51 | print("\(error)")
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:49:44: error: 'startVPNTunnel()' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
41 | }
42 |
43 | override public func startTunnel() {
| `- note: add '@available' attribute to enclosing instance method
44 | guard let session = session, session.status != .connected else {
45 | log(.error, "Failed to start: tunnel is already connected!")
:
47 | }
48 | do {
49 | try providerManager.connection.startVPNTunnel()
| |- error: 'startVPNTunnel()' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
50 | } catch {
51 | print("\(error)")
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:58:25: error: 'connection' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
55 |
56 | /// Stop the service, closing the existing VPN Tunnel.
57 | override public func stopTunnel() {
| `- note: add '@available' attribute to enclosing instance method
58 | providerManager.connection.stopVPNTunnel()
| |- error: 'connection' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
59 | tunnelMonitor.stopMonitoring()
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:58:36: error: 'stopVPNTunnel()' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
55 |
56 | /// Stop the service, closing the existing VPN Tunnel.
57 | override public func stopTunnel() {
| `- note: add '@available' attribute to enclosing instance method
58 | providerManager.connection.stopVPNTunnel()
| |- error: 'stopVPNTunnel()' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
59 | tunnelMonitor.stopMonitoring()
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift:51:46: error: 'NETunnelNetworkSettings' is only available in tvOS 17.0 or newer
27 | /// the `TMPacketTunnelProvider` protocol, with the info.plist file pointing to it via the `NSExtensionPrincipalClass`
28 | /// entry.
29 | public protocol TMPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing protocol
30 |
31 | init()
:
47 | /// - settingsApplicationBlock: The block which applies the tunnel's protocol configuration object.
48 | /// - completionHandler: The completion handler which signals configuration completion to the provider manager.
49 | func configureTunnel(
| `- note: add '@available' attribute to enclosing instance method
50 | userConfigurationData: Data?,
51 | settingsApplicationBlock: @escaping (NETunnelNetworkSettings?, ((Error?) -> Void)?) -> Void,
| `- error: 'NETunnelNetworkSettings' is only available in tvOS 17.0 or newer
52 | completionHandler: @escaping (TMTunnelConfigurationError?) -> Void
53 | )
SwiftCompile normal arm64 /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 /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
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 only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
16 | private let providerManager: NETunnelProviderManager
| `- error: 'NETunnelProviderManager' is only available in tvOS 17.0 or newer
17 |
18 | private var pollingInterval = 1.0
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:20:39: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
18 | private var pollingInterval = 1.0
19 |
20 | override public var tunnelStatus: NEVPNStatus { session?.status ?? .invalid }
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
21 | override public var tunnelMonitor: TunnelMonitor { monitor }
22 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMNativeTunnelProviderManager.swift:24:20: error: 'NETunnelProviderManager' is only available in tvOS 17.0 or newer
11 | /// Class that manages the vpn network extension. The native tunnel provider manager is essentially a wrapper around a
12 | /// real tunnel provider manager.
13 | public class TMNativeTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
14 |
15 | private let monitor = TunnelMonitor()
:
22 |
23 | /// Initialise VPNManager, which also saves/updates a tunnel configuration to the phone's VPN settings
24 | init(provider: NETunnelProviderManager) {
| | `- error: 'NETunnelProviderManager' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing initializer
25 | providerManager = provider
26 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift:51:46: error: 'NETunnelNetworkSettings' is only available in tvOS 17.0 or newer
27 | /// the `TMPacketTunnelProvider` protocol, with the info.plist file pointing to it via the `NSExtensionPrincipalClass`
28 | /// entry.
29 | public protocol TMPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing protocol
30 |
31 | init()
:
47 | /// - settingsApplicationBlock: The block which applies the tunnel's protocol configuration object.
48 | /// - completionHandler: The completion handler which signals configuration completion to the provider manager.
49 | func configureTunnel(
| `- note: add '@available' attribute to enclosing instance method
50 | userConfigurationData: Data?,
51 | settingsApplicationBlock: @escaping (NETunnelNetworkSettings?, ((Error?) -> Void)?) -> Void,
| `- error: 'NETunnelNetworkSettings' is only available in tvOS 17.0 or newer
52 | completionHandler: @escaping (TMTunnelConfigurationError?) -> Void
53 | )
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProvider.swift:69:34: error: 'NEProviderStopReason' is only available in tvOS 17.0 or newer
27 | /// the `TMPacketTunnelProvider` protocol, with the info.plist file pointing to it via the `NSExtensionPrincipalClass`
28 | /// entry.
29 | public protocol TMPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing protocol
30 |
31 | init()
:
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 only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
70 |
71 | /// This method is invoked whenever the tunnel receives a message from the host application. This communication
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:93:50: error: 'NEProviderStopReason' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
:
91 | }
92 |
93 | override public func stopTunnel(with reason: NEProviderStopReason, completionHandler: @escaping () -> Void) {
| | `- error: 'NEProviderStopReason' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
94 | log(.info, "Stopping tunnel provider with reason: \(reason)")
95 | provider.stopTunnel(with: reason, completionHandler: completionHandler)
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMPacketTunnelProviderNative.swift:21:82: error: 'NEPacketTunnelProvider' is only available in tvOS 17.0 or newer
19 | /// open class MyNativeTunnelProvider: TMPacketTunnelProviderNative<MyTunnelProvider> { }
20 | /// ```
21 | open class TMPacketTunnelProviderNative<TunnelProvider: TMPacketTunnelProvider>: NEPacketTunnelProvider {
| | `- error: 'NEPacketTunnelProvider' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing generic class
22 |
23 | let provider: TunnelProvider
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:16:39: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
11 |
12 | /// Defines events describing changes to the state of the tunnel provider, and the specific service it provides.
13 | public protocol TMTunnelProviderManagerDelegate: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
14 |
15 | /// Invoked whenever the tunnel provider state changes.
16 | func tunnelStateChanged(to state: NEVPNStatus)
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
17 |
18 | /// Invoked every time the service state changes. This contains information specific to the service provided by the
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:45:30: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
25 | /// `TMMockTunnelProviderManager` or `TMNativeTunnelProviderManager` using `TMMockTunnelProviderManagerFactory`, based
26 | /// on whether mocking is desired or not.
27 | public class TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
28 |
29 | init() {}
:
43 |
44 | /// Current status of the network extension
45 | public var tunnelStatus: NEVPNStatus { fatalError("Must override") }
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
46 |
47 | /// Sends a message request to the tunnel provider.
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:112:38: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
102 | /// A mock tunnel provider manager which allows the functionality of a specific TMPacketTunnelProvider to be executed on
103 | /// host/container app targets and simulator target environments.
104 | public class TMMockTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
105 |
106 | private let provider: TMPacketTunnelProvider
:
110 | private let userConfigurationData: Data?
111 |
112 | private var currentTunnelStatus: NEVPNStatus = .invalid {
| `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
113 | didSet {
114 | mockSession.setStatus(currentTunnelStatus)
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderManager.swift:138:39: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
102 | /// A mock tunnel provider manager which allows the functionality of a specific TMPacketTunnelProvider to be executed on
103 | /// host/container app targets and simulator target environments.
104 | public class TMMockTunnelProviderManager: TMTunnelProviderManager {
| `- note: add '@available' attribute to enclosing class
105 |
106 | private let provider: TMPacketTunnelProvider
:
136 |
137 | override var session: TMTunnelProviderSession? { mockSession }
138 | override public var tunnelStatus: NEVPNStatus { currentTunnelStatus }
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
139 | override public var tunnelMonitor: TunnelMonitor { monitor }
140 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:29:17: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
11 |
12 | /// A base class allowing native and mock sessions to be used interchangebly.
13 | public class TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
14 |
15 | /// This method returns immediately after starting the process of connecting the tunnel.
:
27 |
28 | /// Returns the current session status.
29 | var status: NEVPNStatus { return .invalid }
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
30 |
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:36:32: error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
32 |
33 | /// A wrapper around a real NETunnelProviderSession.
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
35 |
36 | private let nativeSession: NETunnelProviderSession
| `- error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
37 |
38 | public init(nativeSession: NETunnelProviderSession) {
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:38:32: error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
32 |
33 | /// A wrapper around a real NETunnelProviderSession.
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
35 |
36 | private let nativeSession: NETunnelProviderSession
37 |
38 | public init(nativeSession: NETunnelProviderSession) {
| | `- error: 'NETunnelProviderSession' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing initializer
39 | self.nativeSession = nativeSession
40 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:42:33: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
32 |
33 | /// A wrapper around a real NETunnelProviderSession.
34 | public class TMTunnelProviderSessionNative: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
35 |
36 | private let nativeSession: NETunnelProviderSession
:
40 | }
41 |
42 | override public var status: NEVPNStatus {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
43 | return nativeSession.status
44 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:63:32: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
58 |
59 | /// A mock tunnel provider session.
60 | public class TMTunnelProviderSessionMock: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
61 |
62 | public let mockMessageRouter = MessageRouter()
63 | private var currentStatus: NEVPNStatus = .invalid
| `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
64 | private var provider: TMPacketTunnelProvider?
65 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:70:37: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
58 |
59 | /// A mock tunnel provider session.
60 | public class TMTunnelProviderSessionMock: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
61 |
62 | public let mockMessageRouter = MessageRouter()
:
68 | }
69 |
70 | public func setStatus(_ status: NEVPNStatus) {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
71 | currentStatus = status
72 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Mocking/TMTunnelProviderSession.swift:74:33: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
58 |
59 | /// A mock tunnel provider session.
60 | public class TMTunnelProviderSessionMock: TMTunnelProviderSession {
| `- note: add '@available' attribute to enclosing class
61 |
62 | public let mockMessageRouter = MessageRouter()
:
72 | }
73 |
74 | override public var status: NEVPNStatus {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
75 | return currentStatus
76 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelCommunication/TMCommunicationError.swift:15:23: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
10 |
11 | /// Contains information about why communication with tunnel failed
12 | public enum TMCommunicationError: Error {
| `- note: add '@available' attribute to enclosing enum
13 |
14 | /// The extension is not in a state in which it can be communicated with
15 | case invalidState(NEVPNStatus)
| `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
16 |
17 | /// The manager connection instance could not be cast to a NETunnelProviderSession or is nil
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:63:45: error: 'NEPacketTunnelNetworkSettings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| | `- error: 'NEPacketTunnelNetworkSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:81:57: error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
79 | }
80 |
81 | private static func parseRoutes(string: String) -> [NEIPv4Route] {
| | `- error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing static method
82 | return string.split(separator: ",")
83 | .map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEIPv4Route+Util.swift:19:11: error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
17 | private let routeRegex = try! NSRegularExpression(pattern: "^(?<address>\(ipPattern)):(?<subnet>\(ipPattern))$")
18 |
19 | extension NEIPv4Route {
| | `- error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
20 |
21 | /// Required to prevent invalid IP routes from being constructed, e.g. 0.0.0.0:0
/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 only available in tvOS 17.0 or newer
9 | import NetworkExtension
10 |
11 | extension NEProviderStopReason: CustomStringConvertible {
| | `- error: 'NEProviderStopReason' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
12 |
13 | /// A textual representation of this instance.
/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 only available in tvOS 17.0 or newer
9 | import NetworkExtension
10 |
11 | extension NEVPNStatus: CustomStringConvertible {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
12 |
13 | /// A textual representation of this instance
/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 only available in tvOS 17.0 or newer
26 | }
27 |
28 | extension NEVPNStatus: CaseIterable {
| `- note: add '@available' attribute to enclosing extension
29 | public static var allCases: [NEVPNStatus] {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing static property
30 | return [.invalid, .disconnected, .disconnecting, .connecting, .connected, .reasserting]
31 | }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift:28:11: error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
26 | }
27 |
28 | extension NEVPNStatus: CaseIterable {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
29 | public static var allCases: [NEVPNStatus] {
30 | return [.invalid, .disconnected, .disconnecting, .connecting, .connected, .reasserting]
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-apple-tvos15.0 -disable-cross-import-overlay-search -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.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-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/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-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-tvos27.0 -target-sdk-version 27.0 -target-sdk-name appletvos27.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-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/TunnelMonitorKit.build/Debug-appletvos/TunnelMonitorKit-t.build/Objects-normal/arm64/TunnelMonitorKit.abi.json
SwiftCompile normal arm64 (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
SwiftCompile normal arm64 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 only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| | `- error: 'NEPacketTunnelNetworkSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:81:57: error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
79 | }
80 |
81 | private static func parseRoutes(string: String) -> [NEIPv4Route] {
| | `- error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing static method
82 | return string.split(separator: ",")
83 | .map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:64:31: error: 'NEPacketTunnelNetworkSettings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
| |- error: 'NEPacketTunnelNetworkSettings' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:64:31: error: 'init(tunnelRemoteAddress:)' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
| |- error: 'init(tunnelRemoteAddress:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:66:28: error: 'NEIPv4Settings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
| |- error: 'NEIPv4Settings' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
67 | ipv4Settings.includedRoutes = TMNetworkSettings.parseRoutes(string: includedRoutes)
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:66:28: error: 'init(addresses:subnetMasks:)' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
| |- error: 'init(addresses:subnetMasks:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
67 | ipv4Settings.includedRoutes = TMNetworkSettings.parseRoutes(string: includedRoutes)
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:67:22: error: 'includedRoutes' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
66 | let ipv4Settings = NEIPv4Settings(addresses: [tunnelAddress], subnetMasks: [tunnelSubnet])
67 | ipv4Settings.includedRoutes = TMNetworkSettings.parseRoutes(string: includedRoutes)
| |- error: 'includedRoutes' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
69 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:68:22: error: 'excludedRoutes' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
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 only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
69 |
70 | networkSettings.ipv4Settings = ipv4Settings
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:70:25: error: 'ipv4Settings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
68 | ipv4Settings.excludedRoutes = TMNetworkSettings.parseRoutes(string: excludedRoutes)
69 |
70 | networkSettings.ipv4Settings = ipv4Settings
| |- error: 'ipv4Settings' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
71 |
72 | if let overheadBytes = tunnelOverheadBytes {
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:73:29: error: 'tunnelOverheadBytes' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
71 |
72 | if let overheadBytes = tunnelOverheadBytes {
73 | networkSettings.tunnelOverheadBytes = NSNumber(value: overheadBytes)
| |- error: 'tunnelOverheadBytes' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:75:25: error: 'mtu' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
73 | networkSettings.tunnelOverheadBytes = NSNumber(value: overheadBytes)
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
| |- error: 'mtu' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
77 |
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:76:25: error: 'dnsSettings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
| |- error: 'dnsSettings' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
77 |
78 | return networkSettings
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:76:39: error: 'NEDNSSettings' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
| |- error: 'NEDNSSettings' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
77 |
78 | return networkSettings
/Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/TunnelConfiguration/PacketTunnelConfiguration.swift:76:39: error: 'init(servers:)' is only available in tvOS 17.0 or newer
36 | /// configuration. See the `configureTunnel` method of `TMPacketTunnelProvider`. It is invoked when mock or native
37 | /// providers are started by a `TMPacketTunnelProviderManager`.
38 | public struct TMNetworkSettings: Codable {
| `- note: add '@available' attribute to enclosing struct
39 | let tunnelRemoteAddress: String
40 | let includedRoutes, excludedRoutes: String
:
61 |
62 | /// Constructs a settings object to be consumed by the VPN extension.
63 | public var packetTunnelNetworkSettings: NEPacketTunnelNetworkSettings {
| `- note: add '@available' attribute to enclosing property
64 | let networkSettings = NEPacketTunnelNetworkSettings(tunnelRemoteAddress: tunnelRemoteAddress)
65 |
:
74 | }
75 | networkSettings.mtu = NSNumber(value: mtu)
76 | networkSettings.dnsSettings = NEDNSSettings(servers: dns.components(separatedBy: ","))
| |- error: 'init(servers:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
77 |
78 | return networkSettings
SwiftCompile normal arm64 /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 /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 Compiling\ NEProviderStopReason+StringConvertible.swift,\ NEVPNStatus+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 (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
/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 only available in tvOS 17.0 or newer
9 | import NetworkExtension
10 |
11 | extension NEProviderStopReason: CustomStringConvertible {
| | `- error: 'NEProviderStopReason' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
12 |
13 | /// A textual representation of this instance.
/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 only available in tvOS 17.0 or newer
9 | import NetworkExtension
10 |
11 | extension NEVPNStatus: CustomStringConvertible {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
12 |
13 | /// A textual representation of this instance
/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 only available in tvOS 17.0 or newer
26 | }
27 |
28 | extension NEVPNStatus: CaseIterable {
| `- note: add '@available' attribute to enclosing extension
29 | public static var allCases: [NEVPNStatus] {
| | `- error: 'NEVPNStatus' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing static property
30 | return [.invalid, .disconnected, .disconnecting, .connecting, .connected, .reasserting]
31 | }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEProviderStopReason+StringConvertible.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile NEProviderStopReason+StringConvertible.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NEVPNStatus+Util.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile NEVPNStatus+Util.swift
SwiftCompile normal arm64 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 /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 /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 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 only available in tvOS 17.0 or newer
17 | private let routeRegex = try! NSRegularExpression(pattern: "^(?<address>\(ipPattern)):(?<subnet>\(ipPattern))$")
18 |
19 | extension NEIPv4Route {
| | `- error: 'NEIPv4Route' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
20 |
21 | /// Required to prevent invalid IP routes from being constructed, e.g. 0.0.0.0:0
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\ 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\ NSTextCheckingResult+Util.swift /Users/admin/builder/spi-builder-workspace/Sources/TunnelMonitorKit/Util/NSTextCheckingResult+Util.swift (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64 /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/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
2026-09-20 12:05:13.056 xcodebuild[722:4546] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
SwiftEmitModule normal arm64 Emitting\ module\ for\ TunnelMonitorKit (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
SwiftCompile normal arm64 (in target 'TunnelMonitorKit' from project 'TunnelMonitorKit')
Building workspace TunnelMonitorKit with scheme TunnelMonitorKit
(3 failures)
BUILD FAILURE 6.4 tvOS