The Swift Package Index logo.Swift Package Index

Build Information

Successful build of CocoaMQTT, reference 2.2.4 (9a7564), with Swift 6.1 for macOS (SPM) on 27 Apr 2026 18:01:59 UTC.

Swift 6 data race errors: 3

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.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/emqx/CocoaMQTT.git
Reference: 2.2.4
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/emqx/CocoaMQTT
 * tag               2.2.4      -> FETCH_HEAD
HEAD is now at 9a75649 chore: prepare 2.2.4 release
Cloned https://github.com/emqx/CocoaMQTT.git
Revision (git rev-parse @):
9a756497f412214b9a7e9f40ea908dbd977bfaba
SUCCESS checkout https://github.com/emqx/CocoaMQTT.git at 2.2.4
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/emqx/CocoaMQTT.git
https://github.com/emqx/CocoaMQTT.git
{
  "dependencies" : [
    {
      "identity" : "starscream",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.0.8",
            "upper_bound" : "6.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/daltoniam/Starscream.git"
    },
    {
      "identity" : "mqttcocoaasyncsocket",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.8",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/leeway1208/MqttCocoaAsyncSocket"
    },
    {
      "identity" : "swiftlintplugins",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.63.2",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/SimplyDanny/SwiftLintPlugins"
    }
  ],
  "manifest_display_name" : "CocoaMQTT",
  "name" : "CocoaMQTT",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "CocoaMQTT",
      "targets" : [
        "CocoaMQTT"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "CocoaMQTTWebSocket",
      "targets" : [
        "CocoaMQTTWebSocket"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CocoaMQTTWebSocket",
      "module_type" : "SwiftTarget",
      "name" : "CocoaMQTTWebSocket",
      "path" : "Source",
      "product_dependencies" : [
        "Starscream"
      ],
      "product_memberships" : [
        "CocoaMQTTWebSocket"
      ],
      "sources" : [
        "CocoaMQTTWebSocket.swift"
      ],
      "target_dependencies" : [
        "CocoaMQTT"
      ],
      "type" : "library"
    },
    {
      "c99name" : "CocoaMQTTTests",
      "module_type" : "SwiftTarget",
      "name" : "CocoaMQTTTests",
      "path" : "CocoaMQTTTests",
      "sources" : [
        "CocoaMQTT5PublishValidationTests.swift",
        "CocoaMQTT5ReasonCodeFallbackTests.swift",
        "CocoaMQTT5ReceiveMessageContentTypeTests.swift",
        "CocoaMQTTDeliverTests.swift",
        "CocoaMQTTReaderProtocolErrorTests.swift",
        "CocoaMQTTStorageTests.swift",
        "CocoaMQTTTests.swift",
        "ConcurrentAtomicTests.swift",
        "FrameTests.swift",
        "PublicLoggerAPITests.swift",
        "ThreadSafetyRegressionTests.swift"
      ],
      "target_dependencies" : [
        "CocoaMQTT",
        "CocoaMQTTWebSocket"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CocoaMQTT",
      "module_type" : "SwiftTarget",
      "name" : "CocoaMQTT",
      "path" : "Source",
      "product_dependencies" : [
        "MqttCocoaAsyncSocket"
      ],
      "product_memberships" : [
        "CocoaMQTT",
        "CocoaMQTTWebSocket"
      ],
      "sources" : [
        "CocoaMQTT.swift",
        "CocoaMQTT5.swift",
        "CocoaMQTT5Message.swift",
        "CocoaMQTTDeliver.swift",
        "CocoaMQTTLogger.swift",
        "CocoaMQTTMessage.swift",
        "CocoaMQTTProperty.swift",
        "CocoaMQTTReader.swift",
        "CocoaMQTTReasonCode.swift",
        "CocoaMQTTSocket.swift",
        "CocoaMQTTStorage.swift",
        "CocoaMQTTTimer.swift",
        "CocoaMQTTTypes.swift",
        "Frame.swift",
        "FrameAuth.swift",
        "FrameConnAck.swift",
        "FrameConnect.swift",
        "FrameDisconnect.swift",
        "FramePingReq.swift",
        "FramePingResp.swift",
        "FramePubAck.swift",
        "FramePubComp.swift",
        "FramePubRec.swift",
        "FramePubRel.swift",
        "FramePublish.swift",
        "FrameSubAck.swift",
        "FrameSubscribe.swift",
        "FrameUnsubAck.swift",
        "FrameUnsubscribe.swift",
        "MqttAuthProperties.swift",
        "MqttConnectProperties.swift",
        "MqttDecodeConnAck.swift",
        "MqttDecodePubAck.swift",
        "MqttDecodePubComp.swift",
        "MqttDecodePubRec.swift",
        "MqttDecodePubRel.swift",
        "MqttDecodePublish.swift",
        "MqttDecodeSubAck.swift",
        "MqttDecodeUnsubAck.swift",
        "MqttPublishProperties.swift",
        "MqttSubscription.swift",
        "ThreadSafeDictionary.swift",
        "utilities/ConcurrentAtomic.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
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
[1/1] Compiling plugin SwiftLintCommandPlugin
[2/2] Compiling plugin SwiftLintBuildToolPlugin
Building for debugging...
[2/9] Copying PrivacyInfo.xcprivacy
[2/9] Write sources
[6/9] Write swift-version-2F0A5646E1D333AE.txt
[7/29] Compiling MqttCocoaAsyncSocket MGCDAsyncUdpSocket.m
[8/29] Compiling MqttCocoaAsyncSocket MGCDAsyncSocket.m
[10/69] Emitting module Starscream
[11/71] Emitting module CocoaMQTT
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 |     public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 |     #else
41 |     public static var logger = CocoaMQTTLogger()
   |                       |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |     #endif
43 |     public override init() { super.init() }
[12/75] Compiling Starscream Transport.swift
[13/75] Compiling Starscream resource_bundle_accessor.swift
[14/75] Compiling CocoaMQTT MqttDecodePubRel.swift
[15/75] Compiling CocoaMQTT MqttDecodePublish.swift
[16/75] Compiling CocoaMQTT MqttDecodeSubAck.swift
[17/75] Compiling CocoaMQTT MqttDecodeUnsubAck.swift
[18/75] Compiling CocoaMQTT FrameUnsubAck.swift
[19/75] Compiling CocoaMQTT FrameUnsubscribe.swift
[20/75] Compiling CocoaMQTT MqttAuthProperties.swift
[21/75] Compiling CocoaMQTT MqttConnectProperties.swift
[22/75] Compiling CocoaMQTT FrameConnAck.swift
[23/75] Compiling CocoaMQTT FrameConnect.swift
[24/75] Compiling CocoaMQTT FrameDisconnect.swift
[25/75] Compiling CocoaMQTT FramePingReq.swift
[26/75] Compiling CocoaMQTT CocoaMQTTMessage.swift
[27/75] Compiling CocoaMQTT CocoaMQTTProperty.swift
[28/75] Compiling CocoaMQTT CocoaMQTTReader.swift
[29/75] Compiling CocoaMQTT CocoaMQTTReasonCode.swift
[30/75] Compiling CocoaMQTT CocoaMQTTSocket.swift
[31/75] Compiling CocoaMQTT MqttPublishProperties.swift
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:17: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |              `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:34: warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |                                   `- note: consider making generic parameter 'K' conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                                  `- warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:41: warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |                                                `- note: consider making generic parameter 'V' conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                                         `- warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:63:13: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |              `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
61 |     public func removeAll() {
62 |         concurrentQueue.async(flags: .barrier) {[weak self] in
63 |             self?.dictionary.removeAll()
   |             `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
64 |         }
65 |     }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:17: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |              `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
32 |         set {
33 |             queue.async(flags: .barrier) {
34 |                 self._value = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
35 |             }
36 |         }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:31: warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |                               `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
32 |         set {
33 |             queue.async(flags: .barrier) {
34 |                 self._value = newValue
   |                               `- warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
35 |             }
36 |         }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:13: warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
68 |     public func mutate(_ transform: @escaping (inout T) -> Void) {
69 |         queue.async(flags: .barrier) {
70 |             transform(&self._value)
   |             |- warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
   |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
71 |         }
72 |     }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:24: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |              `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
68 |     public func mutate(_ transform: @escaping (inout T) -> Void) {
69 |         queue.async(flags: .barrier) {
70 |             transform(&self._value)
   |                        `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
71 |         }
72 |     }
[32/75] Compiling CocoaMQTT MqttSubscription.swift
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:17: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |              `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:34: warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |                                   `- note: consider making generic parameter 'K' conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                                  `- warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:41: warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |                                                `- note: consider making generic parameter 'V' conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                                         `- warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:63:13: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |              `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
61 |     public func removeAll() {
62 |         concurrentQueue.async(flags: .barrier) {[weak self] in
63 |             self?.dictionary.removeAll()
   |             `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
64 |         }
65 |     }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:17: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |              `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
32 |         set {
33 |             queue.async(flags: .barrier) {
34 |                 self._value = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
35 |             }
36 |         }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:31: warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |                               `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
32 |         set {
33 |             queue.async(flags: .barrier) {
34 |                 self._value = newValue
   |                               `- warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
35 |             }
36 |         }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:13: warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
68 |     public func mutate(_ transform: @escaping (inout T) -> Void) {
69 |         queue.async(flags: .barrier) {
70 |             transform(&self._value)
   |             |- warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
   |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
71 |         }
72 |     }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:24: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |              `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
68 |     public func mutate(_ transform: @escaping (inout T) -> Void) {
69 |         queue.async(flags: .barrier) {
70 |             transform(&self._value)
   |                        `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
71 |         }
72 |     }
[33/75] Compiling CocoaMQTT ThreadSafeDictionary.swift
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:17: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |              `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:34: warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |                                   `- note: consider making generic parameter 'K' conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                                  `- warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:41: warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |                                                `- note: consider making generic parameter 'V' conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                                         `- warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:63:13: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |              `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
61 |     public func removeAll() {
62 |         concurrentQueue.async(flags: .barrier) {[weak self] in
63 |             self?.dictionary.removeAll()
   |             `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
64 |         }
65 |     }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:17: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |              `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
32 |         set {
33 |             queue.async(flags: .barrier) {
34 |                 self._value = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
35 |             }
36 |         }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:31: warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |                               `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
32 |         set {
33 |             queue.async(flags: .barrier) {
34 |                 self._value = newValue
   |                               `- warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
35 |             }
36 |         }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:13: warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
68 |     public func mutate(_ transform: @escaping (inout T) -> Void) {
69 |         queue.async(flags: .barrier) {
70 |             transform(&self._value)
   |             |- warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
   |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
71 |         }
72 |     }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:24: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |              `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
68 |     public func mutate(_ transform: @escaping (inout T) -> Void) {
69 |         queue.async(flags: .barrier) {
70 |             transform(&self._value)
   |                        `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
71 |         }
72 |     }
[34/75] Compiling CocoaMQTT ConcurrentAtomic.swift
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:17: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |              `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:34: warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |                                   `- note: consider making generic parameter 'K' conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                                  `- warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:41: warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |                                                `- note: consider making generic parameter 'V' conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
41 |         set(newValue) {
42 |             concurrentQueue.async(flags: .barrier) {[weak self] in
43 |                 self?.dictionary[key] = newValue
   |                                         `- warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
44 |             }
45 |         }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:63:13: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
 6 |
 7 | /// A thread-safe dictionary
 8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
   |              `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
 9 |     private var dictionary: [K: V]
10 |     private let concurrentQueue: DispatchQueue
   :
61 |     public func removeAll() {
62 |         concurrentQueue.async(flags: .barrier) {[weak self] in
63 |             self?.dictionary.removeAll()
   |             `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
64 |         }
65 |     }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:17: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |              `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
32 |         set {
33 |             queue.async(flags: .barrier) {
34 |                 self._value = newValue
   |                 `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
35 |             }
36 |         }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:31: warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |                               `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
32 |         set {
33 |             queue.async(flags: .barrier) {
34 |                 self._value = newValue
   |                               `- warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
35 |             }
36 |         }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:13: warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
68 |     public func mutate(_ transform: @escaping (inout T) -> Void) {
69 |         queue.async(flags: .barrier) {
70 |             transform(&self._value)
   |             |- warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
   |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
71 |         }
72 |     }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:24: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
   |              `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 |     private var _value: T
21 |     private let queue: DispatchQueue
   :
68 |     public func mutate(_ transform: @escaping (inout T) -> Void) {
69 |         queue.async(flags: .barrier) {
70 |             transform(&self._value)
   |                        `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
71 |         }
72 |     }
[35/75] Compiling CocoaMQTT FramePingResp.swift
[36/75] Compiling CocoaMQTT FramePubAck.swift
[37/75] Compiling CocoaMQTT FramePubComp.swift
[38/75] Compiling CocoaMQTT FramePubRec.swift
[39/75] Compiling CocoaMQTT MqttDecodeConnAck.swift
[40/75] Compiling CocoaMQTT MqttDecodePubAck.swift
[41/75] Compiling CocoaMQTT MqttDecodePubComp.swift
[42/75] Compiling CocoaMQTT MqttDecodePubRec.swift
[43/75] Compiling CocoaMQTT CocoaMQTTStorage.swift
[46/75] Compiling CocoaMQTT Frame.swift
[47/75] Compiling CocoaMQTT FrameAuth.swift
[48/75] Compiling CocoaMQTT FramePubRel.swift
[49/75] Compiling CocoaMQTT FramePublish.swift
[50/75] Compiling CocoaMQTT FrameSubAck.swift
[51/75] Compiling CocoaMQTT FrameSubscribe.swift
[52/75] Compiling CocoaMQTT CocoaMQTT.swift
[53/75] Compiling CocoaMQTT CocoaMQTT5.swift
[54/75] Compiling CocoaMQTT CocoaMQTT5Message.swift
[69/75] Compiling CocoaMQTT CocoaMQTTDeliver.swift
[70/75] Compiling CocoaMQTT CocoaMQTTLogger.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:391:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
389 |
390 |             delegateQueue.async { [weak self] in
391 |                 guard let self = self else { return }
    |                                  `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
392 |                 self.connState = .connecting
393 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
471 |
472 |         delegateQueue.async {
473 |             self.sendingMessages[msgid] = message
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
474 |         }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:43: warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
471 |
472 |         delegateQueue.async {
473 |             self.sendingMessages[msgid] = message
    |                                           `- warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
474 |         }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift:12:14: note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTTMessage: NSObject {
   |              `- note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
13 |
14 |     public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:479:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
477 |         guard deliver.add(frame) else {
478 |             delegateQueue.async {
479 |                 self.sendingMessages.removeValue(forKey: msgid)
    |                 `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
480 |             }
481 |             return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:561:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
559 |     func __delegate_queue(_ fun: @escaping () -> Void) {
560 |         delegateQueue.async { [weak self] in
561 |             guard self != nil else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
562 |             fun()
563 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:562:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
560 |         delegateQueue.async { [weak self] in
561 |             guard self != nil else { return }
562 |             fun()
    |             |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
563 |         }
564 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:670:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
668 |                 guard let self = self else { return }
669 |                 self.delegateQueue.async {
670 |                     guard self.connState == .connected else {
    |                           `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
671 |                         self.aliveTimer = nil
672 |                         return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:392:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
390 |
391 |             delegateQueue.async { [weak self] in
392 |                 guard let self = self else { return }
    |                                  `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
393 |                 self.connState = .connecting
394 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
498 |
499 |         delegateQueue.async {
500 |             self.sendingMessages[msgid] = message
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
501 |         }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:43: warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
498 |
499 |         delegateQueue.async {
500 |             self.sendingMessages[msgid] = message
    |                                           `- warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
501 |         }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift:12:14: note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
 10 |
 11 | /// MQTT Message
 12 | public class CocoaMQTT5Message: NSObject {
    |              `- note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
 13 |
 14 |     public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:506:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
504 |         guard deliver.add(frame) else {
505 |             delegateQueue.async {
506 |                 self.sendingMessages.removeValue(forKey: msgid)
    |                 `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
507 |             }
508 |             return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:612:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
610 |     func __delegate_queue(_ fun: @escaping () -> Void) {
611 |         delegateQueue.async { [weak self] in
612 |             guard self != nil else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
613 |             fun()
614 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:613:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
611 |         delegateQueue.async { [weak self] in
612 |             guard self != nil else { return }
613 |             fun()
    |             |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
614 |         }
615 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:734:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
732 |                 guard let self = self else { return }
733 |                 self.delegateQueue.async {
734 |                     guard self.connState == .connected else {
    |                           `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
735 |                         self.aliveTimer = nil
736 |                         return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:90:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
 88 |
 89 |         deliverQueue.async { [weak self] in
 90 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 91 |             self.tryTransport()
 92 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:111:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
109 |
110 |         deliverQueue.async { [weak self] in
111 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
112 |             self.tryTransport()
113 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:136:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
134 |
135 |         deliverQueue.async { [weak self] in
136 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
137 |             let acked = self.ackInflightFrame(withMsgid: msgid, type: ackType)
138 |             if acked.count == 0 {
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:197:25: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
195 |                     guard let self = self else { return }
196 |                     self.deliverQueue.async {
197 |                         self.redeliver()
    |                         `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
198 |                     }
199 |                 }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
 10 | import Dispatch
 11 |
 12 | protocol CocoaMQTTDeliverProtocol: AnyObject {
    |          `- note: protocol 'CocoaMQTTDeliverProtocol' does not conform to the 'Sendable' protocol
 13 |
 14 |     var delegateQueue: DispatchQueue { get set }
    :
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |             `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:48: warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |                                                `- warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/Frame.swift:81:10: note: protocol 'Frame' does not conform to the 'Sendable' protocol
 79 |
 80 | /// MQTT Frame protocol
 81 | protocol Frame {
    |          `- note: protocol 'Frame' does not conform to the 'Sendable' protocol
 82 |
 83 |     /// Each MQTT Control Packet contains a fixed header
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 |     public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 |     #else
41 |     public static var logger = CocoaMQTTLogger()
   |                       |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |     #endif
43 |     public override init() { super.init() }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:391:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
389 |
390 |             delegateQueue.async { [weak self] in
391 |                 guard let self = self else { return }
    |                                  `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
392 |                 self.connState = .connecting
393 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
471 |
472 |         delegateQueue.async {
473 |             self.sendingMessages[msgid] = message
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
474 |         }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:43: warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
471 |
472 |         delegateQueue.async {
473 |             self.sendingMessages[msgid] = message
    |                                           `- warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
474 |         }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift:12:14: note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTTMessage: NSObject {
   |              `- note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
13 |
14 |     public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:479:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
477 |         guard deliver.add(frame) else {
478 |             delegateQueue.async {
479 |                 self.sendingMessages.removeValue(forKey: msgid)
    |                 `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
480 |             }
481 |             return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:561:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
559 |     func __delegate_queue(_ fun: @escaping () -> Void) {
560 |         delegateQueue.async { [weak self] in
561 |             guard self != nil else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
562 |             fun()
563 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:562:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
560 |         delegateQueue.async { [weak self] in
561 |             guard self != nil else { return }
562 |             fun()
    |             |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
563 |         }
564 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:670:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
668 |                 guard let self = self else { return }
669 |                 self.delegateQueue.async {
670 |                     guard self.connState == .connected else {
    |                           `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
671 |                         self.aliveTimer = nil
672 |                         return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:392:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
390 |
391 |             delegateQueue.async { [weak self] in
392 |                 guard let self = self else { return }
    |                                  `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
393 |                 self.connState = .connecting
394 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
498 |
499 |         delegateQueue.async {
500 |             self.sendingMessages[msgid] = message
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
501 |         }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:43: warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
498 |
499 |         delegateQueue.async {
500 |             self.sendingMessages[msgid] = message
    |                                           `- warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
501 |         }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift:12:14: note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
 10 |
 11 | /// MQTT Message
 12 | public class CocoaMQTT5Message: NSObject {
    |              `- note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
 13 |
 14 |     public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:506:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
504 |         guard deliver.add(frame) else {
505 |             delegateQueue.async {
506 |                 self.sendingMessages.removeValue(forKey: msgid)
    |                 `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
507 |             }
508 |             return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:612:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
610 |     func __delegate_queue(_ fun: @escaping () -> Void) {
611 |         delegateQueue.async { [weak self] in
612 |             guard self != nil else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
613 |             fun()
614 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:613:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
611 |         delegateQueue.async { [weak self] in
612 |             guard self != nil else { return }
613 |             fun()
    |             |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
614 |         }
615 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:734:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
732 |                 guard let self = self else { return }
733 |                 self.delegateQueue.async {
734 |                     guard self.connState == .connected else {
    |                           `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
735 |                         self.aliveTimer = nil
736 |                         return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:90:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
 88 |
 89 |         deliverQueue.async { [weak self] in
 90 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 91 |             self.tryTransport()
 92 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:111:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
109 |
110 |         deliverQueue.async { [weak self] in
111 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
112 |             self.tryTransport()
113 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:136:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
134 |
135 |         deliverQueue.async { [weak self] in
136 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
137 |             let acked = self.ackInflightFrame(withMsgid: msgid, type: ackType)
138 |             if acked.count == 0 {
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:197:25: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
195 |                     guard let self = self else { return }
196 |                     self.deliverQueue.async {
197 |                         self.redeliver()
    |                         `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
198 |                     }
199 |                 }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
 10 | import Dispatch
 11 |
 12 | protocol CocoaMQTTDeliverProtocol: AnyObject {
    |          `- note: protocol 'CocoaMQTTDeliverProtocol' does not conform to the 'Sendable' protocol
 13 |
 14 |     var delegateQueue: DispatchQueue { get set }
    :
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |             `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:48: warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |                                                `- warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/Frame.swift:81:10: note: protocol 'Frame' does not conform to the 'Sendable' protocol
 79 |
 80 | /// MQTT Frame protocol
 81 | protocol Frame {
    |          `- note: protocol 'Frame' does not conform to the 'Sendable' protocol
 82 |
 83 |     /// Each MQTT Control Packet contains a fixed header
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 |     public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 |     #else
41 |     public static var logger = CocoaMQTTLogger()
   |                       |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |     #endif
43 |     public override init() { super.init() }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:391:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
389 |
390 |             delegateQueue.async { [weak self] in
391 |                 guard let self = self else { return }
    |                                  `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
392 |                 self.connState = .connecting
393 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
471 |
472 |         delegateQueue.async {
473 |             self.sendingMessages[msgid] = message
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
474 |         }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:43: warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
471 |
472 |         delegateQueue.async {
473 |             self.sendingMessages[msgid] = message
    |                                           `- warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
474 |         }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift:12:14: note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTTMessage: NSObject {
   |              `- note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
13 |
14 |     public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:479:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
477 |         guard deliver.add(frame) else {
478 |             delegateQueue.async {
479 |                 self.sendingMessages.removeValue(forKey: msgid)
    |                 `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
480 |             }
481 |             return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:561:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
559 |     func __delegate_queue(_ fun: @escaping () -> Void) {
560 |         delegateQueue.async { [weak self] in
561 |             guard self != nil else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
562 |             fun()
563 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:562:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
560 |         delegateQueue.async { [weak self] in
561 |             guard self != nil else { return }
562 |             fun()
    |             |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
563 |         }
564 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:670:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
668 |                 guard let self = self else { return }
669 |                 self.delegateQueue.async {
670 |                     guard self.connState == .connected else {
    |                           `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
671 |                         self.aliveTimer = nil
672 |                         return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:392:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
390 |
391 |             delegateQueue.async { [weak self] in
392 |                 guard let self = self else { return }
    |                                  `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
393 |                 self.connState = .connecting
394 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
498 |
499 |         delegateQueue.async {
500 |             self.sendingMessages[msgid] = message
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
501 |         }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:43: warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
498 |
499 |         delegateQueue.async {
500 |             self.sendingMessages[msgid] = message
    |                                           `- warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
501 |         }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift:12:14: note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
 10 |
 11 | /// MQTT Message
 12 | public class CocoaMQTT5Message: NSObject {
    |              `- note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
 13 |
 14 |     public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:506:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
504 |         guard deliver.add(frame) else {
505 |             delegateQueue.async {
506 |                 self.sendingMessages.removeValue(forKey: msgid)
    |                 `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
507 |             }
508 |             return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:612:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
610 |     func __delegate_queue(_ fun: @escaping () -> Void) {
611 |         delegateQueue.async { [weak self] in
612 |             guard self != nil else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
613 |             fun()
614 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:613:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
611 |         delegateQueue.async { [weak self] in
612 |             guard self != nil else { return }
613 |             fun()
    |             |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
614 |         }
615 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:734:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
732 |                 guard let self = self else { return }
733 |                 self.delegateQueue.async {
734 |                     guard self.connState == .connected else {
    |                           `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
735 |                         self.aliveTimer = nil
736 |                         return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:90:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
 88 |
 89 |         deliverQueue.async { [weak self] in
 90 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 91 |             self.tryTransport()
 92 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:111:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
109 |
110 |         deliverQueue.async { [weak self] in
111 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
112 |             self.tryTransport()
113 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:136:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
134 |
135 |         deliverQueue.async { [weak self] in
136 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
137 |             let acked = self.ackInflightFrame(withMsgid: msgid, type: ackType)
138 |             if acked.count == 0 {
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:197:25: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
195 |                     guard let self = self else { return }
196 |                     self.deliverQueue.async {
197 |                         self.redeliver()
    |                         `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
198 |                     }
199 |                 }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
 10 | import Dispatch
 11 |
 12 | protocol CocoaMQTTDeliverProtocol: AnyObject {
    |          `- note: protocol 'CocoaMQTTDeliverProtocol' does not conform to the 'Sendable' protocol
 13 |
 14 |     var delegateQueue: DispatchQueue { get set }
    :
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |             `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:48: warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |                                                `- warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/Frame.swift:81:10: note: protocol 'Frame' does not conform to the 'Sendable' protocol
 79 |
 80 | /// MQTT Frame protocol
 81 | protocol Frame {
    |          `- note: protocol 'Frame' does not conform to the 'Sendable' protocol
 82 |
 83 |     /// Each MQTT Control Packet contains a fixed header
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 |     public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 |     #else
41 |     public static var logger = CocoaMQTTLogger()
   |                       |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |     #endif
43 |     public override init() { super.init() }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:391:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
389 |
390 |             delegateQueue.async { [weak self] in
391 |                 guard let self = self else { return }
    |                                  `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
392 |                 self.connState = .connecting
393 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
471 |
472 |         delegateQueue.async {
473 |             self.sendingMessages[msgid] = message
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
474 |         }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:43: warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
471 |
472 |         delegateQueue.async {
473 |             self.sendingMessages[msgid] = message
    |                                           `- warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
474 |         }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift:12:14: note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTTMessage: NSObject {
   |              `- note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
13 |
14 |     public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:479:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
477 |         guard deliver.add(frame) else {
478 |             delegateQueue.async {
479 |                 self.sendingMessages.removeValue(forKey: msgid)
    |                 `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
480 |             }
481 |             return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:561:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
559 |     func __delegate_queue(_ fun: @escaping () -> Void) {
560 |         delegateQueue.async { [weak self] in
561 |             guard self != nil else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
562 |             fun()
563 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:562:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
560 |         delegateQueue.async { [weak self] in
561 |             guard self != nil else { return }
562 |             fun()
    |             |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
563 |         }
564 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:670:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
668 |                 guard let self = self else { return }
669 |                 self.delegateQueue.async {
670 |                     guard self.connState == .connected else {
    |                           `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
671 |                         self.aliveTimer = nil
672 |                         return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:392:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
390 |
391 |             delegateQueue.async { [weak self] in
392 |                 guard let self = self else { return }
    |                                  `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
393 |                 self.connState = .connecting
394 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
498 |
499 |         delegateQueue.async {
500 |             self.sendingMessages[msgid] = message
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
501 |         }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:43: warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
498 |
499 |         delegateQueue.async {
500 |             self.sendingMessages[msgid] = message
    |                                           `- warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
501 |         }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift:12:14: note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
 10 |
 11 | /// MQTT Message
 12 | public class CocoaMQTT5Message: NSObject {
    |              `- note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
 13 |
 14 |     public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:506:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
504 |         guard deliver.add(frame) else {
505 |             delegateQueue.async {
506 |                 self.sendingMessages.removeValue(forKey: msgid)
    |                 `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
507 |             }
508 |             return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:612:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
610 |     func __delegate_queue(_ fun: @escaping () -> Void) {
611 |         delegateQueue.async { [weak self] in
612 |             guard self != nil else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
613 |             fun()
614 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:613:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
611 |         delegateQueue.async { [weak self] in
612 |             guard self != nil else { return }
613 |             fun()
    |             |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
614 |         }
615 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:734:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
732 |                 guard let self = self else { return }
733 |                 self.delegateQueue.async {
734 |                     guard self.connState == .connected else {
    |                           `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
735 |                         self.aliveTimer = nil
736 |                         return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:90:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
 88 |
 89 |         deliverQueue.async { [weak self] in
 90 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 91 |             self.tryTransport()
 92 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:111:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
109 |
110 |         deliverQueue.async { [weak self] in
111 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
112 |             self.tryTransport()
113 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:136:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
134 |
135 |         deliverQueue.async { [weak self] in
136 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
137 |             let acked = self.ackInflightFrame(withMsgid: msgid, type: ackType)
138 |             if acked.count == 0 {
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:197:25: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
195 |                     guard let self = self else { return }
196 |                     self.deliverQueue.async {
197 |                         self.redeliver()
    |                         `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
198 |                     }
199 |                 }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
 10 | import Dispatch
 11 |
 12 | protocol CocoaMQTTDeliverProtocol: AnyObject {
    |          `- note: protocol 'CocoaMQTTDeliverProtocol' does not conform to the 'Sendable' protocol
 13 |
 14 |     var delegateQueue: DispatchQueue { get set }
    :
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |             `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:48: warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |                                                `- warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/Frame.swift:81:10: note: protocol 'Frame' does not conform to the 'Sendable' protocol
 79 |
 80 | /// MQTT Frame protocol
 81 | protocol Frame {
    |          `- note: protocol 'Frame' does not conform to the 'Sendable' protocol
 82 |
 83 |     /// Each MQTT Control Packet contains a fixed header
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 |     public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 |     #else
41 |     public static var logger = CocoaMQTTLogger()
   |                       |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |     #endif
43 |     public override init() { super.init() }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:391:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
389 |
390 |             delegateQueue.async { [weak self] in
391 |                 guard let self = self else { return }
    |                                  `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
392 |                 self.connState = .connecting
393 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
471 |
472 |         delegateQueue.async {
473 |             self.sendingMessages[msgid] = message
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
474 |         }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:43: warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
471 |
472 |         delegateQueue.async {
473 |             self.sendingMessages[msgid] = message
    |                                           `- warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
474 |         }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift:12:14: note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTTMessage: NSObject {
   |              `- note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
13 |
14 |     public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:479:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
477 |         guard deliver.add(frame) else {
478 |             delegateQueue.async {
479 |                 self.sendingMessages.removeValue(forKey: msgid)
    |                 `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
480 |             }
481 |             return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:561:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
559 |     func __delegate_queue(_ fun: @escaping () -> Void) {
560 |         delegateQueue.async { [weak self] in
561 |             guard self != nil else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
562 |             fun()
563 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:562:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
560 |         delegateQueue.async { [weak self] in
561 |             guard self != nil else { return }
562 |             fun()
    |             |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
563 |         }
564 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:670:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
    |              `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 |     public weak var delegate: CocoaMQTTDelegate?
    :
668 |                 guard let self = self else { return }
669 |                 self.delegateQueue.async {
670 |                     guard self.connState == .connected else {
    |                           `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
671 |                         self.aliveTimer = nil
672 |                         return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:392:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
390 |
391 |             delegateQueue.async { [weak self] in
392 |                 guard let self = self else { return }
    |                                  `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
393 |                 self.connState = .connecting
394 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
498 |
499 |         delegateQueue.async {
500 |             self.sendingMessages[msgid] = message
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
501 |         }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:43: warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
498 |
499 |         delegateQueue.async {
500 |             self.sendingMessages[msgid] = message
    |                                           `- warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
501 |         }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift:12:14: note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
 10 |
 11 | /// MQTT Message
 12 | public class CocoaMQTT5Message: NSObject {
    |              `- note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
 13 |
 14 |     public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:506:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
504 |         guard deliver.add(frame) else {
505 |             delegateQueue.async {
506 |                 self.sendingMessages.removeValue(forKey: msgid)
    |                 `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
507 |             }
508 |             return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:612:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
610 |     func __delegate_queue(_ fun: @escaping () -> Void) {
611 |         delegateQueue.async { [weak self] in
612 |             guard self != nil else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
613 |             fun()
614 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:613:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
611 |         delegateQueue.async { [weak self] in
612 |             guard self != nil else { return }
613 |             fun()
    |             |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
614 |         }
615 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:734:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
    |              `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 |     public weak var delegate: CocoaMQTT5Delegate?
    :
732 |                 guard let self = self else { return }
733 |                 self.delegateQueue.async {
734 |                     guard self.connState == .connected else {
    |                           `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
735 |                         self.aliveTimer = nil
736 |                         return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:90:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
 88 |
 89 |         deliverQueue.async { [weak self] in
 90 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 91 |             self.tryTransport()
 92 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:111:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
109 |
110 |         deliverQueue.async { [weak self] in
111 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
112 |             self.tryTransport()
113 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:136:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
134 |
135 |         deliverQueue.async { [weak self] in
136 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
137 |             let acked = self.ackInflightFrame(withMsgid: msgid, type: ackType)
138 |             if acked.count == 0 {
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:197:25: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
195 |                     guard let self = self else { return }
196 |                     self.deliverQueue.async {
197 |                         self.redeliver()
    |                         `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
198 |                     }
199 |                 }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
 10 | import Dispatch
 11 |
 12 | protocol CocoaMQTTDeliverProtocol: AnyObject {
    |          `- note: protocol 'CocoaMQTTDeliverProtocol' does not conform to the 'Sendable' protocol
 13 |
 14 |     var delegateQueue: DispatchQueue { get set }
    :
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |             `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
 42 |
 43 | // CocoaMQTTDeliver
 44 | class CocoaMQTTDeliver: NSObject {
    |       `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
 45 |
 46 |     /// The dispatch queue is used by delivering frames in serially
    :
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |                              `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:48: warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
303 |
304 |         delegate.delegateQueue.async {
305 |             delegate.deliver(self, wantToSend: frame)
    |                                                `- warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
306 |         }
307 |     }
/Users/admin/builder/spi-builder-workspace/Source/Frame.swift:81:10: note: protocol 'Frame' does not conform to the 'Sendable' protocol
 79 |
 80 | /// MQTT Frame protocol
 81 | protocol Frame {
    |          `- note: protocol 'Frame' does not conform to the 'Sendable' protocol
 82 |
 83 |     /// Each MQTT Control Packet contains a fixed header
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 |     public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 |     #else
41 |     public static var logger = CocoaMQTTLogger()
   |                       |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 |     #endif
43 |     public override init() { super.init() }
[76/77] Emitting module CocoaMQTTWebSocket
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:311:11: warning: non-final class 'FoundationConnection' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
309 | @available(OSX 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
310 | public extension CocoaMQTTWebSocket {
311 |     class FoundationConnection: NSObject, CocoaMQTTWebSocketConnection {
    |           `- warning: non-final class 'FoundationConnection' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
312 |
313 |         public weak var delegate: CocoaMQTTWebSocketConnectionDelegate?
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:313:25: warning: stored property 'delegate' of 'Sendable'-conforming class 'FoundationConnection' is mutable; this is an error in the Swift 6 language mode
311 |     class FoundationConnection: NSObject, CocoaMQTTWebSocketConnection {
312 |
313 |         public weak var delegate: CocoaMQTTWebSocketConnectionDelegate?
    |                         `- warning: stored property 'delegate' of 'Sendable'-conforming class 'FoundationConnection' is mutable; this is an error in the Swift 6 language mode
314 |         public lazy var queue = DispatchQueue(label: "CocoaMQTTFoundationWebSocketConnection-\(self.hashValue)")
315 |
[77/77] Compiling CocoaMQTTWebSocket CocoaMQTTWebSocket.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:311:11: warning: non-final class 'FoundationConnection' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
309 | @available(OSX 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
310 | public extension CocoaMQTTWebSocket {
311 |     class FoundationConnection: NSObject, CocoaMQTTWebSocketConnection {
    |           `- warning: non-final class 'FoundationConnection' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
312 |
313 |         public weak var delegate: CocoaMQTTWebSocketConnectionDelegate?
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:313:25: warning: stored property 'delegate' of 'Sendable'-conforming class 'FoundationConnection' is mutable; this is an error in the Swift 6 language mode
311 |     class FoundationConnection: NSObject, CocoaMQTTWebSocketConnection {
312 |
313 |         public weak var delegate: CocoaMQTTWebSocketConnectionDelegate?
    |                         `- warning: stored property 'delegate' of 'Sendable'-conforming class 'FoundationConnection' is mutable; this is an error in the Swift 6 language mode
314 |         public lazy var queue = DispatchQueue(label: "CocoaMQTTFoundationWebSocketConnection-\(self.hashValue)")
315 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:81:13: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
 50 | // MARK: - CocoaMQTTWebSocket
 51 |
 52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
    |              `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
 53 |
 54 |     public var enableSSL = false
    :
 79 |     public func setDelegate(_ theDelegate: CocoaMQTTSocketDelegate?, delegateQueue: DispatchQueue?) {
 80 |         internalQueue.async {
 81 |             self.delegate = theDelegate
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
 82 |             self.delegateQueue = delegateQueue
 83 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:81:29: warning: capture of 'theDelegate' with non-sendable type '(any CocoaMQTTSocketDelegate)?' in a '@Sendable' closure
 79 |     public func setDelegate(_ theDelegate: CocoaMQTTSocketDelegate?, delegateQueue: DispatchQueue?) {
 80 |         internalQueue.async {
 81 |             self.delegate = theDelegate
    |                             `- warning: capture of 'theDelegate' with non-sendable type '(any CocoaMQTTSocketDelegate)?' in a '@Sendable' closure
 82 |             self.delegateQueue = delegateQueue
 83 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTSocket.swift:13:17: note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
 11 | // MARK: - Interfaces
 12 |
 13 | public protocol CocoaMQTTSocketDelegate: AnyObject {
    |                 `- note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
 14 |     func socketConnected(_ socket: CocoaMQTTSocketProtocol)
 15 |     func socket(_ socket: CocoaMQTTSocketProtocol, didReceive trust: SecTrust, completionHandler: @escaping (Bool) -> Swift.Void)
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:11:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CocoaMQTT'
  9 | import Starscream
 10 | #if IS_SWIFT_PACKAGE
 11 | import CocoaMQTT
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CocoaMQTT'
 12 | #endif
 13 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:121:13: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
 50 | // MARK: - CocoaMQTTWebSocket
 51 |
 52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
    |              `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
 53 |
 54 |     public var enableSSL = false
    :
119 |         internalQueue.async {
120 |             // self.reset()
121 |             self.closeConnection(withError: nil)
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
122 |         }
123 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:128:13: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
 50 | // MARK: - CocoaMQTTWebSocket
 51 |
 52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
    |              `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
 53 |
 54 |     public var enableSSL = false
    :
126 |         internalQueue.async {
127 |             let newRead = ReadItem(tag: tag, length: length, timeout: (timeout > 0.0) ? .now() + timeout : .distantFuture)
128 |             self.scheduledReads.append(newRead)
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
129 |             self.checkScheduledReads()
130 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:136:13: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
 50 | // MARK: - CocoaMQTTWebSocket
 51 |
 52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
    |              `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
 53 |
 54 |     public var enableSSL = false
    :
134 |         internalQueue.async {
135 |             let newWrite = WriteItem(tag: tag, timeout: (timeout > 0.0) ? .now() + timeout : .distantFuture)
136 |             self.scheduledWrites.insert(newWrite)
    |             `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
137 |             self.checkScheduledWrites()
138 |             self.connection?.write(data: data) { possibleError in
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:140:21: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in an isolated closure; this is an error in the Swift 6 language mode
 50 | // MARK: - CocoaMQTTWebSocket
 51 |
 52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
    |              `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
 53 |
 54 |     public var enableSSL = false
    :
138 |             self.connection?.write(data: data) { possibleError in
139 |                 if let error = possibleError {
140 |                     self.closeConnection(withError: error)
    |                     `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in an isolated closure; this is an error in the Swift 6 language mode
141 |                 } else {
142 |                     guard self.scheduledWrites.remove(newWrite) != nil else { return }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:222:17: warning: capture of 'theDelegate' with non-sendable type 'any CocoaMQTTSocketDelegate' in a '@Sendable' closure
220 |             readBuffer.removeSubrange(readRange)
221 |             delegateQueue.async {
222 |                 theDelegate.socket(self, didRead: readData, withTag: nextRead.tag)
    |                 `- warning: capture of 'theDelegate' with non-sendable type 'any CocoaMQTTSocketDelegate' in a '@Sendable' closure
223 |             }
224 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTSocket.swift:13:17: note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
 11 | // MARK: - Interfaces
 12 |
 13 | public protocol CocoaMQTTSocketDelegate: AnyObject {
    |                 `- note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
 14 |     func socketConnected(_ socket: CocoaMQTTSocketProtocol)
 15 |     func socket(_ socket: CocoaMQTTSocketProtocol, didReceive trust: SecTrust, completionHandler: @escaping (Bool) -> Swift.Void)
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:222:36: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
 50 | // MARK: - CocoaMQTTWebSocket
 51 |
 52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
    |              `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
 53 |
 54 |     public var enableSSL = false
    :
220 |             readBuffer.removeSubrange(readRange)
221 |             delegateQueue.async {
222 |                 theDelegate.socket(self, didRead: readData, withTag: nextRead.tag)
    |                                    `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
223 |             }
224 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:286:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTSocketDelegate' in a '@Sendable' closure
284 |         guard let delegateQueue = delegateQueue else { return }
285 |         delegateQueue.async {
286 |             delegate.socketConnected(self)
    |             `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTSocketDelegate' in a '@Sendable' closure
287 |         }
288 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTSocket.swift:13:17: note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
 11 | // MARK: - Interfaces
 12 |
 13 | public protocol CocoaMQTTSocketDelegate: AnyObject {
    |                 `- note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
 14 |     func socketConnected(_ socket: CocoaMQTTSocketProtocol)
 15 |     func socket(_ socket: CocoaMQTTSocketProtocol, didReceive trust: SecTrust, completionHandler: @escaping (Bool) -> Swift.Void)
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:286:38: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
 50 | // MARK: - CocoaMQTTWebSocket
 51 |
 52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
    |              `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
 53 |
 54 |     public var enableSSL = false
    :
284 |         guard let delegateQueue = delegateQueue else { return }
285 |         delegateQueue.async {
286 |             delegate.socketConnected(self)
    |                                      `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
287 |         }
288 |     }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:341:21: warning: capture of 'handler' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
339 |             task?.send(.data(data)) { possibleError in
340 |                 self.queue.async {
341 |                     handler(possibleError)
    |                     |- warning: capture of 'handler' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
342 |                 }
343 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:341:21: warning: capture of 'handler' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
339 |             task?.send(.data(data)) { possibleError in
340 |                 self.queue.async {
341 |                     handler(possibleError)
    |                     |- warning: capture of 'handler' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
342 |                 }
343 |             }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:378:21: warning: capture of 'completionHandler' with non-sendable type '(URLSession.AuthChallengeDisposition, URLCredential?) -> Void' in a '@Sendable' closure
376 |             if let trust = challenge.protectionSpace.serverTrust, let delegate = self.delegate {
377 |                 delegate.connection(self, didReceive: trust) { shouldTrust in
378 |                     completionHandler(shouldTrust ? .performDefaultHandling : .rejectProtectionSpace, nil)
    |                     |- warning: capture of 'completionHandler' with non-sendable type '(URLSession.AuthChallengeDisposition, URLCredential?) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
379 |                 }
380 |                 delegate.urlSessionConnection(self, didReceiveTrust: trust, didReceiveChallenge: challenge, completionHandler: completionHandler)
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:378:21: warning: capture of 'completionHandler' with non-sendable type '(URLSession.AuthChallengeDisposition, URLCredential?) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
376 |             if let trust = challenge.protectionSpace.serverTrust, let delegate = self.delegate {
377 |                 delegate.connection(self, didReceive: trust) { shouldTrust in
378 |                     completionHandler(shouldTrust ? .performDefaultHandling : .rejectProtectionSpace, nil)
    |                     |- warning: capture of 'completionHandler' with non-sendable type '(URLSession.AuthChallengeDisposition, URLCredential?) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
379 |                 }
380 |                 delegate.urlSessionConnection(self, didReceiveTrust: trust, didReceiveChallenge: challenge, completionHandler: completionHandler)
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:501:19: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket?' in a '@Sendable' closure
 50 | // MARK: - CocoaMQTTWebSocket
 51 |
 52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
    |              `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
 53 |
 54 |     public var enableSSL = false
    :
499 |     func __delegate_queue(_ fun: @escaping () -> Void) {
500 |         delegateQueue?.async { [weak self] in
501 |             guard self != nil else { return }
    |                   `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket?' in a '@Sendable' closure
502 |             fun()
503 |         }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:502:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
500 |         delegateQueue?.async { [weak self] in
501 |             guard self != nil else { return }
502 |             fun()
    |             |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
503 |         }
504 |     }
Build complete! (16.12s)
Fetching https://github.com/daltoniam/Starscream.git
Fetching https://github.com/leeway1208/MqttCocoaAsyncSocket
Fetching https://github.com/SimplyDanny/SwiftLintPlugins
[1/3847] Fetching mqttcocoaasyncsocket
[155/4173] Fetching mqttcocoaasyncsocket, swiftlintplugins
[817/9281] Fetching mqttcocoaasyncsocket, swiftlintplugins, starscream
Fetched https://github.com/daltoniam/Starscream.git from cache (1.09s)
Fetched https://github.com/leeway1208/MqttCocoaAsyncSocket from cache (1.09s)
Fetched https://github.com/SimplyDanny/SwiftLintPlugins from cache (1.09s)
Computing version for https://github.com/SimplyDanny/SwiftLintPlugins
Computed https://github.com/SimplyDanny/SwiftLintPlugins at 0.63.2 (1.59s)
Computing version for https://github.com/leeway1208/MqttCocoaAsyncSocket
Computed https://github.com/leeway1208/MqttCocoaAsyncSocket at 1.0.8 (0.58s)
Computing version for https://github.com/daltoniam/Starscream.git
Computed https://github.com/daltoniam/Starscream.git at 4.0.8 (0.59s)
Creating working copy for https://github.com/leeway1208/MqttCocoaAsyncSocket
Working copy of https://github.com/leeway1208/MqttCocoaAsyncSocket resolved at 1.0.8
Creating working copy for https://github.com/SimplyDanny/SwiftLintPlugins
Working copy of https://github.com/SimplyDanny/SwiftLintPlugins resolved at 0.63.2
Creating working copy for https://github.com/daltoniam/Starscream.git
Working copy of https://github.com/daltoniam/Starscream.git resolved at 4.0.8
Downloading binary artifact https://github.com/realm/SwiftLint/releases/download/0.63.2/SwiftLintBinary.artifactbundle.zip
[16375/72588246] Downloading https://github.com/realm/SwiftLint/releases/download/0.63.2/SwiftLintBinary.artifactbundle.zip
Downloaded https://github.com/realm/SwiftLint/releases/download/0.63.2/SwiftLintBinary.artifactbundle.zip (3.67s)
warning: 'spi-builder-workspace': found 2 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/Source/Info.plist
    /Users/admin/builder/spi-builder-workspace/Source/PrivacyInfo.xcprivacy
warning: 'spi-builder-workspace': found 45 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/Source/MqttDecodeUnsubAck.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift
    /Users/admin/builder/spi-builder-workspace/Source/FrameAuth.swift
    /Users/admin/builder/spi-builder-workspace/Source/FrameConnAck.swift
    /Users/admin/builder/spi-builder-workspace/Source/FrameUnsubAck.swift
    /Users/admin/builder/spi-builder-workspace/Source/MqttDecodeConnAck.swift
    /Users/admin/builder/spi-builder-workspace/Source/MqttDecodePubRel.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTTypes.swift
    /Users/admin/builder/spi-builder-workspace/Source/FramePubRec.swift
    /Users/admin/builder/spi-builder-workspace/Source/FramePubRel.swift
    /Users/admin/builder/spi-builder-workspace/Source/FrameSubAck.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift
    /Users/admin/builder/spi-builder-workspace/Source/MqttDecodePublish.swift
    /Users/admin/builder/spi-builder-workspace/Source/PrivacyInfo.xcprivacy
    /Users/admin/builder/spi-builder-workspace/Source/MqttPublishProperties.swift
    /Users/admin/builder/spi-builder-workspace/Source/FrameSubscribe.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTStorage.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTTimer.swift
    /Users/admin/builder/spi-builder-workspace/Source/FramePingResp.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTProperty.swift
    /Users/admin/builder/spi-builder-workspace/Source/FramePubComp.swift
    /Users/admin/builder/spi-builder-workspace/Source/MqttDecodePubComp.swift
    /Users/admin/builder/spi-builder-workspace/Source/FrameConnect.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTReader.swift
    /Users/admin/builder/spi-builder-workspace/Source/FramePubAck.swift
    /Users/admin/builder/spi-builder-workspace/Source/MqttDecodePubAck.swift
    /Users/admin/builder/spi-builder-workspace/Source/FrameDisconnect.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift
    /Users/admin/builder/spi-builder-workspace/Source/FramePublish.swift
    /Users/admin/builder/spi-builder-workspace/Source/Info.plist
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTReasonCode.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift
    /Users/admin/builder/spi-builder-workspace/Source/Frame.swift
    /Users/admin/builder/spi-builder-workspace/Source/MqttDecodePubRec.swift
    /Users/admin/builder/spi-builder-workspace/Source/MqttAuthProperties.swift
    /Users/admin/builder/spi-builder-workspace/Source/MqttSubscription.swift
    /Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift
    /Users/admin/builder/spi-builder-workspace/Source/MqttConnectProperties.swift
    /Users/admin/builder/spi-builder-workspace/Source/MqttDecodeSubAck.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift
    /Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift
    /Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTSocket.swift
    /Users/admin/builder/spi-builder-workspace/Source/FramePingReq.swift
    /Users/admin/builder/spi-builder-workspace/Source/FrameUnsubscribe.swift
warning: 'starscream': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
    /Users/admin/builder/spi-builder-workspace/.build/checkouts/Starscream/Sources/Info.plist
Build complete.
{
  "dependencies" : [
    {
      "identity" : "starscream",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.0.8",
            "upper_bound" : "6.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/daltoniam/Starscream.git"
    },
    {
      "identity" : "mqttcocoaasyncsocket",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.8",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/leeway1208/MqttCocoaAsyncSocket"
    },
    {
      "identity" : "swiftlintplugins",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.63.2",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/SimplyDanny/SwiftLintPlugins"
    }
  ],
  "manifest_display_name" : "CocoaMQTT",
  "name" : "CocoaMQTT",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "CocoaMQTT",
      "targets" : [
        "CocoaMQTT"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "CocoaMQTTWebSocket",
      "targets" : [
        "CocoaMQTTWebSocket"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CocoaMQTTWebSocket",
      "module_type" : "SwiftTarget",
      "name" : "CocoaMQTTWebSocket",
      "path" : "Source",
      "product_dependencies" : [
        "Starscream"
      ],
      "product_memberships" : [
        "CocoaMQTTWebSocket"
      ],
      "sources" : [
        "CocoaMQTTWebSocket.swift"
      ],
      "target_dependencies" : [
        "CocoaMQTT"
      ],
      "type" : "library"
    },
    {
      "c99name" : "CocoaMQTTTests",
      "module_type" : "SwiftTarget",
      "name" : "CocoaMQTTTests",
      "path" : "CocoaMQTTTests",
      "sources" : [
        "CocoaMQTT5PublishValidationTests.swift",
        "CocoaMQTT5ReasonCodeFallbackTests.swift",
        "CocoaMQTT5ReceiveMessageContentTypeTests.swift",
        "CocoaMQTTDeliverTests.swift",
        "CocoaMQTTReaderProtocolErrorTests.swift",
        "CocoaMQTTStorageTests.swift",
        "CocoaMQTTTests.swift",
        "ConcurrentAtomicTests.swift",
        "FrameTests.swift",
        "PublicLoggerAPITests.swift",
        "ThreadSafetyRegressionTests.swift"
      ],
      "target_dependencies" : [
        "CocoaMQTT",
        "CocoaMQTTWebSocket"
      ],
      "type" : "test"
    },
    {
      "c99name" : "CocoaMQTT",
      "module_type" : "SwiftTarget",
      "name" : "CocoaMQTT",
      "path" : "Source",
      "product_dependencies" : [
        "MqttCocoaAsyncSocket"
      ],
      "product_memberships" : [
        "CocoaMQTT",
        "CocoaMQTTWebSocket"
      ],
      "sources" : [
        "CocoaMQTT.swift",
        "CocoaMQTT5.swift",
        "CocoaMQTT5Message.swift",
        "CocoaMQTTDeliver.swift",
        "CocoaMQTTLogger.swift",
        "CocoaMQTTMessage.swift",
        "CocoaMQTTProperty.swift",
        "CocoaMQTTReader.swift",
        "CocoaMQTTReasonCode.swift",
        "CocoaMQTTSocket.swift",
        "CocoaMQTTStorage.swift",
        "CocoaMQTTTimer.swift",
        "CocoaMQTTTypes.swift",
        "Frame.swift",
        "FrameAuth.swift",
        "FrameConnAck.swift",
        "FrameConnect.swift",
        "FrameDisconnect.swift",
        "FramePingReq.swift",
        "FramePingResp.swift",
        "FramePubAck.swift",
        "FramePubComp.swift",
        "FramePubRec.swift",
        "FramePubRel.swift",
        "FramePublish.swift",
        "FrameSubAck.swift",
        "FrameSubscribe.swift",
        "FrameUnsubAck.swift",
        "FrameUnsubscribe.swift",
        "MqttAuthProperties.swift",
        "MqttConnectProperties.swift",
        "MqttDecodeConnAck.swift",
        "MqttDecodePubAck.swift",
        "MqttDecodePubComp.swift",
        "MqttDecodePubRec.swift",
        "MqttDecodePubRel.swift",
        "MqttDecodePublish.swift",
        "MqttDecodeSubAck.swift",
        "MqttDecodeUnsubAck.swift",
        "MqttPublishProperties.swift",
        "MqttSubscription.swift",
        "ThreadSafeDictionary.swift",
        "utilities/ConcurrentAtomic.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.7"
}
Done.