Build Information
Successful build of AdzerkSDK, reference master (1a7ffc), with Swift 6.1 for macOS (SPM) on 5 Mar 2026 03:14:50 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 InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/adzerk/adzerk-ios-sdk.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/adzerk/adzerk-ios-sdk
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
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 master
========================================
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 UserKeyStore.swift
[5/32] Compiling AdzerkSDK UserKeyStoreKeychain.swift
[6/32] Compiling AdzerkSDK AnyCodable.swift
[7/32] Compiling AdzerkSDK Decoder+AnyCodable.swift
[8/32] Compiling AdzerkSDK DynamicCodingKey.swift
[9/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()
[10/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()
[11/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()
[12/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 | }
[13/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 | }
[14/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 | }
[15/32] Compiling AdzerkSDK PlacementEvent.swift
[16/32] Compiling AdzerkSDK PlacementRequest.swift
[17/32] Compiling AdzerkSDK PlacementResponse.swift
[18/32] Compiling AdzerkSDK Endpoint.swift
[19/32] Compiling AdzerkSDK FirePixelResponse.swift
[20/32] Compiling AdzerkSDK GeoPoint.swift
[21/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)
[22/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)
[23/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)
[24/32] Compiling AdzerkSDK Placement.swift
[25/32] Compiling AdzerkSDK PlacementContent.swift
[26/32] Compiling AdzerkSDK PlacementDecision.swift
[27/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 |
[28/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 |
[29/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 |
[30/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 | }
[31/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 | }
[32/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 | }
Build complete! (5.56s)
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.