The Swift Package Index logo.Swift Package Index

Build Information

Successful build of SwiftUPnP, reference main (333d65), with Swift 6.1 for macOS (SPM) on 16 Jan 2026 02:57:53 UTC.

Swift 6 data race errors: 4

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/katoemba/SwiftUPnP.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/katoemba/SwiftUPnP
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 333d651 Support reanimation of devices with event handling.
Cloned https://github.com/katoemba/SwiftUPnP.git
Revision (git rev-parse @):
333d651502a793e8484437d1f6108850cbdf4658
SUCCESS checkout https://github.com/katoemba/SwiftUPnP.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/katoemba/SwiftUPnP.git
https://github.com/katoemba/SwiftUPnP.git
{
  "dependencies" : [
    {
      "identity" : "xmlcoder",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.13.1",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/CoreOffice/XMLCoder.git"
    },
    {
      "identity" : "swifter",
      "requirement" : {
        "branch" : [
          "stable"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/httpswift/swifter.git"
    },
    {
      "identity" : "cocoaasyncsocket",
      "requirement" : {
        "branch" : [
          "master"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/robbiehanson/CocoaAsyncSocket.git"
    },
    {
      "identity" : "mocker",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.0.0",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/WeTransfer/Mocker.git"
    }
  ],
  "manifest_display_name" : "SwiftUPnP",
  "name" : "SwiftUPnP",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "watchos",
      "version" : "10.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftUPnP",
      "targets" : [
        "SwiftUPnP"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "UPnPCodeGenerator",
      "targets" : [
        "UPnPCodeGenerator"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "UPnPCodeGenerator",
      "module_type" : "SwiftTarget",
      "name" : "UPnPCodeGenerator",
      "path" : "CodeGenerator",
      "product_dependencies" : [
        "XMLCoder"
      ],
      "product_memberships" : [
        "UPnPCodeGenerator"
      ],
      "sources" : [
        "ServiceDefinition.swift",
        "SourceGenerator.swift",
        "main.swift"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "SwiftUPnPTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftUPnPTests",
      "path" : "Tests/SwiftUPnPTests",
      "product_dependencies" : [
        "Mocker"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/AVTransport1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/ConnectionManager1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/ContentDirectory1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/MediaServerDevice.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeConfig1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeCredentials1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeInfo1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeOAuth1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePins1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePlaylist1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePlaylistManager1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeProduct1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeProduct2Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeRadio1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeReceiver1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeRendererDevice.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeSender1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeTime1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeTransport1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeVolume1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeVolume2Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/RenderingControl1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "SwiftUPnPTests.swift"
      ],
      "target_dependencies" : [
        "SwiftUPnP"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftUPnP",
      "module_type" : "SwiftTarget",
      "name" : "SwiftUPnP",
      "path" : "Source",
      "product_dependencies" : [
        "XMLCoder",
        "Swifter",
        "CocoaAsyncSocket"
      ],
      "product_memberships" : [
        "SwiftUPnP"
      ],
      "sources" : [
        "Profiles/AV Profile/AVTransport1Service.swift",
        "Profiles/AV Profile/ConnectionManager1Service.swift",
        "Profiles/AV Profile/ContentDirectory1Service+DIDL.swift",
        "Profiles/AV Profile/ContentDirectory1Service.swift",
        "Profiles/AV Profile/RenderingControl1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeConfig1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeCredentials1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeInfo1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeOAuth1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePins1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service+DIDL.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylistManager1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct2Service.swift",
        "Profiles/OpenHome Profile/OpenHomeRadio1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeReceiver1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeSender1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTime1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTransport1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume2Service.swift",
        "SSDP/SSDPCocoaAsyncSocketDiscovery.swift",
        "SSDP/SSDPDiscovery.swift",
        "SSDP/SSDPNetworkDiscovery.swift",
        "SSDP/UserAgentGenerator.swift",
        "Support/IPHelper.swift",
        "Support/Publisher+Stream.swift",
        "Support/XMLParserSupport.swift",
        "UPnP/UPnPDevice.swift",
        "UPnP/UPnPDeviceDefinition.swift",
        "UPnP/UPnPRegistry.swift",
        "UPnP/UPnPService.swift",
        "UPnP/UPnPServiceDefinition.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/11] Write UPnPCodeGenerator-entitlement.plist
[0/11] Write sources
[5/11] Write swift-version-2F0A5646E1D333AE.txt
[6/77] Compiling CocoaAsyncSocket GCDAsyncSocket.m
[7/77] Compiling CocoaAsyncSocket GCDAsyncUdpSocket.m
[9/77] Compiling XMLCoder ISO8601DateFormatter.swift
[10/77] Compiling XMLCoder KeyedStorage.swift
[11/79] Compiling XMLCoder UIntBox.swift
[12/79] Compiling XMLCoder URLBox.swift
[13/79] Compiling XMLCoder SingleKeyedBox.swift
[14/79] Compiling XMLCoder StringBox.swift
[15/79] Compiling XMLCoder Box.swift
[16/79] Compiling XMLCoder ChoiceBox.swift
[17/79] Compiling XMLCoder DynamicNodeEncoding.swift
[18/79] Compiling XMLCoder EncodingErrorExtension.swift
[19/79] Compiling XMLCoder SingleValueEncodingContainer.swift
[20/79] Compiling XMLCoder XMLChoiceEncodingContainer.swift
[21/79] Compiling XMLCoder XMLEncoder.swift
[22/79] Compiling XMLCoder NullBox.swift
[23/79] Compiling XMLCoder SharedBox.swift
[27/84] Emitting module XMLCoder
[28/84] Compiling XMLCoder Attribute.swift
[29/84] Compiling XMLCoder BoolBox.swift
[32/84] Compiling XMLCoder DataBox.swift
[33/84] Compiling XMLCoder DateBox.swift
[34/84] Compiling XMLCoder XMLStackParser.swift
[35/84] Compiling XMLCoder DecodingErrorExtension.swift
[36/84] Compiling XMLCoder DynamicNodeDecoding.swift
[37/84] Compiling XMLCoder SingleValueDecodingContainer.swift
[38/84] Compiling XMLCoder XMLChoiceDecodingContainer.swift
[39/84] Compiling XMLCoder XMLDecoder.swift
[40/84] Compiling XMLCoder XMLDecoderImplementation.swift
[41/84] Compiling XMLCoder XMLDecodingStorage.swift
[42/84] Compiling XMLCoder XMLKeyedDecodingContainer.swift
[43/84] Compiling XMLCoder XMLUnkeyedDecodingContainer.swift
[48/84] Compiling XMLCoder Element.swift
[49/84] Compiling XMLCoder ElementAndAttribute.swift
[50/84] Emitting module Swifter
[51/84] Compiling XMLCoder UnkeyedBox.swift
[52/84] Compiling XMLCoder ValueBox.swift
[62/84] Compiling Swifter String+SHA1.swift
[63/84] Compiling Swifter WebSockets.swift
[64/84] Compiling XMLCoder Utils.swift
[65/84] Compiling XMLCoder DecimalBox.swift
[66/84] Compiling XMLCoder DoubleBox.swift
[67/84] Compiling XMLCoder FloatBox.swift
[68/84] Compiling XMLCoder IntBox.swift
[69/84] Compiling XMLCoder KeyedBox.swift
[70/84] Compiling XMLCoder XMLChoiceCodingKey.swift
[71/84] Compiling XMLCoder XMLCoderElement.swift
[72/84] Compiling XMLCoder XMLDocumentType.swift
[73/84] Compiling XMLCoder XMLHeader.swift
[74/84] Compiling XMLCoder XMLKey.swift
[75/84] Compiling XMLCoder XMLEncoderImplementation.swift
[76/84] Compiling XMLCoder XMLEncodingStorage.swift
[77/84] Compiling XMLCoder XMLKeyedEncodingContainer.swift
[78/84] Compiling XMLCoder XMLReferencingEncoder.swift
[79/84] Compiling XMLCoder XMLUnkeyedEncodingContainer.swift
[82/120] Compiling UPnPCodeGenerator main.swift
[83/120] Compiling UPnPCodeGenerator ServiceDefinition.swift
[84/120] Compiling UPnPCodeGenerator SourceGenerator.swift
[85/120] Emitting module UPnPCodeGenerator
[85/120] Write Objects.LinkFileList
[86/120] Linking UPnPCodeGenerator
[87/120] Applying UPnPCodeGenerator
[89/120] Compiling SwiftUPnP UserAgentGenerator.swift
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:40:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 |             }
39 |             continuation.onTermination = { continuation in
40 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
41 |             }
42 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:29:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
27 |
28 | import Foundation
29 | import Combine
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
30 |
31 | internal extension Publisher where Failure == Never {
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:60:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 |             }
59 |             continuation.onTermination = { continuation in
60 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 |             }
62 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:37:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
35 |                 continuation.finish()
36 |             } receiveValue: { value in
37 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
38 |             }
39 |             continuation.onTermination = { continuation in
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:57:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
55 |                 }
56 |             } receiveValue: { value in
57 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
58 |             }
59 |             continuation.onTermination = { continuation in
[90/120] Compiling SwiftUPnP IPHelper.swift
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:40:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 |             }
39 |             continuation.onTermination = { continuation in
40 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
41 |             }
42 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:29:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
27 |
28 | import Foundation
29 | import Combine
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
30 |
31 | internal extension Publisher where Failure == Never {
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:60:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 |             }
59 |             continuation.onTermination = { continuation in
60 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 |             }
62 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:37:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
35 |                 continuation.finish()
36 |             } receiveValue: { value in
37 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
38 |             }
39 |             continuation.onTermination = { continuation in
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:57:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
55 |                 }
56 |             } receiveValue: { value in
57 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
58 |             }
59 |             continuation.onTermination = { continuation in
[91/120] Compiling SwiftUPnP Publisher+Stream.swift
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:40:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 |             }
39 |             continuation.onTermination = { continuation in
40 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
41 |             }
42 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:29:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
27 |
28 | import Foundation
29 | import Combine
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
30 |
31 | internal extension Publisher where Failure == Never {
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:60:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 |             }
59 |             continuation.onTermination = { continuation in
60 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 |             }
62 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:37:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
35 |                 continuation.finish()
36 |             } receiveValue: { value in
37 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
38 |             }
39 |             continuation.onTermination = { continuation in
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:57:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
55 |                 }
56 |             } receiveValue: { value in
57 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
58 |             }
59 |             continuation.onTermination = { continuation in
[92/123] Compiling SwiftUPnP UPnPRegistry.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | import os.log
 31 |
 32 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 33 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:103:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
101 |         }
102 |
103 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
104 |             await startHTTPServerIfNotRunning()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
105 |             try discoveryEngine.startDiscovery(forTypes: filteredTypes)
106 |             discoveryEngine.searchRequest()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:104:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
102 |
103 |         Task {
104 |             await startHTTPServerIfNotRunning()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startHTTPServerIfNotRunning()' risks causing data races between main actor-isolated and local nonisolated uses
105 |             try discoveryEngine.startDiscovery(forTypes: filteredTypes)
    |                 `- note: access can happen concurrently
106 |             discoveryEngine.searchRequest()
107 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:111:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
109 |
110 |     public func stopDiscovery() {
111 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
112 |             await stopHTTPServer()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
113 |             await MainActor.run {
114 |                 devices.removeAll(keepingCapacity: false)
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:112:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
110 |     public func stopDiscovery() {
111 |         Task {
112 |             await stopHTTPServer()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'stopHTTPServer()' risks causing data races between main actor-isolated and local nonisolated uses
113 |             await MainActor.run {
    |                                 `- note: access can happen concurrently
114 |                 devices.removeAll(keepingCapacity: false)
115 |             }
[93/123] Compiling SwiftUPnP UPnPService.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | import os.log
 31 |
 32 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 33 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:103:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
101 |         }
102 |
103 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
104 |             await startHTTPServerIfNotRunning()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
105 |             try discoveryEngine.startDiscovery(forTypes: filteredTypes)
106 |             discoveryEngine.searchRequest()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:104:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
102 |
103 |         Task {
104 |             await startHTTPServerIfNotRunning()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startHTTPServerIfNotRunning()' risks causing data races between main actor-isolated and local nonisolated uses
105 |             try discoveryEngine.startDiscovery(forTypes: filteredTypes)
    |                 `- note: access can happen concurrently
106 |             discoveryEngine.searchRequest()
107 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:111:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
109 |
110 |     public func stopDiscovery() {
111 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
112 |             await stopHTTPServer()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
113 |             await MainActor.run {
114 |                 devices.removeAll(keepingCapacity: false)
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:112:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
110 |     public func stopDiscovery() {
111 |         Task {
112 |             await stopHTTPServer()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'stopHTTPServer()' risks causing data races between main actor-isolated and local nonisolated uses
113 |             await MainActor.run {
    |                                 `- note: access can happen concurrently
114 |                 devices.removeAll(keepingCapacity: false)
115 |             }
[94/123] Compiling SwiftUPnP UPnPServiceDefinition.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | import os.log
 31 |
 32 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 33 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:103:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
101 |         }
102 |
103 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
104 |             await startHTTPServerIfNotRunning()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
105 |             try discoveryEngine.startDiscovery(forTypes: filteredTypes)
106 |             discoveryEngine.searchRequest()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:104:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
102 |
103 |         Task {
104 |             await startHTTPServerIfNotRunning()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startHTTPServerIfNotRunning()' risks causing data races between main actor-isolated and local nonisolated uses
105 |             try discoveryEngine.startDiscovery(forTypes: filteredTypes)
    |                 `- note: access can happen concurrently
106 |             discoveryEngine.searchRequest()
107 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:111:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
109 |
110 |     public func stopDiscovery() {
111 |         Task {
    |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
112 |             await stopHTTPServer()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
113 |             await MainActor.run {
114 |                 devices.removeAll(keepingCapacity: false)
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:112:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
110 |     public func stopDiscovery() {
111 |         Task {
112 |             await stopHTTPServer()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'stopHTTPServer()' risks causing data races between main actor-isolated and local nonisolated uses
113 |             await MainActor.run {
    |                                 `- note: access can happen concurrently
114 |                 devices.removeAll(keepingCapacity: false)
115 |             }
[95/123] Emitting module SwiftUPnP
/Users/admin/builder/spi-builder-workspace/Source/Profiles/AV Profile/ContentDirectory1Service+DIDL.swift:203:16: warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
201 |
202 |     public let res: [DIDLRes]
203 |     public let desc: [DIDLDescription]
    |                `- warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
204 |
205 |     public let `class`: String
    :
238 | }
239 |
240 | public struct DIDLDescription: Codable, DynamicNodeDecoding {
    |               `- note: consider making struct 'DIDLDescription' conform to the 'Sendable' protocol
241 |     enum CodingKeys: String, CodingKey {
242 |         case id
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | import os.log
 31 |
 32 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 33 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
[96/123] Compiling SwiftUPnP AVTransport1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/AV Profile/ContentDirectory1Service+DIDL.swift:203:16: warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
201 |
202 |     public let res: [DIDLRes]
203 |     public let desc: [DIDLDescription]
    |                `- warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
204 |
205 |     public let `class`: String
    :
238 | }
239 |
240 | public struct DIDLDescription: Codable, DynamicNodeDecoding {
    |               `- note: consider making struct 'DIDLDescription' conform to the 'Sendable' protocol
241 |     enum CodingKeys: String, CodingKey {
242 |         case id
[97/123] Compiling SwiftUPnP ConnectionManager1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/AV Profile/ContentDirectory1Service+DIDL.swift:203:16: warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
201 |
202 |     public let res: [DIDLRes]
203 |     public let desc: [DIDLDescription]
    |                `- warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
204 |
205 |     public let `class`: String
    :
238 | }
239 |
240 | public struct DIDLDescription: Codable, DynamicNodeDecoding {
    |               `- note: consider making struct 'DIDLDescription' conform to the 'Sendable' protocol
241 |     enum CodingKeys: String, CodingKey {
242 |         case id
[98/123] Compiling SwiftUPnP ContentDirectory1Service+DIDL.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/AV Profile/ContentDirectory1Service+DIDL.swift:203:16: warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
201 |
202 |     public let res: [DIDLRes]
203 |     public let desc: [DIDLDescription]
    |                `- warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
204 |
205 |     public let `class`: String
    :
238 | }
239 |
240 | public struct DIDLDescription: Codable, DynamicNodeDecoding {
    |               `- note: consider making struct 'DIDLDescription' conform to the 'Sendable' protocol
241 |     enum CodingKeys: String, CodingKey {
242 |         case id
[99/123] Compiling SwiftUPnP ContentDirectory1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/AV Profile/ContentDirectory1Service+DIDL.swift:203:16: warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
201 |
202 |     public let res: [DIDLRes]
203 |     public let desc: [DIDLDescription]
    |                `- warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
204 |
205 |     public let `class`: String
    :
238 | }
239 |
240 | public struct DIDLDescription: Codable, DynamicNodeDecoding {
    |               `- note: consider making struct 'DIDLDescription' conform to the 'Sendable' protocol
241 |     enum CodingKeys: String, CodingKey {
242 |         case id
[100/123] Compiling SwiftUPnP SSDPCocoaAsyncSocketDiscovery.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:50:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
48 |                 Logger.swiftUPnP.error("\(error.localizedDescription)")
49 |             case .cancelled:
50 |                 self?.multicastGroup = nil
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
51 |                 self?.connectionGroup = nil
52 |             default:
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:58:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
56 |         connectionGroup.setReceiveHandler(maximumMessageSize: 65535, rejectOversizedMessages: true) { (message, content, isComplete) in
57 |             if let content = content {
58 |                 self.processData(content)
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
59 |             }
60 |         }
[101/123] Compiling SwiftUPnP SSDPDiscovery.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:50:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
48 |                 Logger.swiftUPnP.error("\(error.localizedDescription)")
49 |             case .cancelled:
50 |                 self?.multicastGroup = nil
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
51 |                 self?.connectionGroup = nil
52 |             default:
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:58:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
56 |         connectionGroup.setReceiveHandler(maximumMessageSize: 65535, rejectOversizedMessages: true) { (message, content, isComplete) in
57 |             if let content = content {
58 |                 self.processData(content)
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
59 |             }
60 |         }
[102/123] Compiling SwiftUPnP SSDPNetworkDiscovery.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:50:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
48 |                 Logger.swiftUPnP.error("\(error.localizedDescription)")
49 |             case .cancelled:
50 |                 self?.multicastGroup = nil
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
51 |                 self?.connectionGroup = nil
52 |             default:
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:58:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
56 |         connectionGroup.setReceiveHandler(maximumMessageSize: 65535, rejectOversizedMessages: true) { (message, content, isComplete) in
57 |             if let content = content {
58 |                 self.processData(content)
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
59 |             }
60 |         }
[103/123] Compiling SwiftUPnP OpenHomeReceiver1Service.swift
[104/123] Compiling SwiftUPnP OpenHomeSender1Service.swift
[105/123] Compiling SwiftUPnP OpenHomeTime1Service.swift
[106/123] Compiling SwiftUPnP OpenHomeTransport1Service.swift
[107/123] Compiling SwiftUPnP OpenHomeVolume1Service.swift
[108/123] Compiling SwiftUPnP OpenHomeVolume2Service.swift
[109/123] Compiling SwiftUPnP RenderingControl1Service.swift
[110/123] Compiling SwiftUPnP OpenHomeConfig1Service.swift
[111/123] Compiling SwiftUPnP OpenHomeCredentials1Service.swift
[112/123] Compiling SwiftUPnP OpenHomeInfo1Service.swift
[113/123] Compiling SwiftUPnP OpenHomeOAuth1Service.swift
[114/123] Compiling SwiftUPnP OpenHomePins1Service.swift
[115/123] Compiling SwiftUPnP OpenHomePlaylist1Service+DIDL.swift
[116/123] Compiling SwiftUPnP OpenHomePlaylist1Service.swift
[117/123] Compiling SwiftUPnP XMLParserSupport.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:159:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
157 |
158 |                 await service.loadScdp()
159 |                 await add(service)
    |                       |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                       |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'add' risks causing data races between main actor-isolated and local nonisolated uses
    |                       `- note: access can happen concurrently
160 |             }
161 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:106:25: warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
104 |         let device = UPnPDevice(upnpDeviceDescription: upnpDeviceDescription)
105 |
106 |         if await device.loadServices(registry: registry) {
    |                         |- warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: sending main actor-isolated 'registry' to nonisolated instance method 'loadServices(registry:)' risks causing data races between nonisolated and main actor-isolated uses
107 |             device.servicesLoaded = true
108 |
[118/123] Compiling SwiftUPnP UPnPDevice.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:159:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
157 |
158 |                 await service.loadScdp()
159 |                 await add(service)
    |                       |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                       |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'add' risks causing data races between main actor-isolated and local nonisolated uses
    |                       `- note: access can happen concurrently
160 |             }
161 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:106:25: warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
104 |         let device = UPnPDevice(upnpDeviceDescription: upnpDeviceDescription)
105 |
106 |         if await device.loadServices(registry: registry) {
    |                         |- warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: sending main actor-isolated 'registry' to nonisolated instance method 'loadServices(registry:)' risks causing data races between nonisolated and main actor-isolated uses
107 |             device.servicesLoaded = true
108 |
[119/123] Compiling SwiftUPnP UPnPDeviceDefinition.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:159:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
157 |
158 |                 await service.loadScdp()
159 |                 await add(service)
    |                       |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                       |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'add' risks causing data races between main actor-isolated and local nonisolated uses
    |                       `- note: access can happen concurrently
160 |             }
161 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:106:25: warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
104 |         let device = UPnPDevice(upnpDeviceDescription: upnpDeviceDescription)
105 |
106 |         if await device.loadServices(registry: registry) {
    |                         |- warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: sending main actor-isolated 'registry' to nonisolated instance method 'loadServices(registry:)' risks causing data races between nonisolated and main actor-isolated uses
107 |             device.servicesLoaded = true
108 |
[120/123] Compiling SwiftUPnP OpenHomePlaylistManager1Service.swift
[121/123] Compiling SwiftUPnP OpenHomeProduct1Service.swift
[122/123] Compiling SwiftUPnP OpenHomeProduct2Service.swift
[123/123] Compiling SwiftUPnP OpenHomeRadio1Service.swift
Build complete! (29.45s)
Fetching https://github.com/httpswift/swifter.git
[1/6050] Fetching swifter
Fetched https://github.com/httpswift/swifter.git from cache (1.61s)
Fetching https://github.com/robbiehanson/CocoaAsyncSocket.git
[1/6430] Fetching cocoaasyncsocket
Fetched https://github.com/robbiehanson/CocoaAsyncSocket.git from cache (1.36s)
Fetching https://github.com/WeTransfer/Mocker.git
Fetching https://github.com/CoreOffice/XMLCoder.git
[1/1889] Fetching mocker
[228/11971] Fetching mocker, xmlcoder
Fetched https://github.com/WeTransfer/Mocker.git from cache (2.03s)
Fetched https://github.com/CoreOffice/XMLCoder.git from cache (2.03s)
Computing version for https://github.com/WeTransfer/Mocker.git
Computed https://github.com/WeTransfer/Mocker.git at 3.0.2 (2.63s)
Computing version for https://github.com/CoreOffice/XMLCoder.git
Computed https://github.com/CoreOffice/XMLCoder.git at 0.18.0 (0.58s)
Creating working copy for https://github.com/CoreOffice/XMLCoder.git
Working copy of https://github.com/CoreOffice/XMLCoder.git resolved at 0.18.0
Creating working copy for https://github.com/WeTransfer/Mocker.git
Working copy of https://github.com/WeTransfer/Mocker.git resolved at 3.0.2
Creating working copy for https://github.com/robbiehanson/CocoaAsyncSocket.git
Working copy of https://github.com/robbiehanson/CocoaAsyncSocket.git resolved at master (5ddba5e)
Creating working copy for https://github.com/httpswift/swifter.git
Working copy of https://github.com/httpswift/swifter.git resolved at stable (1e4f51c)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "xmlcoder",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.13.1",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/CoreOffice/XMLCoder.git"
    },
    {
      "identity" : "swifter",
      "requirement" : {
        "branch" : [
          "stable"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/httpswift/swifter.git"
    },
    {
      "identity" : "cocoaasyncsocket",
      "requirement" : {
        "branch" : [
          "master"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/robbiehanson/CocoaAsyncSocket.git"
    },
    {
      "identity" : "mocker",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.0.0",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/WeTransfer/Mocker.git"
    }
  ],
  "manifest_display_name" : "SwiftUPnP",
  "name" : "SwiftUPnP",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "watchos",
      "version" : "10.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftUPnP",
      "targets" : [
        "SwiftUPnP"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "UPnPCodeGenerator",
      "targets" : [
        "UPnPCodeGenerator"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "UPnPCodeGenerator",
      "module_type" : "SwiftTarget",
      "name" : "UPnPCodeGenerator",
      "path" : "CodeGenerator",
      "product_dependencies" : [
        "XMLCoder"
      ],
      "product_memberships" : [
        "UPnPCodeGenerator"
      ],
      "sources" : [
        "ServiceDefinition.swift",
        "SourceGenerator.swift",
        "main.swift"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "SwiftUPnPTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftUPnPTests",
      "path" : "Tests/SwiftUPnPTests",
      "product_dependencies" : [
        "Mocker"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/AVTransport1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/ConnectionManager1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/ContentDirectory1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/MediaServerDevice.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeConfig1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeCredentials1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeInfo1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeOAuth1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePins1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePlaylist1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePlaylistManager1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeProduct1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeProduct2Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeRadio1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeReceiver1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeRendererDevice.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeSender1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeTime1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeTransport1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeVolume1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeVolume2Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/RenderingControl1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "SwiftUPnPTests.swift"
      ],
      "target_dependencies" : [
        "SwiftUPnP"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftUPnP",
      "module_type" : "SwiftTarget",
      "name" : "SwiftUPnP",
      "path" : "Source",
      "product_dependencies" : [
        "XMLCoder",
        "Swifter",
        "CocoaAsyncSocket"
      ],
      "product_memberships" : [
        "SwiftUPnP"
      ],
      "sources" : [
        "Profiles/AV Profile/AVTransport1Service.swift",
        "Profiles/AV Profile/ConnectionManager1Service.swift",
        "Profiles/AV Profile/ContentDirectory1Service+DIDL.swift",
        "Profiles/AV Profile/ContentDirectory1Service.swift",
        "Profiles/AV Profile/RenderingControl1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeConfig1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeCredentials1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeInfo1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeOAuth1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePins1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service+DIDL.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylistManager1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct2Service.swift",
        "Profiles/OpenHome Profile/OpenHomeRadio1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeReceiver1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeSender1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTime1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTransport1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume2Service.swift",
        "SSDP/SSDPCocoaAsyncSocketDiscovery.swift",
        "SSDP/SSDPDiscovery.swift",
        "SSDP/SSDPNetworkDiscovery.swift",
        "SSDP/UserAgentGenerator.swift",
        "Support/IPHelper.swift",
        "Support/Publisher+Stream.swift",
        "Support/XMLParserSupport.swift",
        "UPnP/UPnPDevice.swift",
        "UPnP/UPnPDeviceDefinition.swift",
        "UPnP/UPnPRegistry.swift",
        "UPnP/UPnPService.swift",
        "UPnP/UPnPServiceDefinition.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.