The Swift Package Index logo.Swift Package Index

Build Information

Successful build of AdzerkSDK, reference 2.3.4 (1a7ffc), with Swift 6.1 for macOS (SPM) on 5 Mar 2026 03:26:32 UTC.

Swift 6 data race errors: 8

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/adzerk/adzerk-ios-sdk.git
Reference: 2.3.4
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/adzerk/adzerk-ios-sdk
 * tag               2.3.4      -> FETCH_HEAD
HEAD is now at 1a7ffc7 Merge pull request #59 from adzerk/jira-mgmt-291-add-segment-to-decision
Cloned https://github.com/adzerk/adzerk-ios-sdk.git
Revision (git rev-parse @):
1a7ffc77eec8b95ffeca0ee919a8aabbc7c9eddc
SUCCESS checkout https://github.com/adzerk/adzerk-ios-sdk.git at 2.3.4
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/adzerk/adzerk-ios-sdk.git
https://github.com/adzerk/adzerk-ios-sdk.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "AdzerkSDK",
  "name" : "AdzerkSDK",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "10.0"
    },
    {
      "name" : "macos",
      "version" : "10.12"
    }
  ],
  "products" : [
    {
      "name" : "AdzerkSDK",
      "targets" : [
        "AdzerkSDK"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "AdzerkSDKTests",
      "module_type" : "SwiftTarget",
      "name" : "AdzerkSDKTests",
      "path" : "Tests/AdzerkSDKTests",
      "sources" : [
        "AnyCodableTests.swift",
        "DecisionSDKAsyncAwaitTests.swift",
        "DecisionSDKTests.swift",
        "FakeKeyStore.swift",
        "LoggerTests.swift",
        "PlacementRequestTests.swift",
        "PlacementTests.swift",
        "UserKeyStoreKeychainTests.swift",
        "XCAssert+Adzerk.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "AdzerkSDK"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AdzerkSDK",
      "module_type" : "SwiftTarget",
      "name" : "AdzerkSDK",
      "path" : "Sources/AdzerkSDK",
      "product_memberships" : [
        "AdzerkSDK"
      ],
      "sources" : [
        "AdzerkError.swift",
        "Codable/AdzerkJSONDecoder.swift",
        "Codable/AdzerkJSONEncoder.swift",
        "Codable/AnyCodable.swift",
        "Codable/Decoder+AnyCodable.swift",
        "Codable/DynamicCodingKey.swift",
        "Consent.swift",
        "DecisionSDK-Version.swift",
        "DecisionSDK.swift",
        "Endpoint.swift",
        "FirePixelResponse.swift",
        "GeoPoint.swift",
        "KeychainHelper.swift",
        "Logger.swift",
        "Networking/NetworkTransport.swift",
        "Networking/NoRedirectSessionDelegate.swift",
        "Networking/Transport.swift",
        "Networking/URL+Query.swift",
        "Placement.swift",
        "PlacementContent.swift",
        "PlacementDecision.swift",
        "PlacementEvent.swift",
        "PlacementRequest.swift",
        "PlacementResponse.swift",
        "User.swift",
        "UserDB.swift",
        "UserIdentifier.swift",
        "UserKeyStore.swift",
        "UserKeyStoreKeychain.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/30] Emitting module AdzerkSDK
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AdzerkJSONDecoder.swift:10:7: warning: class 'AdzerkJSONDecoder' must restate inherited '@unchecked Sendable' conformance
 8 | import Foundation
 9 |
10 | class AdzerkJSONDecoder: JSONDecoder {
   |       `- warning: class 'AdzerkJSONDecoder' must restate inherited '@unchecked Sendable' conformance
11 |     override init() {
12 |         super.init()
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AdzerkJSONEncoder.swift:10:7: warning: class 'AdzerkJSONEncoder' must restate inherited '@unchecked Sendable' conformance
 8 | import Foundation
 9 |
10 | class AdzerkJSONEncoder: JSONEncoder {
   |       `- warning: class 'AdzerkJSONEncoder' must restate inherited '@unchecked Sendable' conformance
11 |     override init() {
12 |         super.init()
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:6:23: warning: static property 'SDKVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  4 | public class DecisionSDK {
  5 |
  6 |     public static var SDKVersion = AdzerkDecisionSDKVersionString
    |                       |- warning: static property 'SDKVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'SDKVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'SDKVersion' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  7 |
  8 |     /** Provides storage for the default network ID to be used with all placement requests. If a value is present here,
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:11:23: warning: static property 'defaultNetworkId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  9 |     each placement request does not need to provide it.  Any value in the placement request will override this value.
 10 |     Useful for the common case where the network ID is constant for your application. */
 11 |     public static var defaultNetworkId: Int?
    |                       |- warning: static property 'defaultNetworkId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultNetworkId' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultNetworkId' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 12 |
 13 |     /** Provides storage for the default site ID to be used with all placement requests. If a value is present here,
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:17:23: warning: static property 'defaultSiteId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 15 |     Useful for the common case where the network ID is constant for your application.
 16 |     */
 17 |     public static var defaultSiteId: Int?
    |                       |- warning: static property 'defaultSiteId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSiteId' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSiteId' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |
 19 |     public static var logger = Logger()
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:19: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
 17 |     public static var defaultSiteId: Int?
 18 |
 19 |     public static var logger = Logger()
    |                       |- 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
 20 |
 21 |     /** The base URL template to use for API requests. {subdomain} must be replaced in this template string before use. */
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:24:24: warning: static property '_hostOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 22 |     private static let AdzerkHostnameTemplate = "{subdomain}.adzerk.net"
 23 |
 24 |     private static var _hostOverride: String?
    |                        |- warning: static property '_hostOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert '_hostOverride' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property '_hostOverride' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |
 26 |     /** The host to use for outgoing API requests. If not set, a default Adzerk hostname will be
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:104:10: warning: non-sendable type 'Result<T, AdzerkError>' cannot be returned from main actor-isolated implementation to caller of protocol requirement 'send(_:decode:)'; this is an error in the Swift 6 language mode
102 |     }
103 |
104 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError> {
    |          |    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
    |          `- warning: non-sendable type 'Result<T, AdzerkError>' cannot be returned from main actor-isolated implementation to caller of protocol requirement 'send(_:decode:)'; this is an error in the Swift 6 language mode
105 |         let dataResult = await send(request)
106 |         return mapResult(dataResult, map: decode)
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:104:10: warning: non-sendable parameter type '(Data) throws -> T' cannot be sent from caller of protocol requirement 'send(_:decode:)' into main actor-isolated implementation; this is an error in the Swift 6 language mode
102 |     }
103 |
104 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError> {
    |          `- warning: non-sendable parameter type '(Data) throws -> T' cannot be sent from caller of protocol requirement 'send(_:decode:)' into main actor-isolated implementation; this is an error in the Swift 6 language mode
105 |         let dataResult = await send(request)
106 |         return mapResult(dataResult, map: decode)
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/Transport.swift:26:10: note: a function type must be marked '@Sendable' to conform to 'Sendable'
24 |
25 |     @available(macOS 12.0, iOS 15.0, watchOS 8.0, tvOS 15.0, *)
26 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError>
   |          `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
27 |
28 | #endif
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NoRedirectSessionDelegate.swift:3:7: warning: non-final class 'NoRedirectSessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class NoRedirectSessionDelegate : NSObject, URLSessionTaskDelegate {
  |       `- warning: non-final class 'NoRedirectSessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |     public func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse, newRequest request: URLRequest, completionHandler complete: @escaping (URLRequest?) -> Void) {
5 |         complete(nil)
[4/32] Compiling AdzerkSDK PlacementEvent.swift
[5/32] Compiling AdzerkSDK PlacementRequest.swift
[6/32] Compiling AdzerkSDK PlacementResponse.swift
[7/32] Compiling AdzerkSDK Placement.swift
[8/32] Compiling AdzerkSDK PlacementContent.swift
[9/32] Compiling AdzerkSDK PlacementDecision.swift
[10/32] Compiling AdzerkSDK AdzerkError.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AdzerkJSONDecoder.swift:10:7: warning: class 'AdzerkJSONDecoder' must restate inherited '@unchecked Sendable' conformance
 8 | import Foundation
 9 |
10 | class AdzerkJSONDecoder: JSONDecoder {
   |       `- warning: class 'AdzerkJSONDecoder' must restate inherited '@unchecked Sendable' conformance
11 |     override init() {
12 |         super.init()
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AdzerkJSONDecoder.swift:16:79: warning: type 'PlacementDecision.PlacementDivProvider' does not conform to the 'Sendable' protocol
14 |         dateDecodingStrategy = .iso8601
15 |         userInfo = [
16 |             PlacementDecision.divNameProviderCodingInfoKey: PlacementDecision.PlacementDivProvider()
   |                                                                               `- warning: type 'PlacementDecision.PlacementDivProvider' does not conform to the 'Sendable' protocol
17 |         ]
18 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/PlacementDecision.swift:13:18: note: class 'PlacementDivProvider' does not conform to the 'Sendable' protocol
 11 |
 12 |     public static let divNameProviderCodingInfoKey = CodingUserInfoKey(rawValue: "currentDivNameProvider")!
 13 |     public class PlacementDivProvider {
    |                  `- note: class 'PlacementDivProvider' does not conform to the 'Sendable' protocol
 14 |         var currentDivName: String?
 15 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AdzerkJSONEncoder.swift:10:7: warning: class 'AdzerkJSONEncoder' must restate inherited '@unchecked Sendable' conformance
 8 | import Foundation
 9 |
10 | class AdzerkJSONEncoder: JSONEncoder {
   |       `- warning: class 'AdzerkJSONEncoder' must restate inherited '@unchecked Sendable' conformance
11 |     override init() {
12 |         super.init()
[11/32] Compiling AdzerkSDK AdzerkJSONDecoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AdzerkJSONDecoder.swift:10:7: warning: class 'AdzerkJSONDecoder' must restate inherited '@unchecked Sendable' conformance
 8 | import Foundation
 9 |
10 | class AdzerkJSONDecoder: JSONDecoder {
   |       `- warning: class 'AdzerkJSONDecoder' must restate inherited '@unchecked Sendable' conformance
11 |     override init() {
12 |         super.init()
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AdzerkJSONDecoder.swift:16:79: warning: type 'PlacementDecision.PlacementDivProvider' does not conform to the 'Sendable' protocol
14 |         dateDecodingStrategy = .iso8601
15 |         userInfo = [
16 |             PlacementDecision.divNameProviderCodingInfoKey: PlacementDecision.PlacementDivProvider()
   |                                                                               `- warning: type 'PlacementDecision.PlacementDivProvider' does not conform to the 'Sendable' protocol
17 |         ]
18 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/PlacementDecision.swift:13:18: note: class 'PlacementDivProvider' does not conform to the 'Sendable' protocol
 11 |
 12 |     public static let divNameProviderCodingInfoKey = CodingUserInfoKey(rawValue: "currentDivNameProvider")!
 13 |     public class PlacementDivProvider {
    |                  `- note: class 'PlacementDivProvider' does not conform to the 'Sendable' protocol
 14 |         var currentDivName: String?
 15 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AdzerkJSONEncoder.swift:10:7: warning: class 'AdzerkJSONEncoder' must restate inherited '@unchecked Sendable' conformance
 8 | import Foundation
 9 |
10 | class AdzerkJSONEncoder: JSONEncoder {
   |       `- warning: class 'AdzerkJSONEncoder' must restate inherited '@unchecked Sendable' conformance
11 |     override init() {
12 |         super.init()
[12/32] Compiling AdzerkSDK AdzerkJSONEncoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AdzerkJSONDecoder.swift:10:7: warning: class 'AdzerkJSONDecoder' must restate inherited '@unchecked Sendable' conformance
 8 | import Foundation
 9 |
10 | class AdzerkJSONDecoder: JSONDecoder {
   |       `- warning: class 'AdzerkJSONDecoder' must restate inherited '@unchecked Sendable' conformance
11 |     override init() {
12 |         super.init()
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AdzerkJSONDecoder.swift:16:79: warning: type 'PlacementDecision.PlacementDivProvider' does not conform to the 'Sendable' protocol
14 |         dateDecodingStrategy = .iso8601
15 |         userInfo = [
16 |             PlacementDecision.divNameProviderCodingInfoKey: PlacementDecision.PlacementDivProvider()
   |                                                                               `- warning: type 'PlacementDecision.PlacementDivProvider' does not conform to the 'Sendable' protocol
17 |         ]
18 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/PlacementDecision.swift:13:18: note: class 'PlacementDivProvider' does not conform to the 'Sendable' protocol
 11 |
 12 |     public static let divNameProviderCodingInfoKey = CodingUserInfoKey(rawValue: "currentDivNameProvider")!
 13 |     public class PlacementDivProvider {
    |                  `- note: class 'PlacementDivProvider' does not conform to the 'Sendable' protocol
 14 |         var currentDivName: String?
 15 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AdzerkJSONEncoder.swift:10:7: warning: class 'AdzerkJSONEncoder' must restate inherited '@unchecked Sendable' conformance
 8 | import Foundation
 9 |
10 | class AdzerkJSONEncoder: JSONEncoder {
   |       `- warning: class 'AdzerkJSONEncoder' must restate inherited '@unchecked Sendable' conformance
11 |     override init() {
12 |         super.init()
[13/32] Compiling AdzerkSDK UserKeyStore.swift
[14/32] Compiling AdzerkSDK UserKeyStoreKeychain.swift
[15/32] Compiling AdzerkSDK User.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:31:17: warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
 29 |             logger.log(.warning, message: "WARNING: No userKey specified, and none can be found in the configured key store.")
 30 |             transport.callbackQueue.async {
 31 |                 completion(.failure(.missingUserKey))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 32 |             }
 33 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:41:17: warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
 39 |             logger.log(.warning, message: "WARNING: unable to construct readUser URL")
 40 |             transport.callbackQueue.async {
 41 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 42 |             }
 43 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:58:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 56 |             logger.log(.warning, message: "WARNING: No userKey specified, and none can be found in the configured key store.")
 57 |             transport.callbackQueue.async {
 58 |                 completion(.failure(.missingUserKey))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 59 |             }
 60 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:68:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 66 |             logger.log(.warning, message: "WARNING: unable to construct readUser URL")
 67 |             transport.callbackQueue.async {
 68 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 69 |             }
 70 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:78:40: warning: capture of 'self' with non-sendable type 'UserDB' in a '@Sendable' closure
  8 | import Foundation
  9 |
 10 | public class UserDB {
    |              `- note: class 'UserDB' does not conform to the 'Sendable' protocol
 11 |     private let baseURL: URL
 12 |     private let networkId: Int
    :
 76 |             request.httpMethod = "POST"
 77 |             do {
 78 |                 request.httpBody = try self.encoder.encode(properties)
    |                                        `- warning: capture of 'self' with non-sendable type 'UserDB' in a '@Sendable' closure
 79 |                 self.transport.send(request,
 80 |                                decode: { _ in () }, // we don't care about the response
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:78:60: warning: capture of 'properties' with non-sendable type '[String : AnyCodable]' in a '@Sendable' closure
 76 |             request.httpMethod = "POST"
 77 |             do {
 78 |                 request.httpBody = try self.encoder.encode(properties)
    |                                                            `- warning: capture of 'properties' with non-sendable type '[String : AnyCodable]' in a '@Sendable' closure
 79 |                 self.transport.send(request,
 80 |                                decode: { _ in () }, // we don't care about the response
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AnyCodable.swift:13:22: note: consider making enum 'AnyCodable' conform to the 'Sendable' protocol
11 |     Supported types are `Int`, `String`, `Float`, `Bool`, as well as arrays and dictionaries of any of these.
12 |  */
13 | public indirect enum AnyCodable: Codable {
   |                      `- note: consider making enum 'AnyCodable' conform to the 'Sendable' protocol
14 |     case null
15 |     case int(Int)
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:81:44: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 79 |                 self.transport.send(request,
 80 |                                decode: { _ in () }, // we don't care about the response
 81 |                                completion: completion)
    |                                            |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 82 |             } catch {
 83 |                 self.transport.callbackQueue.async {
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:84:21: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 82 |             } catch {
 83 |                 self.transport.callbackQueue.async {
 84 |                     completion(.failure(.errorPreparingRequest(error)))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 85 |                 }
 86 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:106:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
104 |             logger.log(.warning, message: "WARNING: No userKey specified, and none can be found in the configured key store.")
105 |             transport.callbackQueue.async {
106 |                 completion(.failure(.missingUserKey))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
107 |             }
108 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:118:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
116 |             logger.log(.warning, message: "WARNING: unable to construct readUser URL")
117 |             transport.callbackQueue.async {
118 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
119 |             }
120 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:147:32: warning: non-sendable result type 'Result<User, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
145 |
146 |         let request = URLRequest(url: url)
147 |         return await transport.send(request, decode: { data in
    |                                `- warning: non-sendable result type 'Result<User, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
148 |             try self.decoder.decode(User.self, from: data)
149 |         })
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/User.swift:10:15: note: consider making struct 'User' conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | public struct User: Codable {
   |               `- note: consider making struct 'User' conform to the 'Sendable' protocol
11 |     public let key: String
12 |     /// The assigned cohort for the User
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:147:32: warning: sending value of non-Sendable type '(Data) throws -> User' risks causing data races; this is an error in the Swift 6 language mode
145 |
146 |         let request = URLRequest(url: url)
147 |         return await transport.send(request, decode: { data in
    |                                |- warning: sending value of non-Sendable type '(Data) throws -> User' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated value of non-Sendable type '(Data) throws -> User' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
148 |             try self.decoder.decode(User.self, from: data)
149 |         })
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:147:32: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
145 |
146 |         let request = URLRequest(url: url)
147 |         return await transport.send(request, decode: { data in
    |                                |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
148 |             try self.decoder.decode(User.self, from: data)
149 |         })
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:168:36: warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
166 |         do {
167 |             request.httpBody = try self.encoder.encode(properties)
168 |             return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                    |- warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated value of non-Sendable type '(Data) -> ()' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
169 |         } catch {
170 |             return .failure(.errorPreparingRequest(error))
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:168:36: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
166 |         do {
167 |             request.httpBody = try self.encoder.encode(properties)
168 |             return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                    |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
169 |         } catch {
170 |             return .failure(.errorPreparingRequest(error))
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:200:32: warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
198 |
199 |         let request = URLRequest(url: url)
200 |         return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                |- warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated value of non-Sendable type '(Data) -> ()' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
201 |     }
202 | }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:200:32: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
198 |
199 |         let request = URLRequest(url: url)
200 |         return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
201 |     }
202 | }
[16/32] Compiling AdzerkSDK UserDB.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:31:17: warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
 29 |             logger.log(.warning, message: "WARNING: No userKey specified, and none can be found in the configured key store.")
 30 |             transport.callbackQueue.async {
 31 |                 completion(.failure(.missingUserKey))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 32 |             }
 33 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:41:17: warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
 39 |             logger.log(.warning, message: "WARNING: unable to construct readUser URL")
 40 |             transport.callbackQueue.async {
 41 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 42 |             }
 43 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:58:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 56 |             logger.log(.warning, message: "WARNING: No userKey specified, and none can be found in the configured key store.")
 57 |             transport.callbackQueue.async {
 58 |                 completion(.failure(.missingUserKey))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 59 |             }
 60 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:68:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 66 |             logger.log(.warning, message: "WARNING: unable to construct readUser URL")
 67 |             transport.callbackQueue.async {
 68 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 69 |             }
 70 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:78:40: warning: capture of 'self' with non-sendable type 'UserDB' in a '@Sendable' closure
  8 | import Foundation
  9 |
 10 | public class UserDB {
    |              `- note: class 'UserDB' does not conform to the 'Sendable' protocol
 11 |     private let baseURL: URL
 12 |     private let networkId: Int
    :
 76 |             request.httpMethod = "POST"
 77 |             do {
 78 |                 request.httpBody = try self.encoder.encode(properties)
    |                                        `- warning: capture of 'self' with non-sendable type 'UserDB' in a '@Sendable' closure
 79 |                 self.transport.send(request,
 80 |                                decode: { _ in () }, // we don't care about the response
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:78:60: warning: capture of 'properties' with non-sendable type '[String : AnyCodable]' in a '@Sendable' closure
 76 |             request.httpMethod = "POST"
 77 |             do {
 78 |                 request.httpBody = try self.encoder.encode(properties)
    |                                                            `- warning: capture of 'properties' with non-sendable type '[String : AnyCodable]' in a '@Sendable' closure
 79 |                 self.transport.send(request,
 80 |                                decode: { _ in () }, // we don't care about the response
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AnyCodable.swift:13:22: note: consider making enum 'AnyCodable' conform to the 'Sendable' protocol
11 |     Supported types are `Int`, `String`, `Float`, `Bool`, as well as arrays and dictionaries of any of these.
12 |  */
13 | public indirect enum AnyCodable: Codable {
   |                      `- note: consider making enum 'AnyCodable' conform to the 'Sendable' protocol
14 |     case null
15 |     case int(Int)
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:81:44: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 79 |                 self.transport.send(request,
 80 |                                decode: { _ in () }, // we don't care about the response
 81 |                                completion: completion)
    |                                            |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 82 |             } catch {
 83 |                 self.transport.callbackQueue.async {
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:84:21: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 82 |             } catch {
 83 |                 self.transport.callbackQueue.async {
 84 |                     completion(.failure(.errorPreparingRequest(error)))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 85 |                 }
 86 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:106:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
104 |             logger.log(.warning, message: "WARNING: No userKey specified, and none can be found in the configured key store.")
105 |             transport.callbackQueue.async {
106 |                 completion(.failure(.missingUserKey))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
107 |             }
108 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:118:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
116 |             logger.log(.warning, message: "WARNING: unable to construct readUser URL")
117 |             transport.callbackQueue.async {
118 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
119 |             }
120 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:147:32: warning: non-sendable result type 'Result<User, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
145 |
146 |         let request = URLRequest(url: url)
147 |         return await transport.send(request, decode: { data in
    |                                `- warning: non-sendable result type 'Result<User, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
148 |             try self.decoder.decode(User.self, from: data)
149 |         })
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/User.swift:10:15: note: consider making struct 'User' conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | public struct User: Codable {
   |               `- note: consider making struct 'User' conform to the 'Sendable' protocol
11 |     public let key: String
12 |     /// The assigned cohort for the User
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:147:32: warning: sending value of non-Sendable type '(Data) throws -> User' risks causing data races; this is an error in the Swift 6 language mode
145 |
146 |         let request = URLRequest(url: url)
147 |         return await transport.send(request, decode: { data in
    |                                |- warning: sending value of non-Sendable type '(Data) throws -> User' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated value of non-Sendable type '(Data) throws -> User' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
148 |             try self.decoder.decode(User.self, from: data)
149 |         })
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:147:32: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
145 |
146 |         let request = URLRequest(url: url)
147 |         return await transport.send(request, decode: { data in
    |                                |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
148 |             try self.decoder.decode(User.self, from: data)
149 |         })
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:168:36: warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
166 |         do {
167 |             request.httpBody = try self.encoder.encode(properties)
168 |             return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                    |- warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated value of non-Sendable type '(Data) -> ()' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
169 |         } catch {
170 |             return .failure(.errorPreparingRequest(error))
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:168:36: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
166 |         do {
167 |             request.httpBody = try self.encoder.encode(properties)
168 |             return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                    |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
169 |         } catch {
170 |             return .failure(.errorPreparingRequest(error))
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:200:32: warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
198 |
199 |         let request = URLRequest(url: url)
200 |         return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                |- warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated value of non-Sendable type '(Data) -> ()' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
201 |     }
202 | }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:200:32: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
198 |
199 |         let request = URLRequest(url: url)
200 |         return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
201 |     }
202 | }
[17/32] Compiling AdzerkSDK UserIdentifier.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:31:17: warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
 29 |             logger.log(.warning, message: "WARNING: No userKey specified, and none can be found in the configured key store.")
 30 |             transport.callbackQueue.async {
 31 |                 completion(.failure(.missingUserKey))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 32 |             }
 33 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:41:17: warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
 39 |             logger.log(.warning, message: "WARNING: unable to construct readUser URL")
 40 |             transport.callbackQueue.async {
 41 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<User, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 42 |             }
 43 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:58:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 56 |             logger.log(.warning, message: "WARNING: No userKey specified, and none can be found in the configured key store.")
 57 |             transport.callbackQueue.async {
 58 |                 completion(.failure(.missingUserKey))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 59 |             }
 60 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:68:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 66 |             logger.log(.warning, message: "WARNING: unable to construct readUser URL")
 67 |             transport.callbackQueue.async {
 68 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 69 |             }
 70 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:78:40: warning: capture of 'self' with non-sendable type 'UserDB' in a '@Sendable' closure
  8 | import Foundation
  9 |
 10 | public class UserDB {
    |              `- note: class 'UserDB' does not conform to the 'Sendable' protocol
 11 |     private let baseURL: URL
 12 |     private let networkId: Int
    :
 76 |             request.httpMethod = "POST"
 77 |             do {
 78 |                 request.httpBody = try self.encoder.encode(properties)
    |                                        `- warning: capture of 'self' with non-sendable type 'UserDB' in a '@Sendable' closure
 79 |                 self.transport.send(request,
 80 |                                decode: { _ in () }, // we don't care about the response
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:78:60: warning: capture of 'properties' with non-sendable type '[String : AnyCodable]' in a '@Sendable' closure
 76 |             request.httpMethod = "POST"
 77 |             do {
 78 |                 request.httpBody = try self.encoder.encode(properties)
    |                                                            `- warning: capture of 'properties' with non-sendable type '[String : AnyCodable]' in a '@Sendable' closure
 79 |                 self.transport.send(request,
 80 |                                decode: { _ in () }, // we don't care about the response
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Codable/AnyCodable.swift:13:22: note: consider making enum 'AnyCodable' conform to the 'Sendable' protocol
11 |     Supported types are `Int`, `String`, `Float`, `Bool`, as well as arrays and dictionaries of any of these.
12 |  */
13 | public indirect enum AnyCodable: Codable {
   |                      `- note: consider making enum 'AnyCodable' conform to the 'Sendable' protocol
14 |     case null
15 |     case int(Int)
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:81:44: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 79 |                 self.transport.send(request,
 80 |                                decode: { _ in () }, // we don't care about the response
 81 |                                completion: completion)
    |                                            |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                                            `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 82 |             } catch {
 83 |                 self.transport.callbackQueue.async {
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:84:21: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
 82 |             } catch {
 83 |                 self.transport.callbackQueue.async {
 84 |                     completion(.failure(.errorPreparingRequest(error)))
    |                     |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 85 |                 }
 86 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:106:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
104 |             logger.log(.warning, message: "WARNING: No userKey specified, and none can be found in the configured key store.")
105 |             transport.callbackQueue.async {
106 |                 completion(.failure(.missingUserKey))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
107 |             }
108 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:118:17: warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
116 |             logger.log(.warning, message: "WARNING: unable to construct readUser URL")
117 |             transport.callbackQueue.async {
118 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<Void, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
119 |             }
120 |             return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:147:32: warning: non-sendable result type 'Result<User, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
145 |
146 |         let request = URLRequest(url: url)
147 |         return await transport.send(request, decode: { data in
    |                                `- warning: non-sendable result type 'Result<User, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
148 |             try self.decoder.decode(User.self, from: data)
149 |         })
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/User.swift:10:15: note: consider making struct 'User' conform to the 'Sendable' protocol
 8 | import Foundation
 9 |
10 | public struct User: Codable {
   |               `- note: consider making struct 'User' conform to the 'Sendable' protocol
11 |     public let key: String
12 |     /// The assigned cohort for the User
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:147:32: warning: sending value of non-Sendable type '(Data) throws -> User' risks causing data races; this is an error in the Swift 6 language mode
145 |
146 |         let request = URLRequest(url: url)
147 |         return await transport.send(request, decode: { data in
    |                                |- warning: sending value of non-Sendable type '(Data) throws -> User' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated value of non-Sendable type '(Data) throws -> User' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
148 |             try self.decoder.decode(User.self, from: data)
149 |         })
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:147:32: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
145 |
146 |         let request = URLRequest(url: url)
147 |         return await transport.send(request, decode: { data in
    |                                |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
148 |             try self.decoder.decode(User.self, from: data)
149 |         })
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:168:36: warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
166 |         do {
167 |             request.httpBody = try self.encoder.encode(properties)
168 |             return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                    |- warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated value of non-Sendable type '(Data) -> ()' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
169 |         } catch {
170 |             return .failure(.errorPreparingRequest(error))
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:168:36: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
166 |         do {
167 |             request.httpBody = try self.encoder.encode(properties)
168 |             return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                    |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
169 |         } catch {
170 |             return .failure(.errorPreparingRequest(error))
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:200:32: warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
198 |
199 |         let request = URLRequest(url: url)
200 |         return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                |- warning: sending value of non-Sendable type '(Data) -> ()' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated value of non-Sendable type '(Data) -> ()' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
201 |     }
202 | }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/UserDB.swift:200:32: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
198 |
199 |         let request = URLRequest(url: url)
200 |         return await transport.send(request, decode: { _ in () }) // we don't care about the response
    |                                |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
201 |     }
202 | }
[18/32] Compiling AdzerkSDK KeychainHelper.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:104:10: warning: non-sendable type 'Result<T, AdzerkError>' cannot be returned from main actor-isolated implementation to caller of protocol requirement 'send(_:decode:)'; this is an error in the Swift 6 language mode
102 |     }
103 |
104 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError> {
    |          |    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
    |          `- warning: non-sendable type 'Result<T, AdzerkError>' cannot be returned from main actor-isolated implementation to caller of protocol requirement 'send(_:decode:)'; this is an error in the Swift 6 language mode
105 |         let dataResult = await send(request)
106 |         return mapResult(dataResult, map: decode)
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:104:10: warning: non-sendable parameter type '(Data) throws -> T' cannot be sent from caller of protocol requirement 'send(_:decode:)' into main actor-isolated implementation; this is an error in the Swift 6 language mode
102 |     }
103 |
104 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError> {
    |          `- warning: non-sendable parameter type '(Data) throws -> T' cannot be sent from caller of protocol requirement 'send(_:decode:)' into main actor-isolated implementation; this is an error in the Swift 6 language mode
105 |         let dataResult = await send(request)
106 |         return mapResult(dataResult, map: decode)
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/Transport.swift:26:10: note: a function type must be marked '@Sendable' to conform to 'Sendable'
24 |
25 |     @available(macOS 12.0, iOS 15.0, watchOS 8.0, tvOS 15.0, *)
26 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError>
   |          `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
27 |
28 | #endif
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:26:17: warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
  8 | import Foundation
  9 |
 10 | struct NetworkTransport: Transport {
    |        `- note: consider making struct 'NetworkTransport' conform to the 'Sendable' protocol
 11 |     let session: URLSession
 12 |     let logger: Logger
    :
 24 |         let task = session.dataTask(with: request) { (data, response, error) in
 25 |             if let error = error {
 26 |                 self.dispatch(.failure(.networkingError(error)), to: completion)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
 27 |                 return
 28 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:26:70: warning: capture of 'completion' with non-sendable type '(Result<Data, AdzerkError>) -> Void' in a '@Sendable' closure
 24 |         let task = session.dataTask(with: request) { (data, response, error) in
 25 |             if let error = error {
 26 |                 self.dispatch(.failure(.networkingError(error)), to: completion)
    |                                                                      |- warning: capture of 'completion' with non-sendable type '(Result<Data, AdzerkError>) -> Void' in a '@Sendable' closure
    |                                                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 27 |                 return
 28 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:51:30: warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
  8 | import Foundation
  9 |
 10 | struct NetworkTransport: Transport {
    |        `- note: consider making struct 'NetworkTransport' conform to the 'Sendable' protocol
 11 |     let session: URLSession
 12 |     let logger: Logger
    :
 49 |         send(request) { dataResult in
 50 |             DispatchQueue.global().async {
 51 |                 let result = mapResult(dataResult, map: decode)
    |                              `- warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
 52 |                 dispatch(result, to: completion)
 53 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:51:57: warning: capture of 'decode' with non-sendable type '(Data) throws -> T' in a '@Sendable' closure
 49 |         send(request) { dataResult in
 50 |             DispatchQueue.global().async {
 51 |                 let result = mapResult(dataResult, map: decode)
    |                                                         |- warning: capture of 'decode' with non-sendable type '(Data) throws -> T' in a '@Sendable' closure
    |                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 52 |                 dispatch(result, to: completion)
 53 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:52:38: warning: capture of 'completion' with non-sendable type '(Result<T, AdzerkError>) -> Void' in a '@Sendable' closure
 50 |             DispatchQueue.global().async {
 51 |                 let result = mapResult(dataResult, map: decode)
 52 |                 dispatch(result, to: completion)
    |                                      |- warning: capture of 'completion' with non-sendable type '(Result<T, AdzerkError>) -> Void' in a '@Sendable' closure
    |                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 53 |             }
 54 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:75:13: warning: capture of 'completion' with non-sendable type '(Result<R, E>) -> Void' in a '@Sendable' closure
 73 |     private func dispatch<R, E>(_ result: Result<R, E>, to completion: @escaping (Result<R, E>) -> Void) {
 74 |         callbackQueue.async {
 75 |             completion(result)
    |             |- warning: capture of 'completion' with non-sendable type '(Result<R, E>) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 76 |         }
 77 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:75:24: warning: capture of 'result' with non-sendable type 'Result<R, E>' in a '@Sendable' closure
 71 |     }
 72 |
 73 |     private func dispatch<R, E>(_ result: Result<R, E>, to completion: @escaping (Result<R, E>) -> Void) {
    |                           `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
 74 |         callbackQueue.async {
 75 |             completion(result)
    |                        `- warning: capture of 'result' with non-sendable type 'Result<R, E>' in a '@Sendable' closure
 76 |         }
 77 |     }
[19/32] Compiling AdzerkSDK Logger.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:104:10: warning: non-sendable type 'Result<T, AdzerkError>' cannot be returned from main actor-isolated implementation to caller of protocol requirement 'send(_:decode:)'; this is an error in the Swift 6 language mode
102 |     }
103 |
104 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError> {
    |          |    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
    |          `- warning: non-sendable type 'Result<T, AdzerkError>' cannot be returned from main actor-isolated implementation to caller of protocol requirement 'send(_:decode:)'; this is an error in the Swift 6 language mode
105 |         let dataResult = await send(request)
106 |         return mapResult(dataResult, map: decode)
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:104:10: warning: non-sendable parameter type '(Data) throws -> T' cannot be sent from caller of protocol requirement 'send(_:decode:)' into main actor-isolated implementation; this is an error in the Swift 6 language mode
102 |     }
103 |
104 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError> {
    |          `- warning: non-sendable parameter type '(Data) throws -> T' cannot be sent from caller of protocol requirement 'send(_:decode:)' into main actor-isolated implementation; this is an error in the Swift 6 language mode
105 |         let dataResult = await send(request)
106 |         return mapResult(dataResult, map: decode)
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/Transport.swift:26:10: note: a function type must be marked '@Sendable' to conform to 'Sendable'
24 |
25 |     @available(macOS 12.0, iOS 15.0, watchOS 8.0, tvOS 15.0, *)
26 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError>
   |          `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
27 |
28 | #endif
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:26:17: warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
  8 | import Foundation
  9 |
 10 | struct NetworkTransport: Transport {
    |        `- note: consider making struct 'NetworkTransport' conform to the 'Sendable' protocol
 11 |     let session: URLSession
 12 |     let logger: Logger
    :
 24 |         let task = session.dataTask(with: request) { (data, response, error) in
 25 |             if let error = error {
 26 |                 self.dispatch(.failure(.networkingError(error)), to: completion)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
 27 |                 return
 28 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:26:70: warning: capture of 'completion' with non-sendable type '(Result<Data, AdzerkError>) -> Void' in a '@Sendable' closure
 24 |         let task = session.dataTask(with: request) { (data, response, error) in
 25 |             if let error = error {
 26 |                 self.dispatch(.failure(.networkingError(error)), to: completion)
    |                                                                      |- warning: capture of 'completion' with non-sendable type '(Result<Data, AdzerkError>) -> Void' in a '@Sendable' closure
    |                                                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 27 |                 return
 28 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:51:30: warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
  8 | import Foundation
  9 |
 10 | struct NetworkTransport: Transport {
    |        `- note: consider making struct 'NetworkTransport' conform to the 'Sendable' protocol
 11 |     let session: URLSession
 12 |     let logger: Logger
    :
 49 |         send(request) { dataResult in
 50 |             DispatchQueue.global().async {
 51 |                 let result = mapResult(dataResult, map: decode)
    |                              `- warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
 52 |                 dispatch(result, to: completion)
 53 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:51:57: warning: capture of 'decode' with non-sendable type '(Data) throws -> T' in a '@Sendable' closure
 49 |         send(request) { dataResult in
 50 |             DispatchQueue.global().async {
 51 |                 let result = mapResult(dataResult, map: decode)
    |                                                         |- warning: capture of 'decode' with non-sendable type '(Data) throws -> T' in a '@Sendable' closure
    |                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 52 |                 dispatch(result, to: completion)
 53 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:52:38: warning: capture of 'completion' with non-sendable type '(Result<T, AdzerkError>) -> Void' in a '@Sendable' closure
 50 |             DispatchQueue.global().async {
 51 |                 let result = mapResult(dataResult, map: decode)
 52 |                 dispatch(result, to: completion)
    |                                      |- warning: capture of 'completion' with non-sendable type '(Result<T, AdzerkError>) -> Void' in a '@Sendable' closure
    |                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 53 |             }
 54 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:75:13: warning: capture of 'completion' with non-sendable type '(Result<R, E>) -> Void' in a '@Sendable' closure
 73 |     private func dispatch<R, E>(_ result: Result<R, E>, to completion: @escaping (Result<R, E>) -> Void) {
 74 |         callbackQueue.async {
 75 |             completion(result)
    |             |- warning: capture of 'completion' with non-sendable type '(Result<R, E>) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 76 |         }
 77 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:75:24: warning: capture of 'result' with non-sendable type 'Result<R, E>' in a '@Sendable' closure
 71 |     }
 72 |
 73 |     private func dispatch<R, E>(_ result: Result<R, E>, to completion: @escaping (Result<R, E>) -> Void) {
    |                           `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
 74 |         callbackQueue.async {
 75 |             completion(result)
    |                        `- warning: capture of 'result' with non-sendable type 'Result<R, E>' in a '@Sendable' closure
 76 |         }
 77 |     }
[20/32] Compiling AdzerkSDK NetworkTransport.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:104:10: warning: non-sendable type 'Result<T, AdzerkError>' cannot be returned from main actor-isolated implementation to caller of protocol requirement 'send(_:decode:)'; this is an error in the Swift 6 language mode
102 |     }
103 |
104 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError> {
    |          |    `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
    |          `- warning: non-sendable type 'Result<T, AdzerkError>' cannot be returned from main actor-isolated implementation to caller of protocol requirement 'send(_:decode:)'; this is an error in the Swift 6 language mode
105 |         let dataResult = await send(request)
106 |         return mapResult(dataResult, map: decode)
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:104:10: warning: non-sendable parameter type '(Data) throws -> T' cannot be sent from caller of protocol requirement 'send(_:decode:)' into main actor-isolated implementation; this is an error in the Swift 6 language mode
102 |     }
103 |
104 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError> {
    |          `- warning: non-sendable parameter type '(Data) throws -> T' cannot be sent from caller of protocol requirement 'send(_:decode:)' into main actor-isolated implementation; this is an error in the Swift 6 language mode
105 |         let dataResult = await send(request)
106 |         return mapResult(dataResult, map: decode)
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/Transport.swift:26:10: note: a function type must be marked '@Sendable' to conform to 'Sendable'
24 |
25 |     @available(macOS 12.0, iOS 15.0, watchOS 8.0, tvOS 15.0, *)
26 |     func send<T>(_ request: URLRequest, decode: @escaping (Data) throws -> T) async -> Result<T, AdzerkError>
   |          `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
27 |
28 | #endif
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:26:17: warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
  8 | import Foundation
  9 |
 10 | struct NetworkTransport: Transport {
    |        `- note: consider making struct 'NetworkTransport' conform to the 'Sendable' protocol
 11 |     let session: URLSession
 12 |     let logger: Logger
    :
 24 |         let task = session.dataTask(with: request) { (data, response, error) in
 25 |             if let error = error {
 26 |                 self.dispatch(.failure(.networkingError(error)), to: completion)
    |                 `- warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
 27 |                 return
 28 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:26:70: warning: capture of 'completion' with non-sendable type '(Result<Data, AdzerkError>) -> Void' in a '@Sendable' closure
 24 |         let task = session.dataTask(with: request) { (data, response, error) in
 25 |             if let error = error {
 26 |                 self.dispatch(.failure(.networkingError(error)), to: completion)
    |                                                                      |- warning: capture of 'completion' with non-sendable type '(Result<Data, AdzerkError>) -> Void' in a '@Sendable' closure
    |                                                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 27 |                 return
 28 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:51:30: warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
  8 | import Foundation
  9 |
 10 | struct NetworkTransport: Transport {
    |        `- note: consider making struct 'NetworkTransport' conform to the 'Sendable' protocol
 11 |     let session: URLSession
 12 |     let logger: Logger
    :
 49 |         send(request) { dataResult in
 50 |             DispatchQueue.global().async {
 51 |                 let result = mapResult(dataResult, map: decode)
    |                              `- warning: capture of 'self' with non-sendable type 'NetworkTransport' in a '@Sendable' closure
 52 |                 dispatch(result, to: completion)
 53 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:51:57: warning: capture of 'decode' with non-sendable type '(Data) throws -> T' in a '@Sendable' closure
 49 |         send(request) { dataResult in
 50 |             DispatchQueue.global().async {
 51 |                 let result = mapResult(dataResult, map: decode)
    |                                                         |- warning: capture of 'decode' with non-sendable type '(Data) throws -> T' in a '@Sendable' closure
    |                                                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 52 |                 dispatch(result, to: completion)
 53 |             }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:52:38: warning: capture of 'completion' with non-sendable type '(Result<T, AdzerkError>) -> Void' in a '@Sendable' closure
 50 |             DispatchQueue.global().async {
 51 |                 let result = mapResult(dataResult, map: decode)
 52 |                 dispatch(result, to: completion)
    |                                      |- warning: capture of 'completion' with non-sendable type '(Result<T, AdzerkError>) -> Void' in a '@Sendable' closure
    |                                      `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 53 |             }
 54 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:75:13: warning: capture of 'completion' with non-sendable type '(Result<R, E>) -> Void' in a '@Sendable' closure
 73 |     private func dispatch<R, E>(_ result: Result<R, E>, to completion: @escaping (Result<R, E>) -> Void) {
 74 |         callbackQueue.async {
 75 |             completion(result)
    |             |- warning: capture of 'completion' with non-sendable type '(Result<R, E>) -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 76 |         }
 77 |     }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NetworkTransport.swift:75:24: warning: capture of 'result' with non-sendable type 'Result<R, E>' in a '@Sendable' closure
 71 |     }
 72 |
 73 |     private func dispatch<R, E>(_ result: Result<R, E>, to completion: @escaping (Result<R, E>) -> Void) {
    |                           `- note: consider making generic parameter 'R' conform to the 'Sendable' protocol
 74 |         callbackQueue.async {
 75 |             completion(result)
    |                        `- warning: capture of 'result' with non-sendable type 'Result<R, E>' in a '@Sendable' closure
 76 |         }
 77 |     }
[21/32] Compiling AdzerkSDK Endpoint.swift
[22/32] Compiling AdzerkSDK FirePixelResponse.swift
[23/32] Compiling AdzerkSDK GeoPoint.swift
[24/32] Compiling AdzerkSDK AnyCodable.swift
[25/32] Compiling AdzerkSDK Decoder+AnyCodable.swift
[26/32] Compiling AdzerkSDK DynamicCodingKey.swift
[27/32] Compiling AdzerkSDK NoRedirectSessionDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NoRedirectSessionDelegate.swift:3:7: warning: non-final class 'NoRedirectSessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class NoRedirectSessionDelegate : NSObject, URLSessionTaskDelegate {
  |       `- warning: non-final class 'NoRedirectSessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |     public func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse, newRequest request: URLRequest, completionHandler complete: @escaping (URLRequest?) -> Void) {
5 |         complete(nil)
[28/32] Compiling AdzerkSDK Transport.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NoRedirectSessionDelegate.swift:3:7: warning: non-final class 'NoRedirectSessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class NoRedirectSessionDelegate : NSObject, URLSessionTaskDelegate {
  |       `- warning: non-final class 'NoRedirectSessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |     public func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse, newRequest request: URLRequest, completionHandler complete: @escaping (URLRequest?) -> Void) {
5 |         complete(nil)
[29/32] Compiling AdzerkSDK URL+Query.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/Networking/NoRedirectSessionDelegate.swift:3:7: warning: non-final class 'NoRedirectSessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | class NoRedirectSessionDelegate : NSObject, URLSessionTaskDelegate {
  |       `- warning: non-final class 'NoRedirectSessionDelegate' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
4 |     public func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse, newRequest request: URLRequest, completionHandler complete: @escaping (URLRequest?) -> Void) {
5 |         complete(nil)
[30/32] Compiling AdzerkSDK Consent.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:6:23: warning: static property 'SDKVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  4 | public class DecisionSDK {
  5 |
  6 |     public static var SDKVersion = AdzerkDecisionSDKVersionString
    |                       |- warning: static property 'SDKVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'SDKVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'SDKVersion' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  7 |
  8 |     /** Provides storage for the default network ID to be used with all placement requests. If a value is present here,
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:11:23: warning: static property 'defaultNetworkId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  9 |     each placement request does not need to provide it.  Any value in the placement request will override this value.
 10 |     Useful for the common case where the network ID is constant for your application. */
 11 |     public static var defaultNetworkId: Int?
    |                       |- warning: static property 'defaultNetworkId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultNetworkId' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultNetworkId' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 12 |
 13 |     /** Provides storage for the default site ID to be used with all placement requests. If a value is present here,
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:17:23: warning: static property 'defaultSiteId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 15 |     Useful for the common case where the network ID is constant for your application.
 16 |     */
 17 |     public static var defaultSiteId: Int?
    |                       |- warning: static property 'defaultSiteId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSiteId' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSiteId' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |
 19 |     public static var logger = Logger()
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:19: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
 17 |     public static var defaultSiteId: Int?
 18 |
 19 |     public static var logger = Logger()
    |                       |- 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
 20 |
 21 |     /** The base URL template to use for API requests. {subdomain} must be replaced in this template string before use. */
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:24:24: warning: static property '_hostOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 22 |     private static let AdzerkHostnameTemplate = "{subdomain}.adzerk.net"
 23 |
 24 |     private static var _hostOverride: String?
    |                        |- warning: static property '_hostOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert '_hostOverride' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property '_hostOverride' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |
 26 |     /** The host to use for outgoing API requests. If not set, a default Adzerk hostname will be
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:106:17: warning: capture of 'completion' with non-sendable type '(Result<PlacementResponse, AdzerkError>) -> Void' in a '@Sendable' closure
104 |         } catch {
105 |             queue.async {
106 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<PlacementResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
107 |             }
108 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:146:21: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
144 |             if let error = error {
145 |                 callbackQueue.async {
146 |                     complete(.failure(.networkingError(error)))
    |                     |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
147 |                 }
148 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:146:21: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
144 |             if let error = error {
145 |                 callbackQueue.async {
146 |                     complete(.failure(.networkingError(error)))
    |                     |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
147 |                 }
148 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:153:21: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
151 |             guard let http = response as? HTTPURLResponse else {
152 |                 callbackQueue.async {
153 |                     complete(.failure(.invalidResponse))
    |                     |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
154 |                 }
155 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:163:17: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
161 |
162 |             callbackQueue.async {
163 |                 complete(.success(firePixelResponse))
    |                 |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
164 |             }
165 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:163:35: warning: capture of 'firePixelResponse' with non-sendable type 'FirePixelResponse' in a '@Sendable' closure
161 |
162 |             callbackQueue.async {
163 |                 complete(.success(firePixelResponse))
    |                                   `- warning: capture of 'firePixelResponse' with non-sendable type 'FirePixelResponse' in a '@Sendable' closure
164 |             }
165 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/FirePixelResponse.swift:3:15: note: consider making struct 'FirePixelResponse' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct FirePixelResponse: Codable {
  |               `- note: consider making struct 'FirePixelResponse' conform to the 'Sendable' protocol
4 |     public let statusCode: Int
5 |     public let location: String?
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:199:36: warning: non-sendable result type 'Result<PlacementResponse, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
197 |             req.httpBody = try PlacementRequest(placements: placements, options: options, userKeyStore: keyStore).encodeBody()
198 |
199 |             return await transport.send(req, decode: { data in
    |                                    `- warning: non-sendable result type 'Result<PlacementResponse, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
200 |                 let response = try self.decoder.decode(PlacementResponse.self, from: data)
201 |
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/PlacementResponse.swift:14:15: note: consider making struct 'PlacementResponse' conform to the 'Sendable' protocol
12 |     Documentation can be found at: https://dev.adzerk.com/reference/response
13 | */
14 | public struct PlacementResponse: Codable {
   |               `- note: consider making struct 'PlacementResponse' conform to the 'Sendable' protocol
15 |     public let decisions: [String: [PlacementDecision]]
16 |     public let extraAttributes: [String: AnyCodable]
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:199:36: warning: sending value of non-Sendable type '(Data) throws -> PlacementResponse' risks causing data races; this is an error in the Swift 6 language mode
197 |             req.httpBody = try PlacementRequest(placements: placements, options: options, userKeyStore: keyStore).encodeBody()
198 |
199 |             return await transport.send(req, decode: { data in
    |                                    |- warning: sending value of non-Sendable type '(Data) throws -> PlacementResponse' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated value of non-Sendable type '(Data) throws -> PlacementResponse' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
200 |                 let response = try self.decoder.decode(PlacementResponse.self, from: data)
201 |
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:199:36: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
197 |             req.httpBody = try PlacementRequest(placements: placements, options: options, userKeyStore: keyStore).encodeBody()
198 |
199 |             return await transport.send(req, decode: { data in
    |                                    |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
200 |                 let response = try self.decoder.decode(PlacementResponse.self, from: data)
201 |
[31/32] Compiling AdzerkSDK DecisionSDK-Version.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:6:23: warning: static property 'SDKVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  4 | public class DecisionSDK {
  5 |
  6 |     public static var SDKVersion = AdzerkDecisionSDKVersionString
    |                       |- warning: static property 'SDKVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'SDKVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'SDKVersion' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  7 |
  8 |     /** Provides storage for the default network ID to be used with all placement requests. If a value is present here,
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:11:23: warning: static property 'defaultNetworkId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  9 |     each placement request does not need to provide it.  Any value in the placement request will override this value.
 10 |     Useful for the common case where the network ID is constant for your application. */
 11 |     public static var defaultNetworkId: Int?
    |                       |- warning: static property 'defaultNetworkId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultNetworkId' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultNetworkId' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 12 |
 13 |     /** Provides storage for the default site ID to be used with all placement requests. If a value is present here,
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:17:23: warning: static property 'defaultSiteId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 15 |     Useful for the common case where the network ID is constant for your application.
 16 |     */
 17 |     public static var defaultSiteId: Int?
    |                       |- warning: static property 'defaultSiteId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSiteId' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSiteId' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |
 19 |     public static var logger = Logger()
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:19: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
 17 |     public static var defaultSiteId: Int?
 18 |
 19 |     public static var logger = Logger()
    |                       |- 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
 20 |
 21 |     /** The base URL template to use for API requests. {subdomain} must be replaced in this template string before use. */
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:24:24: warning: static property '_hostOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 22 |     private static let AdzerkHostnameTemplate = "{subdomain}.adzerk.net"
 23 |
 24 |     private static var _hostOverride: String?
    |                        |- warning: static property '_hostOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert '_hostOverride' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property '_hostOverride' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |
 26 |     /** The host to use for outgoing API requests. If not set, a default Adzerk hostname will be
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:106:17: warning: capture of 'completion' with non-sendable type '(Result<PlacementResponse, AdzerkError>) -> Void' in a '@Sendable' closure
104 |         } catch {
105 |             queue.async {
106 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<PlacementResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
107 |             }
108 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:146:21: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
144 |             if let error = error {
145 |                 callbackQueue.async {
146 |                     complete(.failure(.networkingError(error)))
    |                     |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
147 |                 }
148 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:146:21: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
144 |             if let error = error {
145 |                 callbackQueue.async {
146 |                     complete(.failure(.networkingError(error)))
    |                     |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
147 |                 }
148 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:153:21: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
151 |             guard let http = response as? HTTPURLResponse else {
152 |                 callbackQueue.async {
153 |                     complete(.failure(.invalidResponse))
    |                     |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
154 |                 }
155 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:163:17: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
161 |
162 |             callbackQueue.async {
163 |                 complete(.success(firePixelResponse))
    |                 |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
164 |             }
165 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:163:35: warning: capture of 'firePixelResponse' with non-sendable type 'FirePixelResponse' in a '@Sendable' closure
161 |
162 |             callbackQueue.async {
163 |                 complete(.success(firePixelResponse))
    |                                   `- warning: capture of 'firePixelResponse' with non-sendable type 'FirePixelResponse' in a '@Sendable' closure
164 |             }
165 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/FirePixelResponse.swift:3:15: note: consider making struct 'FirePixelResponse' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct FirePixelResponse: Codable {
  |               `- note: consider making struct 'FirePixelResponse' conform to the 'Sendable' protocol
4 |     public let statusCode: Int
5 |     public let location: String?
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:199:36: warning: non-sendable result type 'Result<PlacementResponse, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
197 |             req.httpBody = try PlacementRequest(placements: placements, options: options, userKeyStore: keyStore).encodeBody()
198 |
199 |             return await transport.send(req, decode: { data in
    |                                    `- warning: non-sendable result type 'Result<PlacementResponse, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
200 |                 let response = try self.decoder.decode(PlacementResponse.self, from: data)
201 |
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/PlacementResponse.swift:14:15: note: consider making struct 'PlacementResponse' conform to the 'Sendable' protocol
12 |     Documentation can be found at: https://dev.adzerk.com/reference/response
13 | */
14 | public struct PlacementResponse: Codable {
   |               `- note: consider making struct 'PlacementResponse' conform to the 'Sendable' protocol
15 |     public let decisions: [String: [PlacementDecision]]
16 |     public let extraAttributes: [String: AnyCodable]
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:199:36: warning: sending value of non-Sendable type '(Data) throws -> PlacementResponse' risks causing data races; this is an error in the Swift 6 language mode
197 |             req.httpBody = try PlacementRequest(placements: placements, options: options, userKeyStore: keyStore).encodeBody()
198 |
199 |             return await transport.send(req, decode: { data in
    |                                    |- warning: sending value of non-Sendable type '(Data) throws -> PlacementResponse' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated value of non-Sendable type '(Data) throws -> PlacementResponse' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
200 |                 let response = try self.decoder.decode(PlacementResponse.self, from: data)
201 |
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:199:36: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
197 |             req.httpBody = try PlacementRequest(placements: placements, options: options, userKeyStore: keyStore).encodeBody()
198 |
199 |             return await transport.send(req, decode: { data in
    |                                    |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
200 |                 let response = try self.decoder.decode(PlacementResponse.self, from: data)
201 |
[32/32] Compiling AdzerkSDK DecisionSDK.swift
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:6:23: warning: static property 'SDKVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  4 | public class DecisionSDK {
  5 |
  6 |     public static var SDKVersion = AdzerkDecisionSDKVersionString
    |                       |- warning: static property 'SDKVersion' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'SDKVersion' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'SDKVersion' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
  7 |
  8 |     /** Provides storage for the default network ID to be used with all placement requests. If a value is present here,
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:11:23: warning: static property 'defaultNetworkId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
  9 |     each placement request does not need to provide it.  Any value in the placement request will override this value.
 10 |     Useful for the common case where the network ID is constant for your application. */
 11 |     public static var defaultNetworkId: Int?
    |                       |- warning: static property 'defaultNetworkId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultNetworkId' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultNetworkId' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 12 |
 13 |     /** Provides storage for the default site ID to be used with all placement requests. If a value is present here,
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:17:23: warning: static property 'defaultSiteId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 15 |     Useful for the common case where the network ID is constant for your application.
 16 |     */
 17 |     public static var defaultSiteId: Int?
    |                       |- warning: static property 'defaultSiteId' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSiteId' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSiteId' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 18 |
 19 |     public static var logger = Logger()
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:19: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
 17 |     public static var defaultSiteId: Int?
 18 |
 19 |     public static var logger = Logger()
    |                       |- 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
 20 |
 21 |     /** The base URL template to use for API requests. {subdomain} must be replaced in this template string before use. */
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:24:24: warning: static property '_hostOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 22 |     private static let AdzerkHostnameTemplate = "{subdomain}.adzerk.net"
 23 |
 24 |     private static var _hostOverride: String?
    |                        |- warning: static property '_hostOverride' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert '_hostOverride' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property '_hostOverride' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 25 |
 26 |     /** The host to use for outgoing API requests. If not set, a default Adzerk hostname will be
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:106:17: warning: capture of 'completion' with non-sendable type '(Result<PlacementResponse, AdzerkError>) -> Void' in a '@Sendable' closure
104 |         } catch {
105 |             queue.async {
106 |                 completion(.failure(.errorPreparingRequest(nil)))
    |                 |- warning: capture of 'completion' with non-sendable type '(Result<PlacementResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
107 |             }
108 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:146:21: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
144 |             if let error = error {
145 |                 callbackQueue.async {
146 |                     complete(.failure(.networkingError(error)))
    |                     |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
147 |                 }
148 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:146:21: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
144 |             if let error = error {
145 |                 callbackQueue.async {
146 |                     complete(.failure(.networkingError(error)))
    |                     |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
147 |                 }
148 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:153:21: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
151 |             guard let http = response as? HTTPURLResponse else {
152 |                 callbackQueue.async {
153 |                     complete(.failure(.invalidResponse))
    |                     |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                     `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
154 |                 }
155 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:163:17: warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
161 |
162 |             callbackQueue.async {
163 |                 complete(.success(firePixelResponse))
    |                 |- warning: capture of 'complete' with non-sendable type '(Result<FirePixelResponse, AdzerkError>) -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
164 |             }
165 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:163:35: warning: capture of 'firePixelResponse' with non-sendable type 'FirePixelResponse' in a '@Sendable' closure
161 |
162 |             callbackQueue.async {
163 |                 complete(.success(firePixelResponse))
    |                                   `- warning: capture of 'firePixelResponse' with non-sendable type 'FirePixelResponse' in a '@Sendable' closure
164 |             }
165 |         }
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/FirePixelResponse.swift:3:15: note: consider making struct 'FirePixelResponse' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct FirePixelResponse: Codable {
  |               `- note: consider making struct 'FirePixelResponse' conform to the 'Sendable' protocol
4 |     public let statusCode: Int
5 |     public let location: String?
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:199:36: warning: non-sendable result type 'Result<PlacementResponse, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
197 |             req.httpBody = try PlacementRequest(placements: placements, options: options, userKeyStore: keyStore).encodeBody()
198 |
199 |             return await transport.send(req, decode: { data in
    |                                    `- warning: non-sendable result type 'Result<PlacementResponse, AdzerkError>' cannot be sent from nonisolated context in call to instance method 'send(_:decode:)'; this is an error in the Swift 6 language mode
200 |                 let response = try self.decoder.decode(PlacementResponse.self, from: data)
201 |
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/PlacementResponse.swift:14:15: note: consider making struct 'PlacementResponse' conform to the 'Sendable' protocol
12 |     Documentation can be found at: https://dev.adzerk.com/reference/response
13 | */
14 | public struct PlacementResponse: Codable {
   |               `- note: consider making struct 'PlacementResponse' conform to the 'Sendable' protocol
15 |     public let decisions: [String: [PlacementDecision]]
16 |     public let extraAttributes: [String: AnyCodable]
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:199:36: warning: sending value of non-Sendable type '(Data) throws -> PlacementResponse' risks causing data races; this is an error in the Swift 6 language mode
197 |             req.httpBody = try PlacementRequest(placements: placements, options: options, userKeyStore: keyStore).encodeBody()
198 |
199 |             return await transport.send(req, decode: { data in
    |                                    |- warning: sending value of non-Sendable type '(Data) throws -> PlacementResponse' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated value of non-Sendable type '(Data) throws -> PlacementResponse' to nonisolated instance method 'send(_:decode:)' risks causing races in between main actor-isolated and nonisolated uses
200 |                 let response = try self.decoder.decode(PlacementResponse.self, from: data)
201 |
/Users/admin/builder/spi-builder-workspace/Sources/AdzerkSDK/DecisionSDK.swift:199:36: warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
197 |             req.httpBody = try PlacementRequest(placements: placements, options: options, userKeyStore: keyStore).encodeBody()
198 |
199 |             return await transport.send(req, decode: { data in
    |                                    |- warning: sending 'self.transport' risks causing data races; this is an error in the Swift 6 language mode
    |                                    `- note: sending main actor-isolated 'self.transport' to nonisolated instance method 'send(_:decode:)' risks causing data races between nonisolated and main actor-isolated uses
200 |                 let response = try self.decoder.decode(PlacementResponse.self, from: data)
201 |
Build complete! (5.65s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "AdzerkSDK",
  "name" : "AdzerkSDK",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "10.0"
    },
    {
      "name" : "macos",
      "version" : "10.12"
    }
  ],
  "products" : [
    {
      "name" : "AdzerkSDK",
      "targets" : [
        "AdzerkSDK"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "AdzerkSDKTests",
      "module_type" : "SwiftTarget",
      "name" : "AdzerkSDKTests",
      "path" : "Tests/AdzerkSDKTests",
      "sources" : [
        "AnyCodableTests.swift",
        "DecisionSDKAsyncAwaitTests.swift",
        "DecisionSDKTests.swift",
        "FakeKeyStore.swift",
        "LoggerTests.swift",
        "PlacementRequestTests.swift",
        "PlacementTests.swift",
        "UserKeyStoreKeychainTests.swift",
        "XCAssert+Adzerk.swift",
        "XCTestManifests.swift"
      ],
      "target_dependencies" : [
        "AdzerkSDK"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AdzerkSDK",
      "module_type" : "SwiftTarget",
      "name" : "AdzerkSDK",
      "path" : "Sources/AdzerkSDK",
      "product_memberships" : [
        "AdzerkSDK"
      ],
      "sources" : [
        "AdzerkError.swift",
        "Codable/AdzerkJSONDecoder.swift",
        "Codable/AdzerkJSONEncoder.swift",
        "Codable/AnyCodable.swift",
        "Codable/Decoder+AnyCodable.swift",
        "Codable/DynamicCodingKey.swift",
        "Consent.swift",
        "DecisionSDK-Version.swift",
        "DecisionSDK.swift",
        "Endpoint.swift",
        "FirePixelResponse.swift",
        "GeoPoint.swift",
        "KeychainHelper.swift",
        "Logger.swift",
        "Networking/NetworkTransport.swift",
        "Networking/NoRedirectSessionDelegate.swift",
        "Networking/Transport.swift",
        "Networking/URL+Query.swift",
        "Placement.swift",
        "PlacementContent.swift",
        "PlacementDecision.swift",
        "PlacementEvent.swift",
        "PlacementRequest.swift",
        "PlacementResponse.swift",
        "User.swift",
        "UserDB.swift",
        "UserIdentifier.swift",
        "UserKeyStore.swift",
        "UserKeyStoreKeychain.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.