The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of SwiftUPnP, reference v1.1.0 (ca29e2), with Swift 6.2 (beta) for macOS (SPM) on 20 Jun 2025 20:38:36 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/katoemba/SwiftUPnP.git
Reference: v1.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/katoemba/SwiftUPnP
 * tag               v1.1.0     -> FETCH_HEAD
HEAD is now at ca29e25 Updated to swift tools version 5.9.
Cloned https://github.com/katoemba/SwiftUPnP.git
Revision (git rev-parse @):
ca29e25e0604c87009768d73a8e8490796054831
SUCCESS checkout https://github.com/katoemba/SwiftUPnP.git at v1.1.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/katoemba/SwiftUPnP.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Building for debugging...
[0/11] Write sources
[1/11] Write UPnPCodeGenerator-entitlement.plist
[4/11] Write sources
[5/11] Write swift-version-1EA4D86E10B52AF.txt
[6/76] Compiling CocoaAsyncSocket GCDAsyncSocket.m
[7/76] Compiling CocoaAsyncSocket GCDAsyncUdpSocket.m
[9/76] Emitting module XMLCoder
[10/76] Compiling XMLCoder DateBox.swift
[11/76] Compiling XMLCoder DecimalBox.swift
[12/76] Compiling XMLCoder DoubleBox.swift
[13/76] Compiling XMLCoder FloatBox.swift
[14/76] Compiling XMLCoder IntBox.swift
[15/81] Compiling XMLCoder XMLDecoder.swift
[16/81] Compiling XMLCoder XMLDecoderImplementation.swift
[17/81] Compiling XMLCoder XMLDecodingStorage.swift
[18/81] Compiling XMLCoder XMLKeyedDecodingContainer.swift
[19/81] Compiling XMLCoder XMLUnkeyedDecodingContainer.swift
[20/81] Compiling XMLCoder XMLStackParser.swift
[21/81] Compiling XMLCoder DecodingErrorExtension.swift
[22/81] Compiling XMLCoder DynamicNodeDecoding.swift
[23/81] Compiling XMLCoder SingleValueDecodingContainer.swift
[24/81] Compiling XMLCoder XMLChoiceDecodingContainer.swift
[25/81] Compiling XMLCoder DynamicNodeEncoding.swift
[26/81] Compiling XMLCoder EncodingErrorExtension.swift
[27/81] Compiling XMLCoder SingleValueEncodingContainer.swift
[28/81] Compiling XMLCoder XMLChoiceEncodingContainer.swift
[29/81] Compiling XMLCoder XMLEncoder.swift
[30/81] Compiling XMLCoder Attribute.swift
[31/81] Compiling XMLCoder BoolBox.swift
[32/81] Compiling XMLCoder Box.swift
[33/81] Compiling XMLCoder ChoiceBox.swift
[34/81] Compiling XMLCoder DataBox.swift
[35/81] Compiling XMLCoder KeyedStorage.swift
[36/81] Compiling XMLCoder Metatypes.swift
[37/81] Compiling XMLCoder String+Extensions.swift
[41/83] Emitting module Swifter
[42/83] Compiling XMLCoder UIntBox.swift
[43/83] Compiling XMLCoder URLBox.swift
[44/83] Compiling XMLCoder UnkeyedBox.swift
[45/83] Compiling XMLCoder ValueBox.swift
[46/83] Compiling XMLCoder Element.swift
[47/83] Compiling XMLCoder XMLChoiceCodingKey.swift
[48/83] Compiling XMLCoder XMLCoderElement.swift
[49/83] Compiling XMLCoder XMLDocumentType.swift
[50/83] Compiling XMLCoder XMLHeader.swift
[51/83] Compiling XMLCoder XMLKey.swift
[52/83] Compiling XMLCoder KeyedBox.swift
[53/83] Compiling XMLCoder NullBox.swift
[54/83] Compiling XMLCoder SharedBox.swift
[55/83] Compiling XMLCoder SingleKeyedBox.swift
[56/83] Compiling XMLCoder StringBox.swift
[57/83] Compiling XMLCoder ElementAndAttribute.swift
[58/83] Compiling XMLCoder ISO8601DateFormatter.swift
[74/83] Compiling XMLCoder XMLEncoderImplementation.swift
[75/83] Compiling XMLCoder XMLEncodingStorage.swift
[76/83] Compiling XMLCoder XMLKeyedEncodingContainer.swift
[77/83] Compiling XMLCoder XMLReferencingEncoder.swift
[78/83] Compiling XMLCoder XMLUnkeyedEncodingContainer.swift
[79/87] Compiling Swifter String+SHA1.swift
[80/87] Compiling Swifter WebSockets.swift
[81/117] Compiling UPnPCodeGenerator ServiceDefinition.swift
[82/117] Compiling UPnPCodeGenerator SourceGenerator.swift
[83/117] Emitting module UPnPCodeGenerator
[84/117] Compiling UPnPCodeGenerator main.swift
[84/117] Write Objects.LinkFileList
[85/117] Linking UPnPCodeGenerator
[86/117] Applying UPnPCodeGenerator
[88/117] Compiling SwiftUPnP XMLParserSupport.swift
[89/117] Compiling SwiftUPnP UPnPDevice.swift
[90/117] Compiling SwiftUPnP UPnPDeviceDefinition.swift
[91/120] Compiling SwiftUPnP OpenHomeVolume2Service.swift
[92/120] Compiling SwiftUPnP SSDPCocoaAsyncSocketDiscovery.swift
[93/120] Compiling SwiftUPnP SSDPDiscovery.swift
[94/120] Compiling SwiftUPnP UPnPRegistry.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:260:31: warning: capture of 'self' with non-sendable type 'UPnPService?' in a '@Sendable' closure [#SendableClosureCaptures]
 30 | import os.log
 31 |
 32 | public class UPnPService: Equatable, Identifiable, Hashable {
    |              `- note: class 'UPnPService' does not conform to the 'Sendable' protocol
 33 |     public enum SubscriptionStatus {
 34 |         case unsubscribed
    :
258 |                 Logger.swiftUPnP.debug("Will renew sid: \(subscriptionId) at: \(Date(timeIntervalSinceNow: Double(timeout - 10)))")
259 |                 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now().advanced(by: .seconds(timeout - 10))) { [weak self] in
260 |                     guard let self else { return }
    |                               `- warning: capture of 'self' with non-sendable type 'UPnPService?' in a '@Sendable' closure [#SendableClosureCaptures]
261 |                     Task {
262 |                         await self.renewSubscriptionToEvents()
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[95/120] Compiling SwiftUPnP UPnPService.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:260:31: warning: capture of 'self' with non-sendable type 'UPnPService?' in a '@Sendable' closure [#SendableClosureCaptures]
 30 | import os.log
 31 |
 32 | public class UPnPService: Equatable, Identifiable, Hashable {
    |              `- note: class 'UPnPService' does not conform to the 'Sendable' protocol
 33 |     public enum SubscriptionStatus {
 34 |         case unsubscribed
    :
258 |                 Logger.swiftUPnP.debug("Will renew sid: \(subscriptionId) at: \(Date(timeIntervalSinceNow: Double(timeout - 10)))")
259 |                 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now().advanced(by: .seconds(timeout - 10))) { [weak self] in
260 |                     guard let self else { return }
    |                               `- warning: capture of 'self' with non-sendable type 'UPnPService?' in a '@Sendable' closure [#SendableClosureCaptures]
261 |                     Task {
262 |                         await self.renewSubscriptionToEvents()
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[96/120] Compiling SwiftUPnP UPnPServiceDefinition.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:260:31: warning: capture of 'self' with non-sendable type 'UPnPService?' in a '@Sendable' closure [#SendableClosureCaptures]
 30 | import os.log
 31 |
 32 | public class UPnPService: Equatable, Identifiable, Hashable {
    |              `- note: class 'UPnPService' does not conform to the 'Sendable' protocol
 33 |     public enum SubscriptionStatus {
 34 |         case unsubscribed
    :
258 |                 Logger.swiftUPnP.debug("Will renew sid: \(subscriptionId) at: \(Date(timeIntervalSinceNow: Double(timeout - 10)))")
259 |                 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now().advanced(by: .seconds(timeout - 10))) { [weak self] in
260 |                     guard let self else { return }
    |                               `- warning: capture of 'self' with non-sendable type 'UPnPService?' in a '@Sendable' closure [#SendableClosureCaptures]
261 |                     Task {
262 |                         await self.renewSubscriptionToEvents()
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[97/120] Compiling SwiftUPnP SSDPNetworkDiscovery.swift
[98/120] Compiling SwiftUPnP UserAgentGenerator.swift
[99/120] Compiling SwiftUPnP IPHelper.swift
[100/120] Compiling SwiftUPnP OpenHomeRadio1Service.swift
[101/120] Compiling SwiftUPnP OpenHomeReceiver1Service.swift
[102/120] Compiling SwiftUPnP OpenHomeSender1Service.swift
[103/120] Compiling SwiftUPnP OpenHomeTime1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/OpenHome Profile/OpenHomeTransport1Service.swift:176:117: warning: keyword 'repeat' does not need to be escaped in argument list
174 | 			var action: SoapAction
175 | 		}
176 | 		try await post(action: "SetRepeat", envelope: Envelope(body: Body(action: SoapAction(urn: Attribute(serviceType), `repeat`: `repeat`))), log: log)
    |                                                                                                                     `- warning: keyword 'repeat' does not need to be escaped in argument list
177 | 	}
178 |
[104/120] Compiling SwiftUPnP OpenHomeTransport1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/OpenHome Profile/OpenHomeTransport1Service.swift:176:117: warning: keyword 'repeat' does not need to be escaped in argument list
174 | 			var action: SoapAction
175 | 		}
176 | 		try await post(action: "SetRepeat", envelope: Envelope(body: Body(action: SoapAction(urn: Attribute(serviceType), `repeat`: `repeat`))), log: log)
    |                                                                                                                     `- warning: keyword 'repeat' does not need to be escaped in argument list
177 | 	}
178 |
[105/120] Compiling SwiftUPnP OpenHomeVolume1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/OpenHome Profile/OpenHomeTransport1Service.swift:176:117: warning: keyword 'repeat' does not need to be escaped in argument list
174 | 			var action: SoapAction
175 | 		}
176 | 		try await post(action: "SetRepeat", envelope: Envelope(body: Body(action: SoapAction(urn: Attribute(serviceType), `repeat`: `repeat`))), log: log)
    |                                                                                                                     `- warning: keyword 'repeat' does not need to be escaped in argument list
177 | 	}
178 |
[106/120] Emitting module SwiftUPnP
/Users/admin/builder/spi-builder-workspace/Source/Profiles/OpenHome Profile/OpenHomeTransport1Service.swift:176:117: warning: keyword 'repeat' does not need to be escaped in argument list
174 | 			var action: SoapAction
175 | 		}
176 | 		try await post(action: "SetRepeat", envelope: Envelope(body: Body(action: SoapAction(urn: Attribute(serviceType), `repeat`: `repeat`))), log: log)
    |                                                                                                                     `- warning: keyword 'repeat' does not need to be escaped in argument list
177 | 	}
178 |
[107/120] Compiling SwiftUPnP AVTransport1Service.swift
[108/120] Compiling SwiftUPnP ConnectionManager1Service.swift
[109/120] Compiling SwiftUPnP ContentDirectory1Service+DIDL.swift
[110/120] Compiling SwiftUPnP ContentDirectory1Service.swift
[111/120] Compiling SwiftUPnP OpenHomePlaylistManager1Service.swift
[112/120] Compiling SwiftUPnP OpenHomeProduct1Service.swift
[113/120] Compiling SwiftUPnP OpenHomeProduct2Service.swift
[114/120] Compiling SwiftUPnP RenderingControl1Service.swift
[115/120] Compiling SwiftUPnP OpenHomeConfig1Service.swift
[116/120] Compiling SwiftUPnP OpenHomeCredentials1Service.swift
[117/120] Compiling SwiftUPnP OpenHomeInfo1Service.swift
[118/120] Compiling SwiftUPnP OpenHomePins1Service.swift
[119/120] Compiling SwiftUPnP OpenHomePlaylist1Service+DIDL.swift
[120/120] Compiling SwiftUPnP OpenHomePlaylist1Service.swift
Build complete! (23.73s)
Fetching https://github.com/httpswift/swifter
[1/6050] Fetching swifter
Fetched https://github.com/httpswift/swifter from cache (1.40s)
Fetching https://github.com/robbiehanson/CocoaAsyncSocket
[1/6425] Fetching cocoaasyncsocket
Fetched https://github.com/robbiehanson/CocoaAsyncSocket from cache (1.26s)
Fetching https://github.com/CoreOffice/XMLCoder.git
[1/10060] Fetching xmlcoder
Fetched https://github.com/CoreOffice/XMLCoder.git from cache (1.18s)
Computing version for https://github.com/CoreOffice/XMLCoder.git
Computed https://github.com/CoreOffice/XMLCoder.git at 0.17.1 (1.72s)
Creating working copy for https://github.com/robbiehanson/CocoaAsyncSocket
Working copy of https://github.com/robbiehanson/CocoaAsyncSocket resolved at master (5ddba5e)
Creating working copy for https://github.com/CoreOffice/XMLCoder.git
Working copy of https://github.com/CoreOffice/XMLCoder.git resolved at 0.17.1
Creating working copy for https://github.com/httpswift/swifter
Working copy of https://github.com/httpswift/swifter 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"
    },
    {
      "identity" : "cocoaasyncsocket",
      "requirement" : {
        "branch" : [
          "master"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/robbiehanson/CocoaAsyncSocket"
    }
  ],
  "manifest_display_name" : "SwiftUPnP",
  "name" : "SwiftUPnP",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "12.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" : "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/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/XMLParserSupport.swift",
        "UPnP/UPnPDevice.swift",
        "UPnP/UPnPDeviceDefinition.swift",
        "UPnP/UPnPRegistry.swift",
        "UPnP/UPnPService.swift",
        "UPnP/UPnPServiceDefinition.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.