Build Information
Successful build of Amplitude-Swift, reference main (b6dd7d), with Swift 6.1 for macOS (SPM) on 21 Apr 2026 04:54:34 UTC.
Swift 6 data race errors: 19
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
494 | e.deviceId = e.deviceId ?? identity.deviceId
495 | self.timeline.processEvent(event: e)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Identity.swift:14:15: note: consider making struct 'Identity' conform to the 'Sendable' protocol
12 | #endif
13 |
14 | public struct Identity: AnalyticsIdentity {
| `- note: consider making struct 'Identity' conform to the 'Sendable' protocol
15 | public var userId: String?
16 | public var deviceId: String?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Amplitude.swift:494:44: warning: implicit capture of 'identity' requires that 'Identity' conforms to 'Sendable'; this is an error in the Swift 6 language mode
492 | events.forEach { e in
493 | e.userId = e.userId ?? identity.userId
494 | e.deviceId = e.deviceId ?? identity.deviceId
| `- warning: implicit capture of 'identity' requires that 'Identity' conforms to 'Sendable'; this is an error in the Swift 6 language mode
495 | self.timeline.processEvent(event: e)
496 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Identity.swift:14:15: note: consider making struct 'Identity' conform to the 'Sendable' protocol
12 | #endif
13 |
14 | public struct Identity: AnalyticsIdentity {
| `- note: consider making struct 'Identity' conform to the 'Sendable' protocol
15 | public var userId: String?
16 | public var deviceId: String?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Amplitude.swift:508:26: warning: capture of 'self' with non-sendable type 'Amplitude' in a '@Sendable' closure
7 | import Foundation
8 |
9 | public class Amplitude {
| `- note: class 'Amplitude' does not conform to the 'Sendable' protocol
10 |
11 | public private(set) var configuration: Configuration
:
506 | trackingQueue.async { [self, identity] in
507 | // set inForeground to false to represent state before event was fired
508 | let events = self.sessions.processEvent(event: dummySessionStartEvent, inForeground: false)
| `- warning: capture of 'self' with non-sendable type 'Amplitude' in a '@Sendable' closure
509 | if !configuration.optOut {
510 | events.forEach { e in
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Amplitude.swift:508:60: warning: capture of 'dummySessionStartEvent' with non-sendable type 'BaseEvent' in a '@Sendable' closure
506 | trackingQueue.async { [self, identity] in
507 | // set inForeground to false to represent state before event was fired
508 | let events = self.sessions.processEvent(event: dummySessionStartEvent, inForeground: false)
| `- warning: capture of 'dummySessionStartEvent' with non-sendable type 'BaseEvent' in a '@Sendable' closure
509 | if !configuration.optOut {
510 | events.forEach { e in
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Events/BaseEvent.swift:15:12: note: class 'BaseEvent' does not conform to the 'Sendable' protocol
13 | import Foundation
14 |
15 | open class BaseEvent: EventOptions, AnalyticsEvent, Codable {
| `- note: class 'BaseEvent' does not conform to the 'Sendable' protocol
16 | public var eventType: String
17 | public var eventProperties: [String: Any]?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Amplitude.swift:511:44: warning: capture of 'identity' with non-sendable type 'Identity' in a '@Sendable' closure
509 | if !configuration.optOut {
510 | events.forEach { e in
511 | e.userId = e.userId ?? identity.userId
| `- warning: capture of 'identity' with non-sendable type 'Identity' in a '@Sendable' closure
512 | e.deviceId = e.deviceId ?? identity.deviceId
513 | self.timeline.processEvent(event: e)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Identity.swift:14:15: note: consider making struct 'Identity' conform to the 'Sendable' protocol
12 | #endif
13 |
14 | public struct Identity: AnalyticsIdentity {
| `- note: consider making struct 'Identity' conform to the 'Sendable' protocol
15 | public var userId: String?
16 | public var deviceId: String?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Amplitude.swift:511:44: warning: capture of 'identity' with non-sendable type 'Identity' in an isolated closure; this is an error in the Swift 6 language mode
509 | if !configuration.optOut {
510 | events.forEach { e in
511 | e.userId = e.userId ?? identity.userId
| `- warning: capture of 'identity' with non-sendable type 'Identity' in an isolated closure; this is an error in the Swift 6 language mode
512 | e.deviceId = e.deviceId ?? identity.deviceId
513 | self.timeline.processEvent(event: e)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Identity.swift:14:15: note: consider making struct 'Identity' conform to the 'Sendable' protocol
12 | #endif
13 |
14 | public struct Identity: AnalyticsIdentity {
| `- note: consider making struct 'Identity' conform to the 'Sendable' protocol
15 | public var userId: String?
16 | public var deviceId: String?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Amplitude.swift:513:21: warning: capture of 'self' with non-sendable type 'Amplitude' in an isolated closure; this is an error in the Swift 6 language mode
7 | import Foundation
8 |
9 | public class Amplitude {
| `- note: class 'Amplitude' does not conform to the 'Sendable' protocol
10 |
11 | public private(set) var configuration: Configuration
:
511 | e.userId = e.userId ?? identity.userId
512 | e.deviceId = e.deviceId ?? identity.deviceId
513 | self.timeline.processEvent(event: e)
| `- warning: capture of 'self' with non-sendable type 'Amplitude' in an isolated closure; this is an error in the Swift 6 language mode
514 | }
515 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Amplitude.swift:511:44: warning: implicit capture of 'identity' requires that 'Identity' conforms to 'Sendable'; this is an error in the Swift 6 language mode
509 | if !configuration.optOut {
510 | events.forEach { e in
511 | e.userId = e.userId ?? identity.userId
| `- warning: implicit capture of 'identity' requires that 'Identity' conforms to 'Sendable'; this is an error in the Swift 6 language mode
512 | e.deviceId = e.deviceId ?? identity.deviceId
513 | self.timeline.processEvent(event: e)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Identity.swift:14:15: note: consider making struct 'Identity' conform to the 'Sendable' protocol
12 | #endif
13 |
14 | public struct Identity: AnalyticsIdentity {
| `- note: consider making struct 'Identity' conform to the 'Sendable' protocol
15 | public var userId: String?
16 | public var deviceId: String?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Amplitude.swift:512:48: warning: implicit capture of 'identity' requires that 'Identity' conforms to 'Sendable'; this is an error in the Swift 6 language mode
510 | events.forEach { e in
511 | e.userId = e.userId ?? identity.userId
512 | e.deviceId = e.deviceId ?? identity.deviceId
| `- warning: implicit capture of 'identity' requires that 'Identity' conforms to 'Sendable'; this is an error in the Swift 6 language mode
513 | self.timeline.processEvent(event: e)
514 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Identity.swift:14:15: note: consider making struct 'Identity' conform to the 'Sendable' protocol
12 | #endif
13 |
14 | public struct Identity: AnalyticsIdentity {
| `- note: consider making struct 'Identity' conform to the 'Sendable' protocol
15 | public var userId: String?
16 | public var deviceId: String?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Amplitude.swift:522:13: warning: capture of 'self' with non-sendable type 'Amplitude' in a '@Sendable' closure
7 | import Foundation
8 |
9 | public class Amplitude {
| `- note: class 'Amplitude' does not conform to the 'Sendable' protocol
10 |
11 | public private(set) var configuration: Configuration
:
520 | inForeground = false
521 | trackingQueue.async { [self] in
522 | self.sessions.lastEventTime = timestamp
| `- warning: capture of 'self' with non-sendable type 'Amplitude' in a '@Sendable' closure
523 | }
524 | if configuration.flushEventsOnClose == true {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/AutocaptureOptions.swift:10:23: warning: static property 'sessions' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct AutocaptureOptions: OptionSet {
| `- note: consider making struct 'AutocaptureOptions' conform to the 'Sendable' protocol
4 | public let rawValue: Int
5 |
:
8 | }
9 |
10 | public static let sessions = AutocaptureOptions(rawValue: 1 << 0)
| |- warning: static property 'sessions' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'sessions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
11 | public static let appLifecycles = AutocaptureOptions(rawValue: 1 << 1)
12 | public static let screenViews = AutocaptureOptions(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/AutocaptureOptions.swift:11:23: warning: static property 'appLifecycles' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct AutocaptureOptions: OptionSet {
| `- note: consider making struct 'AutocaptureOptions' conform to the 'Sendable' protocol
4 | public let rawValue: Int
5 |
:
9 |
10 | public static let sessions = AutocaptureOptions(rawValue: 1 << 0)
11 | public static let appLifecycles = AutocaptureOptions(rawValue: 1 << 1)
| |- warning: static property 'appLifecycles' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'appLifecycles' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | public static let screenViews = AutocaptureOptions(rawValue: 1 << 2)
13 | public static let elementInteractions = AutocaptureOptions(rawValue: 1 << 3)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/AutocaptureOptions.swift:12:23: warning: static property 'screenViews' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct AutocaptureOptions: OptionSet {
| `- note: consider making struct 'AutocaptureOptions' conform to the 'Sendable' protocol
4 | public let rawValue: Int
5 |
:
10 | public static let sessions = AutocaptureOptions(rawValue: 1 << 0)
11 | public static let appLifecycles = AutocaptureOptions(rawValue: 1 << 1)
12 | public static let screenViews = AutocaptureOptions(rawValue: 1 << 2)
| |- warning: static property 'screenViews' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'screenViews' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
13 | public static let elementInteractions = AutocaptureOptions(rawValue: 1 << 3)
14 | /// Won't work on watchOS
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/AutocaptureOptions.swift:13:23: warning: static property 'elementInteractions' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct AutocaptureOptions: OptionSet {
| `- note: consider making struct 'AutocaptureOptions' conform to the 'Sendable' protocol
4 | public let rawValue: Int
5 |
:
11 | public static let appLifecycles = AutocaptureOptions(rawValue: 1 << 1)
12 | public static let screenViews = AutocaptureOptions(rawValue: 1 << 2)
13 | public static let elementInteractions = AutocaptureOptions(rawValue: 1 << 3)
| |- warning: static property 'elementInteractions' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'elementInteractions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
14 | /// Won't work on watchOS
15 | public static let networkTracking = AutocaptureOptions(rawValue: 1 << 4)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/AutocaptureOptions.swift:15:23: warning: static property 'networkTracking' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct AutocaptureOptions: OptionSet {
| `- note: consider making struct 'AutocaptureOptions' conform to the 'Sendable' protocol
4 | public let rawValue: Int
5 |
:
13 | public static let elementInteractions = AutocaptureOptions(rawValue: 1 << 3)
14 | /// Won't work on watchOS
15 | public static let networkTracking = AutocaptureOptions(rawValue: 1 << 4)
| |- warning: static property 'networkTracking' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'networkTracking' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
16 | /// Rage Click and Dead Click detection
17 | public static let frustrationInteractions = AutocaptureOptions(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/AutocaptureOptions.swift:17:23: warning: static property 'frustrationInteractions' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct AutocaptureOptions: OptionSet {
| `- note: consider making struct 'AutocaptureOptions' conform to the 'Sendable' protocol
4 | public let rawValue: Int
5 |
:
15 | public static let networkTracking = AutocaptureOptions(rawValue: 1 << 4)
16 | /// Rage Click and Dead Click detection
17 | public static let frustrationInteractions = AutocaptureOptions(rawValue: 1 << 5)
| |- warning: static property 'frustrationInteractions' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'frustrationInteractions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
18 |
19 | public static let all: AutocaptureOptions = [
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/AutocaptureOptions.swift:19:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
1 | import Foundation
2 |
3 | public struct AutocaptureOptions: OptionSet {
| `- note: consider making struct 'AutocaptureOptions' conform to the 'Sendable' protocol
4 | public let rawValue: Int
5 |
:
17 | public static let frustrationInteractions = AutocaptureOptions(rawValue: 1 << 5)
18 |
19 | public static let all: AutocaptureOptions = [
| |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
20 | .sessions,
21 | .appLifecycles,
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:32:27: warning: static property 'autocaptureOptions' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
30 | public static let flushEventsOnClose = true
31 | public static let maxQueuedEventCount = -1
32 | public static let autocaptureOptions: AutocaptureOptions = .sessions
| |- warning: static property 'autocaptureOptions' is not concurrency-safe because non-'Sendable' type 'AutocaptureOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'autocaptureOptions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
33 | public static let migrateLegacyData = true
34 | public static let enableAutoCaptureRemoteConfig = true
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/AutocaptureOptions.swift:3:15: note: consider making struct 'AutocaptureOptions' conform to the 'Sendable' protocol
1 | import Foundation
2 |
3 | public struct AutocaptureOptions: OptionSet {
| `- note: consider making struct 'AutocaptureOptions' conform to the 'Sendable' protocol
4 | public let rawValue: Int
5 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:35:27: warning: static property 'trackingOptions' is not concurrency-safe because non-'Sendable' type 'TrackingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
33 | public static let migrateLegacyData = true
34 | public static let enableAutoCaptureRemoteConfig = true
35 | public static let trackingOptions = TrackingOptions()
| |- warning: static property 'trackingOptions' is not concurrency-safe because non-'Sendable' type 'TrackingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'trackingOptions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 | public static let networkTrackingOptions = NetworkTrackingOptions.default
37 | public static let interactionsOptions = InteractionsOptions()
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/TrackingOptions.swift:10:14: note: class 'TrackingOptions' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | public class TrackingOptions {
| `- note: class 'TrackingOptions' does not conform to the 'Sendable' protocol
11 |
12 | public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:36:27: warning: static property 'networkTrackingOptions' is not concurrency-safe because non-'Sendable' type 'NetworkTrackingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
34 | public static let enableAutoCaptureRemoteConfig = true
35 | public static let trackingOptions = TrackingOptions()
36 | public static let networkTrackingOptions = NetworkTrackingOptions.default
| |- warning: static property 'networkTrackingOptions' is not concurrency-safe because non-'Sendable' type 'NetworkTrackingOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'networkTrackingOptions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
37 | public static let interactionsOptions = InteractionsOptions()
38 | public static let enableDiagnostics = true
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:68:15: note: consider making struct 'NetworkTrackingOptions' conform to the 'Sendable' protocol
66 | ]
67 |
68 | public struct NetworkTrackingOptions {
| `- note: consider making struct 'NetworkTrackingOptions' conform to the 'Sendable' protocol
69 | public enum URLPattern {
70 | case exact(String)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:37:27: warning: static property 'interactionsOptions' is not concurrency-safe because non-'Sendable' type 'InteractionsOptions' may have shared mutable state; this is an error in the Swift 6 language mode
35 | public static let trackingOptions = TrackingOptions()
36 | public static let networkTrackingOptions = NetworkTrackingOptions.default
37 | public static let interactionsOptions = InteractionsOptions()
| |- warning: static property 'interactionsOptions' is not concurrency-safe because non-'Sendable' type 'InteractionsOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'interactionsOptions' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
38 | public static let enableDiagnostics = true
39 | public static let enableRequestBodyCompression = false
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/InteractionsOptions.swift:10:14: note: class 'InteractionsOptions' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | public class InteractionsOptions {
| `- note: class 'InteractionsOptions' does not conform to the 'Sendable' protocol
11 | public let rageClick: RageClickOptions
12 | public let deadClick: DeadClickOptions
[72/97] Compiling AmplitudeSwift ObjCDeepLinkOpenedEvent.swift
[73/97] Compiling AmplitudeSwift ObjCDefaultTrackingOptions.swift
[74/97] Compiling AmplitudeSwift ObjCEventOptions.swift
[75/97] Compiling AmplitudeSwift ObjCIdentify.swift
[76/97] Compiling AmplitudeSwift ObjCIngestionMetadata.swift
[77/97] Compiling AmplitudeSwift ObjCInteractionsOptions.swift
[78/97] Compiling AmplitudeSwift ObjCLoggerProvider.swift
[79/97] Compiling AmplitudeSwift ObjCNetworkConnectivityCheckerPlugin.swift
[80/97] Compiling AmplitudeSwift ObjCNetworkTrackingOptions.swift
[81/97] Compiling AmplitudeSwift AnalyticsConnectorPlugin.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/ContextPlugin.swift:14:25: warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class ContextPlugin: BeforePlugin {
14 | internal static var device = VendorSystem.current
| |- warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'device' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'device' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | override func setup(amplitude: Amplitude) {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/Mac/MacOSLifecycleMonitor.swift:20:46: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
18 |
19 | override init() {
20 | self.application = NSApplication.shared
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
21 | super.init()
22 | setupListeners()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkConnectivityCheckerPlugin.swift:34:35: warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
32 |
33 | func start(queue: DispatchQueue) {
34 | monitor.pathUpdateHandler = subject.send
| `- warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
35 | networkPathPublisher = subject
36 | .map { NetworkPath(status: $0.status) }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:434:13: warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
432 |
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
| |- warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sendTimeKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'sendTimeKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
435 | private var responseDataKey: UInt8 = 0
436 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:435:13: warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
435 | private var responseDataKey: UInt8 = 0
| |- warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'responseDataKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'responseDataKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 | extension URLSessionTask {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:411:78: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
409 | if rule.responseBody != nil {
410 | // onDataTaskCompletion is called earlier than onTask, add delay to make response body capture more stable
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:413:49: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
414 | }
415 | }
[82/97] Compiling AmplitudeSwift BasePlugins.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/ContextPlugin.swift:14:25: warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class ContextPlugin: BeforePlugin {
14 | internal static var device = VendorSystem.current
| |- warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'device' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'device' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | override func setup(amplitude: Amplitude) {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/Mac/MacOSLifecycleMonitor.swift:20:46: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
18 |
19 | override init() {
20 | self.application = NSApplication.shared
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
21 | super.init()
22 | setupListeners()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkConnectivityCheckerPlugin.swift:34:35: warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
32 |
33 | func start(queue: DispatchQueue) {
34 | monitor.pathUpdateHandler = subject.send
| `- warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
35 | networkPathPublisher = subject
36 | .map { NetworkPath(status: $0.status) }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:434:13: warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
432 |
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
| |- warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sendTimeKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'sendTimeKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
435 | private var responseDataKey: UInt8 = 0
436 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:435:13: warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
435 | private var responseDataKey: UInt8 = 0
| |- warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'responseDataKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'responseDataKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 | extension URLSessionTask {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:411:78: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
409 | if rule.responseBody != nil {
410 | // onDataTaskCompletion is called earlier than onTask, add delay to make response body capture more stable
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:413:49: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
414 | }
415 | }
[83/97] Compiling AmplitudeSwift ContextPlugin.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/ContextPlugin.swift:14:25: warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class ContextPlugin: BeforePlugin {
14 | internal static var device = VendorSystem.current
| |- warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'device' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'device' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | override func setup(amplitude: Amplitude) {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/Mac/MacOSLifecycleMonitor.swift:20:46: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
18 |
19 | override init() {
20 | self.application = NSApplication.shared
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
21 | super.init()
22 | setupListeners()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkConnectivityCheckerPlugin.swift:34:35: warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
32 |
33 | func start(queue: DispatchQueue) {
34 | monitor.pathUpdateHandler = subject.send
| `- warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
35 | networkPathPublisher = subject
36 | .map { NetworkPath(status: $0.status) }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:434:13: warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
432 |
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
| |- warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sendTimeKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'sendTimeKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
435 | private var responseDataKey: UInt8 = 0
436 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:435:13: warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
435 | private var responseDataKey: UInt8 = 0
| |- warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'responseDataKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'responseDataKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 | extension URLSessionTask {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:411:78: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
409 | if rule.responseBody != nil {
410 | // onDataTaskCompletion is called earlier than onTask, add delay to make response body capture more stable
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:413:49: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
414 | }
415 | }
[84/97] Compiling AmplitudeSwift DestinationPlugin.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/ContextPlugin.swift:14:25: warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class ContextPlugin: BeforePlugin {
14 | internal static var device = VendorSystem.current
| |- warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'device' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'device' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | override func setup(amplitude: Amplitude) {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/Mac/MacOSLifecycleMonitor.swift:20:46: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
18 |
19 | override init() {
20 | self.application = NSApplication.shared
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
21 | super.init()
22 | setupListeners()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkConnectivityCheckerPlugin.swift:34:35: warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
32 |
33 | func start(queue: DispatchQueue) {
34 | monitor.pathUpdateHandler = subject.send
| `- warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
35 | networkPathPublisher = subject
36 | .map { NetworkPath(status: $0.status) }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:434:13: warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
432 |
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
| |- warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sendTimeKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'sendTimeKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
435 | private var responseDataKey: UInt8 = 0
436 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:435:13: warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
435 | private var responseDataKey: UInt8 = 0
| |- warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'responseDataKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'responseDataKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 | extension URLSessionTask {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:411:78: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
409 | if rule.responseBody != nil {
410 | // onDataTaskCompletion is called earlier than onTask, add delay to make response body capture more stable
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:413:49: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
414 | }
415 | }
[85/97] Compiling AmplitudeSwift IdentityEventSender.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/ContextPlugin.swift:14:25: warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class ContextPlugin: BeforePlugin {
14 | internal static var device = VendorSystem.current
| |- warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'device' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'device' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | override func setup(amplitude: Amplitude) {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/Mac/MacOSLifecycleMonitor.swift:20:46: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
18 |
19 | override init() {
20 | self.application = NSApplication.shared
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
21 | super.init()
22 | setupListeners()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkConnectivityCheckerPlugin.swift:34:35: warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
32 |
33 | func start(queue: DispatchQueue) {
34 | monitor.pathUpdateHandler = subject.send
| `- warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
35 | networkPathPublisher = subject
36 | .map { NetworkPath(status: $0.status) }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:434:13: warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
432 |
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
| |- warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sendTimeKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'sendTimeKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
435 | private var responseDataKey: UInt8 = 0
436 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:435:13: warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
435 | private var responseDataKey: UInt8 = 0
| |- warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'responseDataKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'responseDataKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 | extension URLSessionTask {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:411:78: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
409 | if rule.responseBody != nil {
410 | // onDataTaskCompletion is called earlier than onTask, add delay to make response body capture more stable
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:413:49: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
414 | }
415 | }
[86/97] Compiling AmplitudeSwift MacOSLifecycleMonitor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/ContextPlugin.swift:14:25: warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class ContextPlugin: BeforePlugin {
14 | internal static var device = VendorSystem.current
| |- warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'device' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'device' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | override func setup(amplitude: Amplitude) {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/Mac/MacOSLifecycleMonitor.swift:20:46: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
18 |
19 | override init() {
20 | self.application = NSApplication.shared
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
21 | super.init()
22 | setupListeners()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkConnectivityCheckerPlugin.swift:34:35: warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
32 |
33 | func start(queue: DispatchQueue) {
34 | monitor.pathUpdateHandler = subject.send
| `- warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
35 | networkPathPublisher = subject
36 | .map { NetworkPath(status: $0.status) }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:434:13: warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
432 |
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
| |- warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sendTimeKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'sendTimeKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
435 | private var responseDataKey: UInt8 = 0
436 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:435:13: warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
435 | private var responseDataKey: UInt8 = 0
| |- warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'responseDataKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'responseDataKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 | extension URLSessionTask {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:411:78: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
409 | if rule.responseBody != nil {
410 | // onDataTaskCompletion is called earlier than onTask, add delay to make response body capture more stable
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:413:49: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
414 | }
415 | }
[87/97] Compiling AmplitudeSwift NetworkConnectivityCheckerPlugin.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/ContextPlugin.swift:14:25: warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class ContextPlugin: BeforePlugin {
14 | internal static var device = VendorSystem.current
| |- warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'device' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'device' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | override func setup(amplitude: Amplitude) {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/Mac/MacOSLifecycleMonitor.swift:20:46: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
18 |
19 | override init() {
20 | self.application = NSApplication.shared
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
21 | super.init()
22 | setupListeners()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkConnectivityCheckerPlugin.swift:34:35: warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
32 |
33 | func start(queue: DispatchQueue) {
34 | monitor.pathUpdateHandler = subject.send
| `- warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
35 | networkPathPublisher = subject
36 | .map { NetworkPath(status: $0.status) }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:434:13: warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
432 |
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
| |- warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sendTimeKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'sendTimeKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
435 | private var responseDataKey: UInt8 = 0
436 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:435:13: warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
435 | private var responseDataKey: UInt8 = 0
| |- warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'responseDataKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'responseDataKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 | extension URLSessionTask {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:411:78: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
409 | if rule.responseBody != nil {
410 | // onDataTaskCompletion is called earlier than onTask, add delay to make response body capture more stable
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:413:49: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
414 | }
415 | }
[88/97] Compiling AmplitudeSwift NetworkTrackingPlugin.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/ContextPlugin.swift:14:25: warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class ContextPlugin: BeforePlugin {
14 | internal static var device = VendorSystem.current
| |- warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'device' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'device' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | override func setup(amplitude: Amplitude) {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/Mac/MacOSLifecycleMonitor.swift:20:46: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
18 |
19 | override init() {
20 | self.application = NSApplication.shared
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
21 | super.init()
22 | setupListeners()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkConnectivityCheckerPlugin.swift:34:35: warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
32 |
33 | func start(queue: DispatchQueue) {
34 | monitor.pathUpdateHandler = subject.send
| `- warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
35 | networkPathPublisher = subject
36 | .map { NetworkPath(status: $0.status) }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:434:13: warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
432 |
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
| |- warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sendTimeKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'sendTimeKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
435 | private var responseDataKey: UInt8 = 0
436 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:435:13: warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
435 | private var responseDataKey: UInt8 = 0
| |- warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'responseDataKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'responseDataKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 | extension URLSessionTask {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:411:78: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
409 | if rule.responseBody != nil {
410 | // onDataTaskCompletion is called earlier than onTask, add delay to make response body capture more stable
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:413:49: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
414 | }
415 | }
[89/97] Compiling AmplitudeSwift AppUtil.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/ContextPlugin.swift:14:25: warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
12 |
13 | class ContextPlugin: BeforePlugin {
14 | internal static var device = VendorSystem.current
| |- warning: static property 'device' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'device' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'device' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 |
16 | override func setup(amplitude: Amplitude) {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/Mac/MacOSLifecycleMonitor.swift:20:46: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
18 |
19 | override init() {
20 | self.application = NSApplication.shared
| `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
21 | super.init()
22 | setupListeners()
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSApplication.h:193:61: note: class property declared here
191 | APPKIT_EXTERN __kindof NSApplication * _Null_unspecified NSApp NS_SWIFT_UI_ACTOR;
192 |
193 | @property (class, readonly, strong) __kindof NSApplication *sharedApplication;
| `- note: class property declared here
194 | @property (nullable, weak) id<NSApplicationDelegate> delegate;
195 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkConnectivityCheckerPlugin.swift:34:35: warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
32 |
33 | func start(queue: DispatchQueue) {
34 | monitor.pathUpdateHandler = subject.send
| `- warning: converting non-sendable function value to '@Sendable (NWPath) -> Void' may introduce data races
35 | networkPathPublisher = subject
36 | .map { NetworkPath(status: $0.status) }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:434:13: warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
432 |
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
| |- warning: var 'sendTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'sendTimeKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'sendTimeKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
435 | private var responseDataKey: UInt8 = 0
436 |
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:435:13: warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 | // Key for associated object
434 | private var sendTimeKey: UInt8 = 0
435 | private var responseDataKey: UInt8 = 0
| |- warning: var 'responseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'responseDataKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'responseDataKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 | extension URLSessionTask {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:411:78: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
409 | if rule.responseBody != nil {
410 | // onDataTaskCompletion is called earlier than onTask, add delay to make response body capture more stable
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Plugins/NetworkTrackingPlugin.swift:413:49: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
411 | networkTrackingQueue.asyncAfter(deadline: .now() + 0.1, execute: sendEventAction)
412 | } else {
413 | networkTrackingQueue.async(execute: sendEventAction)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
414 | }
415 | }
[90/97] Compiling AmplitudeSwift DefaultEventUtils.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/DefaultEventUtils.swift:6:24: warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | private static let lock = NSLock()
6 | private static var instanceNamesThatSentAppUpdatedInstalled: Set<String> = []
| |- warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instanceNamesThatSentAppUpdatedInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instanceNamesThatSentAppUpdatedInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | private weak var amplitude: Amplitude?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:65:20: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
63 |
64 | uploadsQueue.async { [self] in
65 | if let completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | flushCompletions.append(completion)
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:66:17: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
64 | uploadsQueue.async { [self] in
65 | if let completion {
66 | flushCompletions.append(completion)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
67 | }
68 | self.sendNextEventFile()
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:144:58: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
142 |
143 | if failures == 0 || handled {
144 | self.uploadsQueue.async(execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:147:99: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
147 | self.uploadsQueue.asyncAfter(deadline: .now() + sendingInterval, execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
148 | self.logger?.error(message: "Request failed \(failures) times, send next event file in \(sendingInterval) seconds")
149 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:21: warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:76: warning: reference to captured var 'newSkipFiles' in concurrently-executing code
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: reference to captured var 'newSkipFiles' in concurrently-executing code
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:129:25: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
127 | if failures > self.configuration.flushMaxRetries {
128 | self.uploadsQueue.async {
129 | self.currentUpload = nil
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
130 | }
131 | self.configuration.offline = true
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/MiscellaneousExtension.swift:11:13: warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Cached ISO8601DateFormatter for better performance on older OS versions
11 | private let cachedISO8601Formatter: ISO8601DateFormatter = {
| |- warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'cachedISO8601Formatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | let formatter = ISO8601DateFormatter()
13 | formatter.formatOptions.insert(.withFractionalSeconds)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h:46:12: note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
44 |
45 | API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0))
46 | @interface NSISO8601DateFormatter : NSFormatter <NSSecureCoding> {
| `- note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
47 | @private
48 | CFDateFormatterRef _formatter;
[91/97] Compiling AmplitudeSwift Diagonostics.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/DefaultEventUtils.swift:6:24: warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | private static let lock = NSLock()
6 | private static var instanceNamesThatSentAppUpdatedInstalled: Set<String> = []
| |- warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instanceNamesThatSentAppUpdatedInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instanceNamesThatSentAppUpdatedInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | private weak var amplitude: Amplitude?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:65:20: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
63 |
64 | uploadsQueue.async { [self] in
65 | if let completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | flushCompletions.append(completion)
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:66:17: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
64 | uploadsQueue.async { [self] in
65 | if let completion {
66 | flushCompletions.append(completion)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
67 | }
68 | self.sendNextEventFile()
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:144:58: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
142 |
143 | if failures == 0 || handled {
144 | self.uploadsQueue.async(execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:147:99: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
147 | self.uploadsQueue.asyncAfter(deadline: .now() + sendingInterval, execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
148 | self.logger?.error(message: "Request failed \(failures) times, send next event file in \(sendingInterval) seconds")
149 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:21: warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:76: warning: reference to captured var 'newSkipFiles' in concurrently-executing code
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: reference to captured var 'newSkipFiles' in concurrently-executing code
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:129:25: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
127 | if failures > self.configuration.flushMaxRetries {
128 | self.uploadsQueue.async {
129 | self.currentUpload = nil
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
130 | }
131 | self.configuration.offline = true
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/MiscellaneousExtension.swift:11:13: warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Cached ISO8601DateFormatter for better performance on older OS versions
11 | private let cachedISO8601Formatter: ISO8601DateFormatter = {
| |- warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'cachedISO8601Formatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | let formatter = ISO8601DateFormatter()
13 | formatter.formatOptions.insert(.withFractionalSeconds)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h:46:12: note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
44 |
45 | API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0))
46 | @interface NSISO8601DateFormatter : NSFormatter <NSSecureCoding> {
| `- note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
47 | @private
48 | CFDateFormatterRef _formatter;
[92/97] Compiling AmplitudeSwift DispatchQueueHolder.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/DefaultEventUtils.swift:6:24: warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | private static let lock = NSLock()
6 | private static var instanceNamesThatSentAppUpdatedInstalled: Set<String> = []
| |- warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instanceNamesThatSentAppUpdatedInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instanceNamesThatSentAppUpdatedInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | private weak var amplitude: Amplitude?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:65:20: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
63 |
64 | uploadsQueue.async { [self] in
65 | if let completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | flushCompletions.append(completion)
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:66:17: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
64 | uploadsQueue.async { [self] in
65 | if let completion {
66 | flushCompletions.append(completion)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
67 | }
68 | self.sendNextEventFile()
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:144:58: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
142 |
143 | if failures == 0 || handled {
144 | self.uploadsQueue.async(execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:147:99: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
147 | self.uploadsQueue.asyncAfter(deadline: .now() + sendingInterval, execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
148 | self.logger?.error(message: "Request failed \(failures) times, send next event file in \(sendingInterval) seconds")
149 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:21: warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:76: warning: reference to captured var 'newSkipFiles' in concurrently-executing code
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: reference to captured var 'newSkipFiles' in concurrently-executing code
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:129:25: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
127 | if failures > self.configuration.flushMaxRetries {
128 | self.uploadsQueue.async {
129 | self.currentUpload = nil
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
130 | }
131 | self.configuration.offline = true
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/MiscellaneousExtension.swift:11:13: warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Cached ISO8601DateFormatter for better performance on older OS versions
11 | private let cachedISO8601Formatter: ISO8601DateFormatter = {
| |- warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'cachedISO8601Formatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | let formatter = ISO8601DateFormatter()
13 | formatter.formatOptions.insert(.withFractionalSeconds)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h:46:12: note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
44 |
45 | API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0))
46 | @interface NSISO8601DateFormatter : NSFormatter <NSSecureCoding> {
| `- note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
47 | @private
48 | CFDateFormatterRef _formatter;
[93/97] Compiling AmplitudeSwift EventPipeline.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/DefaultEventUtils.swift:6:24: warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | private static let lock = NSLock()
6 | private static var instanceNamesThatSentAppUpdatedInstalled: Set<String> = []
| |- warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instanceNamesThatSentAppUpdatedInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instanceNamesThatSentAppUpdatedInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | private weak var amplitude: Amplitude?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:65:20: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
63 |
64 | uploadsQueue.async { [self] in
65 | if let completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | flushCompletions.append(completion)
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:66:17: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
64 | uploadsQueue.async { [self] in
65 | if let completion {
66 | flushCompletions.append(completion)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
67 | }
68 | self.sendNextEventFile()
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:144:58: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
142 |
143 | if failures == 0 || handled {
144 | self.uploadsQueue.async(execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:147:99: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
147 | self.uploadsQueue.asyncAfter(deadline: .now() + sendingInterval, execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
148 | self.logger?.error(message: "Request failed \(failures) times, send next event file in \(sendingInterval) seconds")
149 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:21: warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:76: warning: reference to captured var 'newSkipFiles' in concurrently-executing code
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: reference to captured var 'newSkipFiles' in concurrently-executing code
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:129:25: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
127 | if failures > self.configuration.flushMaxRetries {
128 | self.uploadsQueue.async {
129 | self.currentUpload = nil
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
130 | }
131 | self.configuration.offline = true
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/MiscellaneousExtension.swift:11:13: warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Cached ISO8601DateFormatter for better performance on older OS versions
11 | private let cachedISO8601Formatter: ISO8601DateFormatter = {
| |- warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'cachedISO8601Formatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | let formatter = ISO8601DateFormatter()
13 | formatter.formatOptions.insert(.withFractionalSeconds)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h:46:12: note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
44 |
45 | API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0))
46 | @interface NSISO8601DateFormatter : NSFormatter <NSSecureCoding> {
| `- note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
47 | @private
48 | CFDateFormatterRef _formatter;
[94/97] Compiling AmplitudeSwift HttpClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/DefaultEventUtils.swift:6:24: warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | private static let lock = NSLock()
6 | private static var instanceNamesThatSentAppUpdatedInstalled: Set<String> = []
| |- warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instanceNamesThatSentAppUpdatedInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instanceNamesThatSentAppUpdatedInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | private weak var amplitude: Amplitude?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:65:20: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
63 |
64 | uploadsQueue.async { [self] in
65 | if let completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | flushCompletions.append(completion)
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:66:17: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
64 | uploadsQueue.async { [self] in
65 | if let completion {
66 | flushCompletions.append(completion)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
67 | }
68 | self.sendNextEventFile()
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:144:58: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
142 |
143 | if failures == 0 || handled {
144 | self.uploadsQueue.async(execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:147:99: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
147 | self.uploadsQueue.asyncAfter(deadline: .now() + sendingInterval, execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
148 | self.logger?.error(message: "Request failed \(failures) times, send next event file in \(sendingInterval) seconds")
149 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:21: warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:76: warning: reference to captured var 'newSkipFiles' in concurrently-executing code
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: reference to captured var 'newSkipFiles' in concurrently-executing code
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:129:25: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
127 | if failures > self.configuration.flushMaxRetries {
128 | self.uploadsQueue.async {
129 | self.currentUpload = nil
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
130 | }
131 | self.configuration.offline = true
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/MiscellaneousExtension.swift:11:13: warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Cached ISO8601DateFormatter for better performance on older OS versions
11 | private let cachedISO8601Formatter: ISO8601DateFormatter = {
| |- warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'cachedISO8601Formatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | let formatter = ISO8601DateFormatter()
13 | formatter.formatOptions.insert(.withFractionalSeconds)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h:46:12: note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
44 |
45 | API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0))
46 | @interface NSISO8601DateFormatter : NSFormatter <NSSecureCoding> {
| `- note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
47 | @private
48 | CFDateFormatterRef _formatter;
[95/97] Compiling AmplitudeSwift IdentifyInterceptor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/DefaultEventUtils.swift:6:24: warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | private static let lock = NSLock()
6 | private static var instanceNamesThatSentAppUpdatedInstalled: Set<String> = []
| |- warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instanceNamesThatSentAppUpdatedInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instanceNamesThatSentAppUpdatedInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | private weak var amplitude: Amplitude?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:65:20: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
63 |
64 | uploadsQueue.async { [self] in
65 | if let completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | flushCompletions.append(completion)
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:66:17: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
64 | uploadsQueue.async { [self] in
65 | if let completion {
66 | flushCompletions.append(completion)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
67 | }
68 | self.sendNextEventFile()
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:144:58: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
142 |
143 | if failures == 0 || handled {
144 | self.uploadsQueue.async(execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:147:99: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
147 | self.uploadsQueue.asyncAfter(deadline: .now() + sendingInterval, execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
148 | self.logger?.error(message: "Request failed \(failures) times, send next event file in \(sendingInterval) seconds")
149 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:21: warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:76: warning: reference to captured var 'newSkipFiles' in concurrently-executing code
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: reference to captured var 'newSkipFiles' in concurrently-executing code
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:129:25: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
127 | if failures > self.configuration.flushMaxRetries {
128 | self.uploadsQueue.async {
129 | self.currentUpload = nil
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
130 | }
131 | self.configuration.offline = true
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/MiscellaneousExtension.swift:11:13: warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Cached ISO8601DateFormatter for better performance on older OS versions
11 | private let cachedISO8601Formatter: ISO8601DateFormatter = {
| |- warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'cachedISO8601Formatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | let formatter = ISO8601DateFormatter()
13 | formatter.formatOptions.insert(.withFractionalSeconds)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h:46:12: note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
44 |
45 | API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0))
46 | @interface NSISO8601DateFormatter : NSFormatter <NSSecureCoding> {
| `- note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
47 | @private
48 | CFDateFormatterRef _formatter;
[96/97] Compiling AmplitudeSwift MethodSwizzler.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/DefaultEventUtils.swift:6:24: warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | private static let lock = NSLock()
6 | private static var instanceNamesThatSentAppUpdatedInstalled: Set<String> = []
| |- warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instanceNamesThatSentAppUpdatedInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instanceNamesThatSentAppUpdatedInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | private weak var amplitude: Amplitude?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:65:20: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
63 |
64 | uploadsQueue.async { [self] in
65 | if let completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | flushCompletions.append(completion)
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:66:17: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
64 | uploadsQueue.async { [self] in
65 | if let completion {
66 | flushCompletions.append(completion)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
67 | }
68 | self.sendNextEventFile()
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:144:58: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
142 |
143 | if failures == 0 || handled {
144 | self.uploadsQueue.async(execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:147:99: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
147 | self.uploadsQueue.asyncAfter(deadline: .now() + sendingInterval, execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
148 | self.logger?.error(message: "Request failed \(failures) times, send next event file in \(sendingInterval) seconds")
149 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:21: warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:76: warning: reference to captured var 'newSkipFiles' in concurrently-executing code
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: reference to captured var 'newSkipFiles' in concurrently-executing code
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:129:25: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
127 | if failures > self.configuration.flushMaxRetries {
128 | self.uploadsQueue.async {
129 | self.currentUpload = nil
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
130 | }
131 | self.configuration.offline = true
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/MiscellaneousExtension.swift:11:13: warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Cached ISO8601DateFormatter for better performance on older OS versions
11 | private let cachedISO8601Formatter: ISO8601DateFormatter = {
| |- warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'cachedISO8601Formatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | let formatter = ISO8601DateFormatter()
13 | formatter.formatOptions.insert(.withFractionalSeconds)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h:46:12: note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
44 |
45 | API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0))
46 | @interface NSISO8601DateFormatter : NSFormatter <NSSecureCoding> {
| `- note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
47 | @private
48 | CFDateFormatterRef _formatter;
[97/97] Compiling AmplitudeSwift MiscellaneousExtension.swift
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/DefaultEventUtils.swift:6:24: warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
4 |
5 | private static let lock = NSLock()
6 | private static var instanceNamesThatSentAppUpdatedInstalled: Set<String> = []
| |- warning: static property 'instanceNamesThatSentAppUpdatedInstalled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'instanceNamesThatSentAppUpdatedInstalled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'instanceNamesThatSentAppUpdatedInstalled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
7 |
8 | private weak var amplitude: Amplitude?
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:65:20: warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
63 |
64 | uploadsQueue.async { [self] in
65 | if let completion {
| |- warning: capture of 'completion' with non-sendable type '(() -> Void)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
66 | flushCompletions.append(completion)
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:66:17: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
64 | uploadsQueue.async { [self] in
65 | if let completion {
66 | flushCompletions.append(completion)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
67 | }
68 | self.sendNextEventFile()
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:144:58: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
142 |
143 | if failures == 0 || handled {
144 | self.uploadsQueue.async(execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:147:99: warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
145 | } else {
146 | let sendingInterval = min(MAX_RETRY_INTERVAL, pow(2, Double(failures - 1)))
147 | self.uploadsQueue.asyncAfter(deadline: .now() + sendingInterval, execute: nextFileBlock)
| `- warning: converting non-sendable function value to '@Sendable @convention(block) () -> Void' may introduce data races
148 | self.logger?.error(message: "Request failed \(failures) times, send next event file in \(sendingInterval) seconds")
149 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:21: warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: capture of 'self' with non-sendable type 'EventPipeline?' in a '@Sendable' closure
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:103:76: warning: reference to captured var 'newSkipFiles' in concurrently-executing code
101 | newSkipFiles.insert(nextEventFile)
102 | uploadsQueue.async { [weak self] in
103 | self?.sendNextEventFile(failures: failures, skipFiles: newSkipFiles)
| `- warning: reference to captured var 'newSkipFiles' in concurrently-executing code
104 | }
105 | return
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/EventPipeline.swift:129:25: warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
11 | private let MAX_RETRY_INTERVAL: Double = 60
12 |
13 | public class EventPipeline {
| `- note: class 'EventPipeline' does not conform to the 'Sendable' protocol
14 | var httpClient: HttpClient
15 | let storage: Storage?
:
127 | if failures > self.configuration.flushMaxRetries {
128 | self.uploadsQueue.async {
129 | self.currentUpload = nil
| `- warning: capture of 'self' with non-sendable type 'EventPipeline' in a '@Sendable' closure
130 | }
131 | self.configuration.offline = true
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:49:33: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
47 | case NSURLErrorCannotConnectToHost, NSURLErrorNetworkConnectionLost, NSURLErrorCannotFindHost, NSURLErrorAppTransportSecurityRequiresSecureConnection, NSURLErrorNotConnectedToInternet, NSURLErrorBadURL:
48 | logger?.error(message: "Conection failed with error: \(error.localizedDescription), marking offline")
49 | configuration.offline = true
| `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
50 | default:
51 | logger?.error(message: "Request failed with error: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Configuration.swift:16:14: note: class 'Configuration' does not conform to the 'Sendable' protocol
14 | #endif
15 |
16 | public class Configuration {
| `- note: class 'Configuration' does not conform to the 'Sendable' protocol
17 |
18 | public struct Defaults {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:54:25: warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
52 | }
53 | }
54 | completion(.failure(error))
| |- warning: capture of 'completion' with non-sendable type '(Result<Int, any Error>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
55 | } else if let httpResponse = response as? HTTPURLResponse {
56 | switch httpResponse.statusCode {
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/HttpClient.swift:66:21: warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
64 | }
65 | }
66 | backgroundTaskCompletion?()
| |- warning: capture of 'backgroundTaskCompletion' with non-sendable type 'BackgroundTaskCompletionCallback?' (aka 'Optional<() -> ()>') in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
67 | }
68 | }
/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/Utilities/MiscellaneousExtension.swift:11:13: warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
9 |
10 | // Cached ISO8601DateFormatter for better performance on older OS versions
11 | private let cachedISO8601Formatter: ISO8601DateFormatter = {
| |- warning: let 'cachedISO8601Formatter' is not concurrency-safe because non-'Sendable' type 'ISO8601DateFormatter' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'cachedISO8601Formatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
12 | let formatter = ISO8601DateFormatter()
13 | formatter.formatOptions.insert(.withFractionalSeconds)
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSISO8601DateFormatter.h:46:12: note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
44 |
45 | API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0))
46 | @interface NSISO8601DateFormatter : NSFormatter <NSSecureCoding> {
| `- note: class 'ISO8601DateFormatter' does not conform to the 'Sendable' protocol
47 | @private
48 | CFDateFormatterRef _formatter;
Build complete! (19.02s)
Fetching https://github.com/amplitude/AmplitudeCore-Swift.git
Fetching https://github.com/amplitude/analytics-connector-ios.git
[1/425] Fetching analytics-connector-ios
[210/1629] Fetching analytics-connector-ios, amplitudecore-swift
Fetched https://github.com/amplitude/analytics-connector-ios.git from cache (0.89s)
Fetched https://github.com/amplitude/AmplitudeCore-Swift.git from cache (0.89s)
Computing version for https://github.com/amplitude/analytics-connector-ios.git
Computed https://github.com/amplitude/analytics-connector-ios.git at 1.3.1 (1.38s)
Computing version for https://github.com/amplitude/AmplitudeCore-Swift.git
warning: 'amplitudecore-swift': /Package@swift-5.9.swift:9:15: warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
7 | platforms: [
8 | .macOS(.v10_13),
9 | .iOS(.v11),
| `- warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
10 | .tvOS(.v11),
11 | .watchOS(.v4),
/Package@swift-5.9.swift:10:16: warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
8 | .macOS(.v10_13),
9 | .iOS(.v11),
10 | .tvOS(.v11),
| `- warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
11 | .watchOS(.v4),
12 | .visionOS(.v1),
Computed https://github.com/amplitude/AmplitudeCore-Swift.git at 1.4.5 (0.48s)
Creating working copy for https://github.com/amplitude/AmplitudeCore-Swift.git
Working copy of https://github.com/amplitude/AmplitudeCore-Swift.git resolved at 1.4.5
Creating working copy for https://github.com/amplitude/analytics-connector-ios.git
Working copy of https://github.com/amplitude/analytics-connector-ios.git resolved at 1.3.1
warning: 'amplitudecore-swift': /Users/admin/builder/spi-builder-workspace/.build/checkouts/AmplitudeCore-Swift/Package@swift-5.9.swift:9:15: warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
7 | platforms: [
8 | .macOS(.v10_13),
9 | .iOS(.v11),
| `- warning: 'v11' is deprecated: iOS 12.0 is the oldest supported version
10 | .tvOS(.v11),
11 | .watchOS(.v4),
/Users/admin/builder/spi-builder-workspace/.build/checkouts/AmplitudeCore-Swift/Package@swift-5.9.swift:10:16: warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
8 | .macOS(.v10_13),
9 | .iOS(.v11),
10 | .tvOS(.v11),
| `- warning: 'v11' is deprecated: tvOS 12.0 is the oldest supported version
11 | .watchOS(.v4),
12 | .visionOS(.v1),
Downloading binary artifact https://github.com/amplitude/AmplitudeCore-Swift/releases/download/v1.4.5/AmplitudeCoreNoUIKit.zip
Downloading binary artifact https://github.com/amplitude/AmplitudeCore-Swift/releases/download/v1.4.5/AmplitudeCore.zip
Downloading binary artifact https://github.com/amplitude/analytics-connector-ios/releases/download/v1.3.1/AnalyticsConnector.xcframework.zip
[16375/7515307] Downloading https://github.com/amplitude/analytics-connector-ios/releases/download/v1.3.1/AnalyticsConnector.xcframework.zip
[7548057/26853241] Downloading https://github.com/amplitude/analytics-connector-ios/releases/download/v1.3.1/AnalyticsConnector.xcframework.zip, https://github.com/amplitude/AmplitudeCore-Swift/releases/download/v1.4.5/AmplitudeCore.zip
[13248621/43811395] Downloading https://github.com/amplitude/analytics-connector-ios/releases/download/v1.3.1/AnalyticsConnector.xcframework.zip, https://github.com/amplitude/AmplitudeCore-Swift/releases/download/v1.4.5/AmplitudeCore.zip, https://github.com/amplitude/AmplitudeCore-Swift/releases/download/v1.4.5/AmplitudeCoreNoUIKit.zip
Downloaded https://github.com/amplitude/analytics-connector-ios/releases/download/v1.3.1/AnalyticsConnector.xcframework.zip (1.09s)
Downloaded https://github.com/amplitude/AmplitudeCore-Swift/releases/download/v1.4.5/AmplitudeCoreNoUIKit.zip (1.74s)
Downloaded https://github.com/amplitude/AmplitudeCore-Swift/releases/download/v1.4.5/AmplitudeCore.zip (1.80s)
Build complete.
{
"dependencies" : [
{
"identity" : "analytics-connector-ios",
"requirement" : {
"range" : [
{
"lower_bound" : "1.3.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/amplitude/analytics-connector-ios.git"
},
{
"identity" : "amplitudecore-swift",
"requirement" : {
"range" : [
{
"lower_bound" : "1.4.1",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/amplitude/AmplitudeCore-Swift.git"
}
],
"manifest_display_name" : "Amplitude-Swift",
"name" : "Amplitude-Swift",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "7.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "AmplitudeSwift",
"targets" : [
"AmplitudeSwift"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "AmplitudeSwift",
"module_type" : "SwiftTarget",
"name" : "AmplitudeSwift",
"path" : "Sources/Amplitude",
"product_dependencies" : [
"AmplitudeCoreFramework",
"AnalyticsConnector"
],
"product_memberships" : [
"AmplitudeSwift"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/Amplitude/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"Amplitude.swift",
"AutocaptureOptions.swift",
"Configuration.swift",
"ConsoleLogger.swift",
"Constants.swift",
"DefaultTrackingOptions.swift",
"Events/BaseEvent.swift",
"Events/DeepLinkOpenedEvent.swift",
"Events/ElementInteractionEvent.swift",
"Events/EventOptions.swift",
"Events/GroupIdentifyEvent.swift",
"Events/Identify.swift",
"Events/IdentifyEvent.swift",
"Events/NetworkRequestEvent.swift",
"Events/Revenue.swift",
"Events/RevenueEvent.swift",
"Events/ScreenViewedEvent.swift",
"Identity.swift",
"InteractionsOptions.swift",
"Mediator.swift",
"Migration/LegacyDatabaseStorage.swift",
"Migration/RemnantDataMigration.swift",
"Migration/StoragePrefixMigration.swift",
"ObjC/ObjCAmplitude.swift",
"ObjC/ObjCAutocaptureOptions.swift",
"ObjC/ObjCBaseEvent.swift",
"ObjC/ObjCConfiguration.swift",
"ObjC/ObjCDeepLinkOpenedEvent.swift",
"ObjC/ObjCDefaultTrackingOptions.swift",
"ObjC/ObjCEventOptions.swift",
"ObjC/ObjCIdentify.swift",
"ObjC/ObjCIngestionMetadata.swift",
"ObjC/ObjCInteractionsOptions.swift",
"ObjC/ObjCLoggerProvider.swift",
"ObjC/ObjCNetworkConnectivityCheckerPlugin.swift",
"ObjC/ObjCNetworkTrackingOptions.swift",
"ObjC/ObjCPlan.swift",
"ObjC/ObjCPlugin.swift",
"ObjC/ObjCProperties.swift",
"ObjC/ObjCRevenue.swift",
"ObjC/ObjCScreenViewedEvent.swift",
"ObjC/ObjCStorage.swift",
"ObjC/ObjCTrackingOptions.swift",
"Plugins/AmplitudeDestinationPlugin.swift",
"Plugins/AnalyticsConnectorIdentityPlugin.swift",
"Plugins/AnalyticsConnectorPlugin.swift",
"Plugins/BasePlugins.swift",
"Plugins/ContextPlugin.swift",
"Plugins/DestinationPlugin.swift",
"Plugins/IdentityEventSender.swift",
"Plugins/Mac/MacOSLifecycleMonitor.swift",
"Plugins/NetworkConnectivityCheckerPlugin.swift",
"Plugins/NetworkTrackingPlugin.swift",
"Plugins/Vendors/AppUtil.swift",
"Plugins/Vendors/VendorSystem.swift",
"Plugins/iOS/FrustrationIgnoreExtensions.swift",
"Plugins/iOS/FrustrationInteractions.swift",
"Plugins/iOS/IOSLifecycleMonitor.swift",
"Plugins/iOS/UIKitElementInteractions.swift",
"Plugins/iOS/UIKitScreenViews.swift",
"Plugins/watchOS/WatchOSLifecycleMonitor.swift",
"Sessions.swift",
"Storages/InMemoryStorage.swift",
"Storages/PersistentStorage.swift",
"Timeline.swift",
"TrackingOptions.swift",
"Types.swift",
"Utilities/Atomic.swift",
"Utilities/AutocaptureManager.swift",
"Utilities/CodableExtension.swift",
"Utilities/Data+Gzip.swift",
"Utilities/DefaultEventUtils.swift",
"Utilities/Diagonostics.swift",
"Utilities/DispatchQueueHolder.swift",
"Utilities/EventPipeline.swift",
"Utilities/HttpClient.swift",
"Utilities/IdentifyInterceptor.swift",
"Utilities/MethodSwizzler.swift",
"Utilities/MiscellaneousExtension.swift",
"Utilities/NetworkSwizzler.swift",
"Utilities/ObjectFilter.swift",
"Utilities/OutputFileStream.swift",
"Utilities/PersistentStorageResponseHandler.swift",
"Utilities/QueueTimer.swift",
"Utilities/SandboxHelper.swift",
"Utilities/UrlExtension.swift"
],
"type" : "library"
},
{
"c99name" : "Amplitude_SwiftTests",
"module_type" : "SwiftTarget",
"name" : "Amplitude-SwiftTests",
"path" : "Tests/AmplitudeTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmplitudeTests/Migration/legacy_v3.sqlite",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/AmplitudeTests/Migration/legacy_v4.sqlite",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"Amplitude+Extensions.swift",
"AmplitudeIOSTests.swift",
"AmplitudeSessionTests.swift",
"AmplitudeTests.swift",
"AutocaptureOptionsTests.swift",
"AutocaptureRemoteConfigTests.swift",
"ConfigurationTests.swift",
"ConsoleLoggerTests.swift",
"Events/BaseEventTests.swift",
"Events/GroupIdentifyEventTests.swift",
"Events/IdentifyEventTests.swift",
"Events/IdentifyTests.swift",
"Events/RevenueEventTests.swift",
"Events/RevenueTests.swift",
"IdentityTests.swift",
"Migration/LegacyDatabaseStorageTests.swift",
"Migration/RemnantDataMigrationTests.swift",
"Migration/StoragePrefixMigrationTests.swift",
"NetworkTrackingPlugin+Extensions.swift",
"Plugins/NetworkConnectivityCheckerPluginTests.swift",
"Plugins/NetworkTrackingPluginTest.swift",
"Plugins/UIKitScreenViewsPluginTests.swift",
"Plugins/UIKitUserInteractionPluginTest.swift",
"Storages/PersistentStorageTests.swift",
"Supports/FakeURLProtocol.swift",
"Supports/TestUtilities.swift",
"TimelineTests.swift",
"TypesTests.swift",
"Utilities/Data+Gzip.swift",
"Utilities/DiagnosticsTests.swift",
"Utilities/EventPipelineTests.swift",
"Utilities/GzipTests.swift",
"Utilities/HttpClientTests.swift",
"Utilities/IdentifyInterceptorTests.swift",
"Utilities/MethodSwizzlerTest.swift",
"Utilities/ObjectFilterTests.swift",
"Utilities/PersistentStorageResponseHandlerTests.swift",
"Utilities/QueueTimeTests.swift",
"Utilities/SandboxHelperTests.swift",
"Utilities/TimeIntervalExtensionsTests.swift",
"Utilities/UrlExtensionTests.swift"
],
"target_dependencies" : [
"AmplitudeSwift"
],
"type" : "test"
}
],
"tools_version" : "5.9"
}
Done.