Build Information
Successful build of blue-triangle, reference 3.15.6 (21b8f7), with Swift 6.1 for macOS (SPM) on 24 Nov 2025 22:57:43 UTC.
Swift 6 data race errors: 41
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
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | internal static var launchTimeReporter : LaunchTimeReporter?{
77 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:85:24: warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
83 | }
84 |
85 | private static var _memoryWarningWatchDog : MemoryWarningWatchDog?
| |- warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_memoryWarningWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_memoryWarningWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | internal static var memoryWarningWatchDog : MemoryWarningWatchDog?{
87 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:95:24: warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
93 | }
94 |
95 | private static var _anrWatchDog : ANRWatchDog?
| |- warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_anrWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_anrWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
96 | internal static var anrWatchDog : ANRWatchDog?{
97 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:105:24: warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
103 | }
104 |
105 | private static var _sessionManager : SessionManagerProtocol?
| |- warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_sessionManager' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_sessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
106 | private static var sessionManager : SessionManagerProtocol?{
107 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:115:25: warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
113 | }
114 |
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
| |- warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clarityConnector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'clarityConnector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
116 |
117 | private static var _enableAllTracking: Bool = configRepo.isEnableAllTracking()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:117:24: warning: static property '_enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
116 |
117 | private static var _enableAllTracking: Bool = configRepo.isEnableAllTracking()
| |- warning: static property '_enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_enableAllTracking' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_enableAllTracking' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
118 | internal static var enableAllTracking: Bool {
119 | get { enableAllTrackingLock.sync { return _enableAllTracking } }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:123:24: warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
121 | }
122 |
123 | private static let configRepo: BTTConfigurationRepo = {
| |- warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'configRepo' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
124 | let config = BTTConfigurationRepo(BTTRemoteConfig.defaultConfig)
125 | return config
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DynamicConfig/BTTConfigurationRepo.swift:17:7: note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
15 | }
16 |
17 | class BTTConfigurationRepo : ConfigurationRepo{
| `- note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
18 |
19 | private let queue = DispatchQueue(label: "com.bluetriangle.configurationRepo", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:128:25: warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
126 | }()
127 |
128 | internal static let disableModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'disableModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 | let configFetcher = BTTConfigurationFetcher()
130 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:135:25: warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
133 | }()
134 |
135 | internal static let enabledModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'enabledModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
136 | let configFetcher = BTTConfigurationFetcher()
137 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:150:24: warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
148 | private static let enableAllTrackingLock = NSLock()
149 | private static let appInitializeLock = NSLock()
150 | private static var activeTimers = [BTTimer]()
| |- warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'activeTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'activeTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
151 | #if os(iOS)
152 | private static let matricKitWatchDog = MetricKitWatchDog()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:196:24: warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
194 | }
195 |
196 | private static var _session: Session? = {
| |- warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_session' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_session' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
197 | configuration.makeSession()
198 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:251:24: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
249 | }
250 |
251 | private static var logger: Logging = {
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
252 | configuration.makeLogger()
253 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:255:24: warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
253 | }()
254 |
255 | private static var uploader: Uploading = {
| |- warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'uploader' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'uploader' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
256 | configuration.uploaderConfiguration.makeUploader(
257 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:263:24: warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
261 | }()
262 |
263 | private static var timerFactory: (Page, BTTimer.TimerType, Bool) -> BTTimer = {
| |- warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'timerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
264 | configuration.timerConfiguration.makeTimerFactory(
265 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:269:24: warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
267 | }()
268 |
269 | private static var internalTimerFactory: () -> InternalTimer = {
| |- warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'internalTimerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'internalTimerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
270 | configuration.internalTimerConfiguration.makeTimerFactory(logger: logger)
271 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:273:24: warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
271 | }()
272 |
273 | private static var shouldCaptureRequests: Bool = {
| |- warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
274 | sessionData()?.shouldNetworkCapture ?? false
275 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:277:24: warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
275 | }()
276 |
277 | private static var shouldGroupedCaptureRequests: Bool = {
| |- warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldGroupedCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldGroupedCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
278 | sessionData()?.shouldGroupedViewCapture ?? false
279 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:289:24: warning: static property '_initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
287 | /// enable/disable state via the Remote Configuration Updater.
288 | ///
289 | private static var _initialized = false
| |- warning: static property '_initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_initialized' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_initialized' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
290 |
291 | public static var initialized: Bool {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:296:24: warning: static property '_capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
294 | }
295 |
296 | private static var _capturedRequestCollector: CapturedRequestCollecting? = {
| |- warning: static property '_capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_capturedRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_capturedRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
297 | return makeCapturedRequestCollector()
298 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:300:24: warning: static property '_capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
298 | }()
299 |
300 | private static var _capturedGroupedViewRequestCollector: CapturedGroupRequestCollecting? = {
| |- warning: static property '_capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_capturedGroupedViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_capturedGroupedViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
301 | return makeCapturedGroupRequestCollector()
302 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:304:24: warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
302 | }()
303 |
304 | private static var capturedActionsViewRequestCollector: CapturedActionRequestCollector? = {
| |- warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedActionsViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedActionsViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
305 | return makeCapturedActionRequestCollector() as! CapturedActionRequestCollector
306 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:333:25: warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
331 |
332 | //Cache components
333 | internal static var payloadCache : PayloadCacheProtocol = {
| |- warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'payloadCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'payloadCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
334 | PayloadCache.init(configuration.cacheMemoryLimit,
335 | expiry: configuration.cacheExpiryDuration)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportManager.swift:37:33: warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | import Foundation
9 |
10 | final class CrashReportManager: CrashReportManaging {
| `- note: class 'CrashReportManager' does not conform to the 'Sendable' protocol
11 |
12 | private let crashReportPersistence: CrashReportPersisting.Type
:
35 | self.intervalProvider = intervalProvider
36 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
37 | guard let session = self?.session() else {
| `- warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 | return
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportPersistence.swift:18:24: warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | struct CrashReportPersistence: CrashReportPersisting {
18 | private static let logger = BTLogger.live
| |- warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | private static var persistence: Persistence? {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DisableModeSessionManager.swift:99:14: warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
28 | /// - Note: This session manager is used exclusively when `enableAllTracking` is false.
29 | ///
30 | class DisableModeSessionManager : SessionManagerProtocol {
| `- note: class 'DisableModeSessionManager' does not conform to the 'Sendable' protocol
31 |
32 | private var expirationDurationInMS: Millisecond = 30 * 60 * 1000
:
97 | private func updateRemoteConfig(){
98 | queue.async { [weak self] in
99 | self?.updater.update(true) {}
| `- warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
100 | }
101 | }
[131/134] Compiling BlueTriangle CrashReportPersistence.swift
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTLogger.swift:118:16: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
116 |
117 | extension BTLogger {
118 | static let live: Logging = {
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 | BTLogger()
120 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:58:40: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
56 | case .nsException:
57 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
58 | guard let strongSelf = self else {
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
59 | return
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:91:37: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
89 | DispatchQueue.global(qos: .utility).async { [weak self] in
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
92 | var sessionCopy = session
93 | sessionCopy.sessionID = sessionId
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:92:39: warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
92 | var sessionCopy = session
| `- warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
93 | sessionCopy.sessionID = sessionId
94 | let pageName = (crash.btt_page_name ?? "").count > 0 ? crash.btt_page_name : Constants.crashID
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Models/Session.swift:10:8: note: consider making struct 'Session' conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | struct Session: Equatable {
| `- note: consider making struct 'Session' conform to the 'Sendable' protocol
11 | let wcd = 1
12 | let eventType = 9
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTTimer.swift:272:20: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
249 | // MARK: - Supporting Types
250 | extension BTTimer {
251 | struct Configuration {
| `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
252 | let timeIntervalProvider: () -> TimeInterval
253 |
:
270 | }
271 |
272 | static let live = Self(
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
273 | timeIntervalProvider: { Date().timeIntervalSince1970 }
274 | )
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:23:25: warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 | final public class BlueTriangle: NSObject {
22 |
23 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
| |- warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'groupTimer' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'groupTimer' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | internal static var configuration = BlueTriangleConfiguration()
25 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:24:25: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
22 |
23 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
24 | internal static var configuration = BlueTriangleConfiguration()
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 | private static var _screenTracker: BTTScreenLifecycleTracker?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:26:24: warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 | internal static var configuration = BlueTriangleConfiguration()
25 |
26 | private static var _screenTracker: BTTScreenLifecycleTracker?
| |- warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_screenTracker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_screenTracker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | internal static var screenTracker: BTTScreenLifecycleTracker?{
28 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:35:24: warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 | }
34 | }
35 | private static var _networkStateMonitor: NetworkStateMonitorProtocol?
| |- warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_networkStateMonitor' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_networkStateMonitor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 | internal static var networkStateMonitor: NetworkStateMonitorProtocol?{
37 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:45:24: warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | }
44 |
45 | private static var _appEventObserver: AppEventObserver?
| |- warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_appEventObserver' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_appEventObserver' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 | internal static var appEventObserver: AppEventObserver?{
47 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:55:24: warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | private static var _nsExeptionReporter: CrashReportManaging?
| |- warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_nsExeptionReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_nsExeptionReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
56 | private static var nsExeptionReporter: CrashReportManaging?{
57 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:65:24: warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
63 | }
64 |
65 | private static var _signalCrashReporter: BTSignalCrashReporter?
| |- warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_signalCrashReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_signalCrashReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
66 | internal static var signalCrashReporter: BTSignalCrashReporter?{
67 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:75:24: warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 | }
74 |
75 | private static var _launchTimeReporter : LaunchTimeReporter?
| |- warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_launchTimeReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_launchTimeReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | internal static var launchTimeReporter : LaunchTimeReporter?{
77 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:85:24: warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
83 | }
84 |
85 | private static var _memoryWarningWatchDog : MemoryWarningWatchDog?
| |- warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_memoryWarningWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_memoryWarningWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | internal static var memoryWarningWatchDog : MemoryWarningWatchDog?{
87 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:95:24: warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
93 | }
94 |
95 | private static var _anrWatchDog : ANRWatchDog?
| |- warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_anrWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_anrWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
96 | internal static var anrWatchDog : ANRWatchDog?{
97 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:105:24: warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
103 | }
104 |
105 | private static var _sessionManager : SessionManagerProtocol?
| |- warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_sessionManager' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_sessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
106 | private static var sessionManager : SessionManagerProtocol?{
107 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:115:25: warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
113 | }
114 |
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
| |- warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clarityConnector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'clarityConnector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
116 |
117 | private static var _enableAllTracking: Bool = configRepo.isEnableAllTracking()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:117:24: warning: static property '_enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
116 |
117 | private static var _enableAllTracking: Bool = configRepo.isEnableAllTracking()
| |- warning: static property '_enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_enableAllTracking' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_enableAllTracking' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
118 | internal static var enableAllTracking: Bool {
119 | get { enableAllTrackingLock.sync { return _enableAllTracking } }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:123:24: warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
121 | }
122 |
123 | private static let configRepo: BTTConfigurationRepo = {
| |- warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'configRepo' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
124 | let config = BTTConfigurationRepo(BTTRemoteConfig.defaultConfig)
125 | return config
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DynamicConfig/BTTConfigurationRepo.swift:17:7: note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
15 | }
16 |
17 | class BTTConfigurationRepo : ConfigurationRepo{
| `- note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
18 |
19 | private let queue = DispatchQueue(label: "com.bluetriangle.configurationRepo", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:128:25: warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
126 | }()
127 |
128 | internal static let disableModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'disableModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 | let configFetcher = BTTConfigurationFetcher()
130 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:135:25: warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
133 | }()
134 |
135 | internal static let enabledModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'enabledModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
136 | let configFetcher = BTTConfigurationFetcher()
137 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:150:24: warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
148 | private static let enableAllTrackingLock = NSLock()
149 | private static let appInitializeLock = NSLock()
150 | private static var activeTimers = [BTTimer]()
| |- warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'activeTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'activeTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
151 | #if os(iOS)
152 | private static let matricKitWatchDog = MetricKitWatchDog()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:196:24: warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
194 | }
195 |
196 | private static var _session: Session? = {
| |- warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_session' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_session' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
197 | configuration.makeSession()
198 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:251:24: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
249 | }
250 |
251 | private static var logger: Logging = {
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
252 | configuration.makeLogger()
253 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:255:24: warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
253 | }()
254 |
255 | private static var uploader: Uploading = {
| |- warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'uploader' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'uploader' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
256 | configuration.uploaderConfiguration.makeUploader(
257 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:263:24: warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
261 | }()
262 |
263 | private static var timerFactory: (Page, BTTimer.TimerType, Bool) -> BTTimer = {
| |- warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'timerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
264 | configuration.timerConfiguration.makeTimerFactory(
265 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:269:24: warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
267 | }()
268 |
269 | private static var internalTimerFactory: () -> InternalTimer = {
| |- warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'internalTimerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'internalTimerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
270 | configuration.internalTimerConfiguration.makeTimerFactory(logger: logger)
271 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:273:24: warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
271 | }()
272 |
273 | private static var shouldCaptureRequests: Bool = {
| |- warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
274 | sessionData()?.shouldNetworkCapture ?? false
275 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:277:24: warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
275 | }()
276 |
277 | private static var shouldGroupedCaptureRequests: Bool = {
| |- warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldGroupedCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldGroupedCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
278 | sessionData()?.shouldGroupedViewCapture ?? false
279 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:289:24: warning: static property '_initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
287 | /// enable/disable state via the Remote Configuration Updater.
288 | ///
289 | private static var _initialized = false
| |- warning: static property '_initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_initialized' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_initialized' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
290 |
291 | public static var initialized: Bool {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:296:24: warning: static property '_capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
294 | }
295 |
296 | private static var _capturedRequestCollector: CapturedRequestCollecting? = {
| |- warning: static property '_capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_capturedRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_capturedRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
297 | return makeCapturedRequestCollector()
298 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:300:24: warning: static property '_capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
298 | }()
299 |
300 | private static var _capturedGroupedViewRequestCollector: CapturedGroupRequestCollecting? = {
| |- warning: static property '_capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_capturedGroupedViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_capturedGroupedViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
301 | return makeCapturedGroupRequestCollector()
302 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:304:24: warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
302 | }()
303 |
304 | private static var capturedActionsViewRequestCollector: CapturedActionRequestCollector? = {
| |- warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedActionsViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedActionsViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
305 | return makeCapturedActionRequestCollector() as! CapturedActionRequestCollector
306 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:333:25: warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
331 |
332 | //Cache components
333 | internal static var payloadCache : PayloadCacheProtocol = {
| |- warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'payloadCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'payloadCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
334 | PayloadCache.init(configuration.cacheMemoryLimit,
335 | expiry: configuration.cacheExpiryDuration)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportManager.swift:37:33: warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | import Foundation
9 |
10 | final class CrashReportManager: CrashReportManaging {
| `- note: class 'CrashReportManager' does not conform to the 'Sendable' protocol
11 |
12 | private let crashReportPersistence: CrashReportPersisting.Type
:
35 | self.intervalProvider = intervalProvider
36 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
37 | guard let session = self?.session() else {
| `- warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 | return
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportPersistence.swift:18:24: warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | struct CrashReportPersistence: CrashReportPersisting {
18 | private static let logger = BTLogger.live
| |- warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | private static var persistence: Persistence? {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DisableModeSessionManager.swift:99:14: warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
28 | /// - Note: This session manager is used exclusively when `enableAllTracking` is false.
29 | ///
30 | class DisableModeSessionManager : SessionManagerProtocol {
| `- note: class 'DisableModeSessionManager' does not conform to the 'Sendable' protocol
31 |
32 | private var expirationDurationInMS: Millisecond = 30 * 60 * 1000
:
97 | private func updateRemoteConfig(){
98 | queue.async { [weak self] in
99 | self?.updater.update(true) {}
| `- warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
100 | }
101 | }
[132/134] Compiling BlueTriangle Device.swift
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTLogger.swift:118:16: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
116 |
117 | extension BTLogger {
118 | static let live: Logging = {
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 | BTLogger()
120 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:58:40: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
56 | case .nsException:
57 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
58 | guard let strongSelf = self else {
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
59 | return
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:91:37: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
89 | DispatchQueue.global(qos: .utility).async { [weak self] in
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
92 | var sessionCopy = session
93 | sessionCopy.sessionID = sessionId
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:92:39: warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
92 | var sessionCopy = session
| `- warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
93 | sessionCopy.sessionID = sessionId
94 | let pageName = (crash.btt_page_name ?? "").count > 0 ? crash.btt_page_name : Constants.crashID
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Models/Session.swift:10:8: note: consider making struct 'Session' conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | struct Session: Equatable {
| `- note: consider making struct 'Session' conform to the 'Sendable' protocol
11 | let wcd = 1
12 | let eventType = 9
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTTimer.swift:272:20: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
249 | // MARK: - Supporting Types
250 | extension BTTimer {
251 | struct Configuration {
| `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
252 | let timeIntervalProvider: () -> TimeInterval
253 |
:
270 | }
271 |
272 | static let live = Self(
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
273 | timeIntervalProvider: { Date().timeIntervalSince1970 }
274 | )
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:23:25: warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 | final public class BlueTriangle: NSObject {
22 |
23 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
| |- warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'groupTimer' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'groupTimer' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | internal static var configuration = BlueTriangleConfiguration()
25 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:24:25: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
22 |
23 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
24 | internal static var configuration = BlueTriangleConfiguration()
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 | private static var _screenTracker: BTTScreenLifecycleTracker?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:26:24: warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 | internal static var configuration = BlueTriangleConfiguration()
25 |
26 | private static var _screenTracker: BTTScreenLifecycleTracker?
| |- warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_screenTracker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_screenTracker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | internal static var screenTracker: BTTScreenLifecycleTracker?{
28 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:35:24: warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 | }
34 | }
35 | private static var _networkStateMonitor: NetworkStateMonitorProtocol?
| |- warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_networkStateMonitor' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_networkStateMonitor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 | internal static var networkStateMonitor: NetworkStateMonitorProtocol?{
37 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:45:24: warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | }
44 |
45 | private static var _appEventObserver: AppEventObserver?
| |- warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_appEventObserver' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_appEventObserver' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 | internal static var appEventObserver: AppEventObserver?{
47 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:55:24: warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | private static var _nsExeptionReporter: CrashReportManaging?
| |- warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_nsExeptionReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_nsExeptionReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
56 | private static var nsExeptionReporter: CrashReportManaging?{
57 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:65:24: warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
63 | }
64 |
65 | private static var _signalCrashReporter: BTSignalCrashReporter?
| |- warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_signalCrashReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_signalCrashReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
66 | internal static var signalCrashReporter: BTSignalCrashReporter?{
67 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:75:24: warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 | }
74 |
75 | private static var _launchTimeReporter : LaunchTimeReporter?
| |- warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_launchTimeReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_launchTimeReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | internal static var launchTimeReporter : LaunchTimeReporter?{
77 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:85:24: warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
83 | }
84 |
85 | private static var _memoryWarningWatchDog : MemoryWarningWatchDog?
| |- warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_memoryWarningWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_memoryWarningWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | internal static var memoryWarningWatchDog : MemoryWarningWatchDog?{
87 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:95:24: warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
93 | }
94 |
95 | private static var _anrWatchDog : ANRWatchDog?
| |- warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_anrWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_anrWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
96 | internal static var anrWatchDog : ANRWatchDog?{
97 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:105:24: warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
103 | }
104 |
105 | private static var _sessionManager : SessionManagerProtocol?
| |- warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_sessionManager' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_sessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
106 | private static var sessionManager : SessionManagerProtocol?{
107 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:115:25: warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
113 | }
114 |
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
| |- warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clarityConnector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'clarityConnector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
116 |
117 | private static var _enableAllTracking: Bool = configRepo.isEnableAllTracking()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:117:24: warning: static property '_enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
116 |
117 | private static var _enableAllTracking: Bool = configRepo.isEnableAllTracking()
| |- warning: static property '_enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_enableAllTracking' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_enableAllTracking' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
118 | internal static var enableAllTracking: Bool {
119 | get { enableAllTrackingLock.sync { return _enableAllTracking } }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:123:24: warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
121 | }
122 |
123 | private static let configRepo: BTTConfigurationRepo = {
| |- warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'configRepo' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
124 | let config = BTTConfigurationRepo(BTTRemoteConfig.defaultConfig)
125 | return config
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DynamicConfig/BTTConfigurationRepo.swift:17:7: note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
15 | }
16 |
17 | class BTTConfigurationRepo : ConfigurationRepo{
| `- note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
18 |
19 | private let queue = DispatchQueue(label: "com.bluetriangle.configurationRepo", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:128:25: warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
126 | }()
127 |
128 | internal static let disableModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'disableModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 | let configFetcher = BTTConfigurationFetcher()
130 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:135:25: warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
133 | }()
134 |
135 | internal static let enabledModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'enabledModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
136 | let configFetcher = BTTConfigurationFetcher()
137 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:150:24: warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
148 | private static let enableAllTrackingLock = NSLock()
149 | private static let appInitializeLock = NSLock()
150 | private static var activeTimers = [BTTimer]()
| |- warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'activeTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'activeTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
151 | #if os(iOS)
152 | private static let matricKitWatchDog = MetricKitWatchDog()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:196:24: warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
194 | }
195 |
196 | private static var _session: Session? = {
| |- warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_session' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_session' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
197 | configuration.makeSession()
198 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:251:24: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
249 | }
250 |
251 | private static var logger: Logging = {
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
252 | configuration.makeLogger()
253 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:255:24: warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
253 | }()
254 |
255 | private static var uploader: Uploading = {
| |- warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'uploader' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'uploader' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
256 | configuration.uploaderConfiguration.makeUploader(
257 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:263:24: warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
261 | }()
262 |
263 | private static var timerFactory: (Page, BTTimer.TimerType, Bool) -> BTTimer = {
| |- warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'timerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
264 | configuration.timerConfiguration.makeTimerFactory(
265 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:269:24: warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
267 | }()
268 |
269 | private static var internalTimerFactory: () -> InternalTimer = {
| |- warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'internalTimerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'internalTimerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
270 | configuration.internalTimerConfiguration.makeTimerFactory(logger: logger)
271 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:273:24: warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
271 | }()
272 |
273 | private static var shouldCaptureRequests: Bool = {
| |- warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
274 | sessionData()?.shouldNetworkCapture ?? false
275 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:277:24: warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
275 | }()
276 |
277 | private static var shouldGroupedCaptureRequests: Bool = {
| |- warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldGroupedCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldGroupedCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
278 | sessionData()?.shouldGroupedViewCapture ?? false
279 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:289:24: warning: static property '_initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
287 | /// enable/disable state via the Remote Configuration Updater.
288 | ///
289 | private static var _initialized = false
| |- warning: static property '_initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_initialized' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_initialized' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
290 |
291 | public static var initialized: Bool {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:296:24: warning: static property '_capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
294 | }
295 |
296 | private static var _capturedRequestCollector: CapturedRequestCollecting? = {
| |- warning: static property '_capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_capturedRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_capturedRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
297 | return makeCapturedRequestCollector()
298 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:300:24: warning: static property '_capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
298 | }()
299 |
300 | private static var _capturedGroupedViewRequestCollector: CapturedGroupRequestCollecting? = {
| |- warning: static property '_capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_capturedGroupedViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_capturedGroupedViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
301 | return makeCapturedGroupRequestCollector()
302 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:304:24: warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
302 | }()
303 |
304 | private static var capturedActionsViewRequestCollector: CapturedActionRequestCollector? = {
| |- warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedActionsViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedActionsViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
305 | return makeCapturedActionRequestCollector() as! CapturedActionRequestCollector
306 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:333:25: warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
331 |
332 | //Cache components
333 | internal static var payloadCache : PayloadCacheProtocol = {
| |- warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'payloadCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'payloadCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
334 | PayloadCache.init(configuration.cacheMemoryLimit,
335 | expiry: configuration.cacheExpiryDuration)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportManager.swift:37:33: warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | import Foundation
9 |
10 | final class CrashReportManager: CrashReportManaging {
| `- note: class 'CrashReportManager' does not conform to the 'Sendable' protocol
11 |
12 | private let crashReportPersistence: CrashReportPersisting.Type
:
35 | self.intervalProvider = intervalProvider
36 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
37 | guard let session = self?.session() else {
| `- warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 | return
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportPersistence.swift:18:24: warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | struct CrashReportPersistence: CrashReportPersisting {
18 | private static let logger = BTLogger.live
| |- warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | private static var persistence: Persistence? {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DisableModeSessionManager.swift:99:14: warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
28 | /// - Note: This session manager is used exclusively when `enableAllTracking` is false.
29 | ///
30 | class DisableModeSessionManager : SessionManagerProtocol {
| `- note: class 'DisableModeSessionManager' does not conform to the 'Sendable' protocol
31 |
32 | private var expirationDurationInMS: Millisecond = 30 * 60 * 1000
:
97 | private func updateRemoteConfig(){
98 | queue.async { [weak self] in
99 | self?.updater.update(true) {}
| `- warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
100 | }
101 | }
[133/134] Compiling BlueTriangle DisableModeSessionManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTLogger.swift:118:16: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
116 |
117 | extension BTLogger {
118 | static let live: Logging = {
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 | BTLogger()
120 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:58:40: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
56 | case .nsException:
57 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
58 | guard let strongSelf = self else {
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
59 | return
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:91:37: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
89 | DispatchQueue.global(qos: .utility).async { [weak self] in
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
92 | var sessionCopy = session
93 | sessionCopy.sessionID = sessionId
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:92:39: warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
92 | var sessionCopy = session
| `- warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
93 | sessionCopy.sessionID = sessionId
94 | let pageName = (crash.btt_page_name ?? "").count > 0 ? crash.btt_page_name : Constants.crashID
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Models/Session.swift:10:8: note: consider making struct 'Session' conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | struct Session: Equatable {
| `- note: consider making struct 'Session' conform to the 'Sendable' protocol
11 | let wcd = 1
12 | let eventType = 9
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTTimer.swift:272:20: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
249 | // MARK: - Supporting Types
250 | extension BTTimer {
251 | struct Configuration {
| `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
252 | let timeIntervalProvider: () -> TimeInterval
253 |
:
270 | }
271 |
272 | static let live = Self(
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
273 | timeIntervalProvider: { Date().timeIntervalSince1970 }
274 | )
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:23:25: warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 | final public class BlueTriangle: NSObject {
22 |
23 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
| |- warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'groupTimer' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'groupTimer' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | internal static var configuration = BlueTriangleConfiguration()
25 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:24:25: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
22 |
23 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
24 | internal static var configuration = BlueTriangleConfiguration()
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 | private static var _screenTracker: BTTScreenLifecycleTracker?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:26:24: warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 | internal static var configuration = BlueTriangleConfiguration()
25 |
26 | private static var _screenTracker: BTTScreenLifecycleTracker?
| |- warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_screenTracker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_screenTracker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | internal static var screenTracker: BTTScreenLifecycleTracker?{
28 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:35:24: warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 | }
34 | }
35 | private static var _networkStateMonitor: NetworkStateMonitorProtocol?
| |- warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_networkStateMonitor' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_networkStateMonitor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 | internal static var networkStateMonitor: NetworkStateMonitorProtocol?{
37 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:45:24: warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | }
44 |
45 | private static var _appEventObserver: AppEventObserver?
| |- warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_appEventObserver' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_appEventObserver' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 | internal static var appEventObserver: AppEventObserver?{
47 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:55:24: warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | private static var _nsExeptionReporter: CrashReportManaging?
| |- warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_nsExeptionReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_nsExeptionReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
56 | private static var nsExeptionReporter: CrashReportManaging?{
57 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:65:24: warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
63 | }
64 |
65 | private static var _signalCrashReporter: BTSignalCrashReporter?
| |- warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_signalCrashReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_signalCrashReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
66 | internal static var signalCrashReporter: BTSignalCrashReporter?{
67 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:75:24: warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 | }
74 |
75 | private static var _launchTimeReporter : LaunchTimeReporter?
| |- warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_launchTimeReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_launchTimeReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | internal static var launchTimeReporter : LaunchTimeReporter?{
77 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:85:24: warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
83 | }
84 |
85 | private static var _memoryWarningWatchDog : MemoryWarningWatchDog?
| |- warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_memoryWarningWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_memoryWarningWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | internal static var memoryWarningWatchDog : MemoryWarningWatchDog?{
87 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:95:24: warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
93 | }
94 |
95 | private static var _anrWatchDog : ANRWatchDog?
| |- warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_anrWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_anrWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
96 | internal static var anrWatchDog : ANRWatchDog?{
97 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:105:24: warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
103 | }
104 |
105 | private static var _sessionManager : SessionManagerProtocol?
| |- warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_sessionManager' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_sessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
106 | private static var sessionManager : SessionManagerProtocol?{
107 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:115:25: warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
113 | }
114 |
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
| |- warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clarityConnector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'clarityConnector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
116 |
117 | private static var _enableAllTracking: Bool = configRepo.isEnableAllTracking()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:117:24: warning: static property '_enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
116 |
117 | private static var _enableAllTracking: Bool = configRepo.isEnableAllTracking()
| |- warning: static property '_enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_enableAllTracking' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_enableAllTracking' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
118 | internal static var enableAllTracking: Bool {
119 | get { enableAllTrackingLock.sync { return _enableAllTracking } }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:123:24: warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
121 | }
122 |
123 | private static let configRepo: BTTConfigurationRepo = {
| |- warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'configRepo' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
124 | let config = BTTConfigurationRepo(BTTRemoteConfig.defaultConfig)
125 | return config
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DynamicConfig/BTTConfigurationRepo.swift:17:7: note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
15 | }
16 |
17 | class BTTConfigurationRepo : ConfigurationRepo{
| `- note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
18 |
19 | private let queue = DispatchQueue(label: "com.bluetriangle.configurationRepo", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:128:25: warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
126 | }()
127 |
128 | internal static let disableModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'disableModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 | let configFetcher = BTTConfigurationFetcher()
130 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:135:25: warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
133 | }()
134 |
135 | internal static let enabledModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'enabledModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
136 | let configFetcher = BTTConfigurationFetcher()
137 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:150:24: warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
148 | private static let enableAllTrackingLock = NSLock()
149 | private static let appInitializeLock = NSLock()
150 | private static var activeTimers = [BTTimer]()
| |- warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'activeTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'activeTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
151 | #if os(iOS)
152 | private static let matricKitWatchDog = MetricKitWatchDog()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:196:24: warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
194 | }
195 |
196 | private static var _session: Session? = {
| |- warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_session' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_session' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
197 | configuration.makeSession()
198 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:251:24: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
249 | }
250 |
251 | private static var logger: Logging = {
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
252 | configuration.makeLogger()
253 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:255:24: warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
253 | }()
254 |
255 | private static var uploader: Uploading = {
| |- warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'uploader' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'uploader' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
256 | configuration.uploaderConfiguration.makeUploader(
257 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:263:24: warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
261 | }()
262 |
263 | private static var timerFactory: (Page, BTTimer.TimerType, Bool) -> BTTimer = {
| |- warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'timerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
264 | configuration.timerConfiguration.makeTimerFactory(
265 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:269:24: warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
267 | }()
268 |
269 | private static var internalTimerFactory: () -> InternalTimer = {
| |- warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'internalTimerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'internalTimerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
270 | configuration.internalTimerConfiguration.makeTimerFactory(logger: logger)
271 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:273:24: warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
271 | }()
272 |
273 | private static var shouldCaptureRequests: Bool = {
| |- warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
274 | sessionData()?.shouldNetworkCapture ?? false
275 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:277:24: warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
275 | }()
276 |
277 | private static var shouldGroupedCaptureRequests: Bool = {
| |- warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldGroupedCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldGroupedCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
278 | sessionData()?.shouldGroupedViewCapture ?? false
279 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:289:24: warning: static property '_initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
287 | /// enable/disable state via the Remote Configuration Updater.
288 | ///
289 | private static var _initialized = false
| |- warning: static property '_initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_initialized' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_initialized' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
290 |
291 | public static var initialized: Bool {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:296:24: warning: static property '_capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
294 | }
295 |
296 | private static var _capturedRequestCollector: CapturedRequestCollecting? = {
| |- warning: static property '_capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_capturedRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_capturedRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
297 | return makeCapturedRequestCollector()
298 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:300:24: warning: static property '_capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
298 | }()
299 |
300 | private static var _capturedGroupedViewRequestCollector: CapturedGroupRequestCollecting? = {
| |- warning: static property '_capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_capturedGroupedViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_capturedGroupedViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
301 | return makeCapturedGroupRequestCollector()
302 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:304:24: warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
302 | }()
303 |
304 | private static var capturedActionsViewRequestCollector: CapturedActionRequestCollector? = {
| |- warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedActionsViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedActionsViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
305 | return makeCapturedActionRequestCollector() as! CapturedActionRequestCollector
306 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:333:25: warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
331 |
332 | //Cache components
333 | internal static var payloadCache : PayloadCacheProtocol = {
| |- warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'payloadCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'payloadCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
334 | PayloadCache.init(configuration.cacheMemoryLimit,
335 | expiry: configuration.cacheExpiryDuration)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportManager.swift:37:33: warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | import Foundation
9 |
10 | final class CrashReportManager: CrashReportManaging {
| `- note: class 'CrashReportManager' does not conform to the 'Sendable' protocol
11 |
12 | private let crashReportPersistence: CrashReportPersisting.Type
:
35 | self.intervalProvider = intervalProvider
36 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
37 | guard let session = self?.session() else {
| `- warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 | return
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportPersistence.swift:18:24: warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | struct CrashReportPersistence: CrashReportPersisting {
18 | private static let logger = BTLogger.live
| |- warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | private static var persistence: Persistence? {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DisableModeSessionManager.swift:99:14: warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
28 | /// - Note: This session manager is used exclusively when `enableAllTracking` is false.
29 | ///
30 | class DisableModeSessionManager : SessionManagerProtocol {
| `- note: class 'DisableModeSessionManager' does not conform to the 'Sendable' protocol
31 |
32 | private var expirationDurationInMS: Millisecond = 30 * 60 * 1000
:
97 | private func updateRemoteConfig(){
98 | queue.async { [weak self] in
99 | self?.updater.update(true) {}
| `- warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
100 | }
101 | }
[134/134] Compiling BlueTriangle BTTConfigurationFetcher.swift
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTLogger.swift:118:16: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
116 |
117 | extension BTLogger {
118 | static let live: Logging = {
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 | BTLogger()
120 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:58:40: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
56 | case .nsException:
57 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
58 | guard let strongSelf = self else {
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
59 | return
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:91:37: warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
24 |
25 |
26 | class BTSignalCrashReporter {
| `- note: class 'BTSignalCrashReporter' does not conform to the 'Sendable' protocol
27 |
28 | private let directory : String
:
89 | DispatchQueue.global(qos: .utility).async { [weak self] in
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
| `- warning: capture of 'self' with non-sendable type 'BTSignalCrashReporter?' in a '@Sendable' closure
92 | var sessionCopy = session
93 | sessionCopy.sessionID = sessionId
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTSignalCrashReporter.swift:92:39: warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
90 | do {
91 | if let strongSelf = self, let session_id = crash.btt_session_id, session_id.count > 0, let sessionId = UInt64(session_id){
92 | var sessionCopy = session
| `- warning: capture of 'session' with non-sendable type 'Session' in a '@Sendable' closure
93 | sessionCopy.sessionID = sessionId
94 | let pageName = (crash.btt_page_name ?? "").count > 0 ? crash.btt_page_name : Constants.crashID
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Models/Session.swift:10:8: note: consider making struct 'Session' conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | struct Session: Equatable {
| `- note: consider making struct 'Session' conform to the 'Sendable' protocol
11 | let wcd = 1
12 | let eventType = 9
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BTTimer.swift:272:20: warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
249 | // MARK: - Supporting Types
250 | extension BTTimer {
251 | struct Configuration {
| `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
252 | let timeIntervalProvider: () -> TimeInterval
253 |
:
270 | }
271 |
272 | static let live = Self(
| |- warning: static property 'live' is not concurrency-safe because non-'Sendable' type 'BTTimer.Configuration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'live' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
273 | timeIntervalProvider: { Date().timeIntervalSince1970 }
274 | )
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:23:25: warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
21 | final public class BlueTriangle: NSObject {
22 |
23 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
| |- warning: static property 'groupTimer' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'groupTimer' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'groupTimer' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
24 | internal static var configuration = BlueTriangleConfiguration()
25 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:24:25: warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
22 |
23 | internal static var groupTimer : BTTimerGroupManager = BTTimerGroupManager(logger: logger)
24 | internal static var configuration = BlueTriangleConfiguration()
| |- warning: static property 'configuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'configuration' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'configuration' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
25 |
26 | private static var _screenTracker: BTTScreenLifecycleTracker?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:26:24: warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
24 | internal static var configuration = BlueTriangleConfiguration()
25 |
26 | private static var _screenTracker: BTTScreenLifecycleTracker?
| |- warning: static property '_screenTracker' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_screenTracker' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_screenTracker' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
27 | internal static var screenTracker: BTTScreenLifecycleTracker?{
28 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:35:24: warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
33 | }
34 | }
35 | private static var _networkStateMonitor: NetworkStateMonitorProtocol?
| |- warning: static property '_networkStateMonitor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_networkStateMonitor' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_networkStateMonitor' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
36 | internal static var networkStateMonitor: NetworkStateMonitorProtocol?{
37 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:45:24: warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
43 | }
44 |
45 | private static var _appEventObserver: AppEventObserver?
| |- warning: static property '_appEventObserver' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_appEventObserver' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_appEventObserver' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
46 | internal static var appEventObserver: AppEventObserver?{
47 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:55:24: warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
53 | }
54 |
55 | private static var _nsExeptionReporter: CrashReportManaging?
| |- warning: static property '_nsExeptionReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_nsExeptionReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_nsExeptionReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
56 | private static var nsExeptionReporter: CrashReportManaging?{
57 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:65:24: warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
63 | }
64 |
65 | private static var _signalCrashReporter: BTSignalCrashReporter?
| |- warning: static property '_signalCrashReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_signalCrashReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_signalCrashReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
66 | internal static var signalCrashReporter: BTSignalCrashReporter?{
67 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:75:24: warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
73 | }
74 |
75 | private static var _launchTimeReporter : LaunchTimeReporter?
| |- warning: static property '_launchTimeReporter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_launchTimeReporter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_launchTimeReporter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
76 | internal static var launchTimeReporter : LaunchTimeReporter?{
77 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:85:24: warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
83 | }
84 |
85 | private static var _memoryWarningWatchDog : MemoryWarningWatchDog?
| |- warning: static property '_memoryWarningWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_memoryWarningWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_memoryWarningWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
86 | internal static var memoryWarningWatchDog : MemoryWarningWatchDog?{
87 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:95:24: warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
93 | }
94 |
95 | private static var _anrWatchDog : ANRWatchDog?
| |- warning: static property '_anrWatchDog' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_anrWatchDog' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_anrWatchDog' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
96 | internal static var anrWatchDog : ANRWatchDog?{
97 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:105:24: warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
103 | }
104 |
105 | private static var _sessionManager : SessionManagerProtocol?
| |- warning: static property '_sessionManager' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_sessionManager' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_sessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
106 | private static var sessionManager : SessionManagerProtocol?{
107 | get {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:115:25: warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
113 | }
114 |
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
| |- warning: static property 'clarityConnector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'clarityConnector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'clarityConnector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
116 |
117 | private static var _enableAllTracking: Bool = configRepo.isEnableAllTracking()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:117:24: warning: static property '_enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
115 | internal static var clarityConnector = ClaritySessionConnector(logger: logger)
116 |
117 | private static var _enableAllTracking: Bool = configRepo.isEnableAllTracking()
| |- warning: static property '_enableAllTracking' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_enableAllTracking' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_enableAllTracking' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
118 | internal static var enableAllTracking: Bool {
119 | get { enableAllTrackingLock.sync { return _enableAllTracking } }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:123:24: warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
121 | }
122 |
123 | private static let configRepo: BTTConfigurationRepo = {
| |- warning: static property 'configRepo' is not concurrency-safe because non-'Sendable' type 'BTTConfigurationRepo' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'configRepo' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
124 | let config = BTTConfigurationRepo(BTTRemoteConfig.defaultConfig)
125 | return config
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DynamicConfig/BTTConfigurationRepo.swift:17:7: note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
15 | }
16 |
17 | class BTTConfigurationRepo : ConfigurationRepo{
| `- note: class 'BTTConfigurationRepo' does not conform to the 'Sendable' protocol
18 |
19 | private let queue = DispatchQueue(label: "com.bluetriangle.configurationRepo", attributes: .concurrent)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:128:25: warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
126 | }()
127 |
128 | internal static let disableModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'disableModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'disableModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 | let configFetcher = BTTConfigurationFetcher()
130 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:135:25: warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
133 | }()
134 |
135 | internal static let enabledModeSessionManager : SessionManagerProtocol = {
| |- warning: static property 'enabledModeSessionManager' is not concurrency-safe because non-'Sendable' type 'any SessionManagerProtocol' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'enabledModeSessionManager' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
136 | let configFetcher = BTTConfigurationFetcher()
137 | let configSyncer = BTTStoredConfigSyncer(configRepo: configRepo, logger: logger)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/SessionManager.swift:18:10: note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
16 | #endif
17 |
18 | protocol SessionManagerProtocol {
| `- note: protocol 'SessionManagerProtocol' does not conform to the 'Sendable' protocol
19 | func start(with expiry : Millisecond)
20 | func getSessionData() -> SessionData?
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:150:24: warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
148 | private static let enableAllTrackingLock = NSLock()
149 | private static let appInitializeLock = NSLock()
150 | private static var activeTimers = [BTTimer]()
| |- warning: static property 'activeTimers' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'activeTimers' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'activeTimers' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
151 | #if os(iOS)
152 | private static let matricKitWatchDog = MetricKitWatchDog()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:196:24: warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
194 | }
195 |
196 | private static var _session: Session? = {
| |- warning: static property '_session' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_session' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_session' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
197 | configuration.makeSession()
198 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:251:24: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
249 | }
250 |
251 | private static var logger: Logging = {
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
252 | configuration.makeLogger()
253 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:255:24: warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
253 | }()
254 |
255 | private static var uploader: Uploading = {
| |- warning: static property 'uploader' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'uploader' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'uploader' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
256 | configuration.uploaderConfiguration.makeUploader(
257 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:263:24: warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
261 | }()
262 |
263 | private static var timerFactory: (Page, BTTimer.TimerType, Bool) -> BTTimer = {
| |- warning: static property 'timerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'timerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'timerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
264 | configuration.timerConfiguration.makeTimerFactory(
265 | logger: logger,
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:269:24: warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
267 | }()
268 |
269 | private static var internalTimerFactory: () -> InternalTimer = {
| |- warning: static property 'internalTimerFactory' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'internalTimerFactory' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'internalTimerFactory' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
270 | configuration.internalTimerConfiguration.makeTimerFactory(logger: logger)
271 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:273:24: warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
271 | }()
272 |
273 | private static var shouldCaptureRequests: Bool = {
| |- warning: static property 'shouldCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
274 | sessionData()?.shouldNetworkCapture ?? false
275 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:277:24: warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
275 | }()
276 |
277 | private static var shouldGroupedCaptureRequests: Bool = {
| |- warning: static property 'shouldGroupedCaptureRequests' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shouldGroupedCaptureRequests' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shouldGroupedCaptureRequests' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
278 | sessionData()?.shouldGroupedViewCapture ?? false
279 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:289:24: warning: static property '_initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
287 | /// enable/disable state via the Remote Configuration Updater.
288 | ///
289 | private static var _initialized = false
| |- warning: static property '_initialized' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_initialized' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_initialized' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
290 |
291 | public static var initialized: Bool {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:296:24: warning: static property '_capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
294 | }
295 |
296 | private static var _capturedRequestCollector: CapturedRequestCollecting? = {
| |- warning: static property '_capturedRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_capturedRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_capturedRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
297 | return makeCapturedRequestCollector()
298 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:300:24: warning: static property '_capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
298 | }()
299 |
300 | private static var _capturedGroupedViewRequestCollector: CapturedGroupRequestCollecting? = {
| |- warning: static property '_capturedGroupedViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_capturedGroupedViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property '_capturedGroupedViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
301 | return makeCapturedGroupRequestCollector()
302 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:304:24: warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
302 | }()
303 |
304 | private static var capturedActionsViewRequestCollector: CapturedActionRequestCollector? = {
| |- warning: static property 'capturedActionsViewRequestCollector' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'capturedActionsViewRequestCollector' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'capturedActionsViewRequestCollector' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
305 | return makeCapturedActionRequestCollector() as! CapturedActionRequestCollector
306 | }()
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/BlueTriangle.swift:333:25: warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
331 |
332 | //Cache components
333 | internal static var payloadCache : PayloadCacheProtocol = {
| |- warning: static property 'payloadCache' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'payloadCache' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'payloadCache' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
334 | PayloadCache.init(configuration.cacheMemoryLimit,
335 | expiry: configuration.cacheExpiryDuration)
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportManager.swift:37:33: warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
8 | import Foundation
9 |
10 | final class CrashReportManager: CrashReportManaging {
| `- note: class 'CrashReportManager' does not conform to the 'Sendable' protocol
11 |
12 | private let crashReportPersistence: CrashReportPersisting.Type
:
35 | self.intervalProvider = intervalProvider
36 | self.startupTask = Task.delayed(byTimeInterval: Constants.startupDelay, priority: .utility) { [weak self] in
37 | guard let session = self?.session() else {
| `- warning: capture of 'self' with non-sendable type 'CrashReportManager?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 | return
39 | }
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/CrashReportPersistence.swift:18:24: warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
16 |
17 | struct CrashReportPersistence: CrashReportPersisting {
18 | private static let logger = BTLogger.live
| |- warning: static property 'logger' is not concurrency-safe because non-'Sendable' type 'any Logging' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 |
20 | private static var persistence: Persistence? {
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/Protocols/Logging.swift:10:10: note: protocol 'Logging' does not conform to the 'Sendable' protocol
8 | import Foundation
9 |
10 | protocol Logging {
| `- note: protocol 'Logging' does not conform to the 'Sendable' protocol
11 | var enableDebug: Bool { get set }
12 |
/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/DisableModeSessionManager.swift:99:14: warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
28 | /// - Note: This session manager is used exclusively when `enableAllTracking` is false.
29 | ///
30 | class DisableModeSessionManager : SessionManagerProtocol {
| `- note: class 'DisableModeSessionManager' does not conform to the 'Sendable' protocol
31 |
32 | private var expirationDurationInMS: Millisecond = 30 * 60 * 1000
:
97 | private func updateRemoteConfig(){
98 | queue.async { [weak self] in
99 | self?.updater.update(true) {}
| `- warning: capture of 'self' with non-sendable type 'DisableModeSessionManager?' in a '@Sendable' closure
100 | }
101 | }
Build complete! (10.28s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "blue-triangle",
"name" : "blue-triangle",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "6.0"
},
{
"name" : "macos",
"version" : "10.15"
}
],
"products" : [
{
"name" : "BlueTriangle",
"targets" : [
"BlueTriangle"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "ObjcCompatibilityTests",
"module_type" : "ClangTarget",
"name" : "ObjcCompatibilityTests",
"path" : "Tests/ObjcCompatibilityTests",
"sources" : [
"ObjcCompatibilityTests.m"
],
"target_dependencies" : [
"BlueTriangle"
],
"type" : "test"
},
{
"c99name" : "BlueTriangleTests",
"module_type" : "SwiftTarget",
"name" : "BlueTriangleTests",
"path" : "Tests/BlueTriangleTests",
"sources" : [
"AnyCodableTests.swift",
"App/CollectionViewController.swift",
"App/Extensions/UIColor+Utils.swift",
"App/ImageCell.swift",
"App/Models/Album.swift",
"App/Models/Photo.swift",
"App/Models/SingleSection.swift",
"App/Models/ViewState.swift",
"App/NetworkClientMock.swift",
"BTTConfigurationFetcherTests.swift",
"BTTConfigurationRepoTests.swift",
"BTTConfigurationUpdaterTests.swift",
"BTTimerTests.swift",
"BlueTriangleTests.swift",
"CaptureRateProbabilityTest.swift",
"CaptureTimerManagerTests.swift",
"ContentTypeTests.swift",
"CrashReportManagerTests.swift",
"DeviceTests.swift",
"InitiatorTypeTests.swift",
"Mocks/CaptureTimerManagerMock.swift",
"Mocks/CapturedRequestCollectorMock.swift",
"Mocks/CrashReportPersistenceMock.swift",
"Mocks/LoggerMock.swift",
"Mocks/Mock.swift",
"Mocks/MockBTTConfigurationFetcher.swift",
"Mocks/MockBTTConfigurationRepo.swift",
"Mocks/MockRemoteConfigURL.swift",
"Mocks/PerformanceMonitorMock.swift",
"Mocks/ResourceUsageMock.swift",
"Mocks/SystemLoggerMock.swift",
"Mocks/URLProtocolMock.swift",
"Mocks/UploaderMock.swift",
"NetworkCaptureDelegateTests.swift",
"PersistenceTests.swift",
"RequestCacheTests.swift",
"RequestCollectionTests.swift",
"RequestCollectorTests.swift",
"ResourceUsageTests.swift",
"TimerRequestBuilderTests.swift",
"UploaderTests.swift",
"UtilityTests.swift"
],
"target_dependencies" : [
"BlueTriangle"
],
"type" : "test"
},
{
"c99name" : "BlueTriangle",
"module_type" : "SwiftTarget",
"name" : "BlueTriangle",
"path" : "Sources/BlueTriangle",
"product_memberships" : [
"BlueTriangle"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/BlueTriangle/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"AppEventObserver.swift",
"BTLogger.swift",
"BTSignalCrashReporter.swift",
"BTTimer.swift",
"BlueTriangle.swift",
"BlueTriangleConfiguration.swift",
"ClaritySupport/ClaritySessionConnector.swift",
"Constants.swift",
"CrashReportManager.swift",
"CrashReportPersistence.swift",
"Device.swift",
"DisableModeSessionManager.swift",
"DynamicConfig/BTTConfigurationFetcher.swift",
"DynamicConfig/BTTConfigurationRepo.swift",
"DynamicConfig/BTTConfigurationUpdater.swift",
"DynamicConfig/BTTRemoteConfig.swift",
"DynamicConfig/BTTSavedRemoteConfig.swift",
"DynamicConfig/BTTStoredConfigSyncer.swift",
"DynamicConfig/RemoteConfigAckReporter.swift",
"DynamicConfig/SessionStore.swift",
"Extensions/Array+Vitals.swift",
"Extensions/Bool+Utils.swift",
"Extensions/Bundle+Utils.swift",
"Extensions/Data+Utils.swift",
"Extensions/Date+Utils.swift",
"Extensions/HTTPURLResponse+ContentType.swift",
"Extensions/JSONDecoder+Utils.swift",
"Extensions/NSException+Utils.swift",
"Extensions/NSLocking+Utils.swift",
"Extensions/NSNumber+Utils.swift",
"Extensions/NWPathMonitor+Combine.swift",
"Extensions/NotificationName+Platform.swift",
"Extensions/OperatingSystemVersion+Utils.swift",
"Extensions/Publisher+Retry.swift",
"Extensions/Task+Utils.swift",
"Extensions/TimeInterval+Utils.swift",
"Extensions/URL+ExpressibleByStringLiteral.swift",
"Extensions/URLSession+NetworkCapture.swift",
"Extensions/URLSession+Networking.swift",
"Extensions/URLSession+Publisher.swift",
"Extensions/UserDefault+Utils.swift",
"Identifier.swift",
"InternalTimer.swift",
"MetricKit/CrashReportResponse.swift",
"MetricKit/CrashSignal.swift",
"MetricKit/DignosticWatchDog.swift",
"Millisecond.swift",
"Models/AnyCodable.swift",
"Models/CapturedRequest.swift",
"Models/CrashReport.swift",
"Models/CustomCategories.swift",
"Models/CustomNumbers.swift",
"Models/CustomVariables.swift",
"Models/ErrorReport.swift",
"Models/NativeAppProperties.swift",
"Models/Page.swift",
"Models/PageTimeInterval.swift",
"Models/PerformanceReport.swift",
"Models/PurchaseConfirmation.swift",
"Models/ResourceUsageMeasurement.swift",
"Models/Session.swift",
"Models/TimerRequest.swift",
"NetworkCapture/ActionRequestCollection.swift",
"NetworkCapture/ActionRequestCollector.swift",
"NetworkCapture/BTTimerNetStateAccumulator.swift",
"NetworkCapture/CaptureTimerManager.swift",
"NetworkCapture/CapturedActionRequestCollector.swift",
"NetworkCapture/CapturedGroupRequestCollector.swift",
"NetworkCapture/CapturedRequestBuilder.swift",
"NetworkCapture/CapturedRequestCollector.swift",
"NetworkCapture/GroupRequestCollection.swift",
"NetworkCapture/NetworkCaptureConfiguration.swift",
"NetworkCapture/NetworkCaptureTracker.swift",
"NetworkCapture/NetworkStateMonitor.swift",
"NetworkCapture/NetworkTelephonyHandler.swift",
"NetworkCapture/RequestCollection.swift",
"NetworkCaptureSessionDelegate.swift",
"Offline/Payload.swift",
"Offline/PayloadCache.swift",
"Persistence/File.swift",
"Persistence/Persistence.swift",
"Persistence/PersistenceError.swift",
"Persistence/UserLocation.swift",
"Protocols/CaptureTimerManaging.swift",
"Protocols/CapturedActionRequestCollecting.swift",
"Protocols/CapturedGroupRequestCollecting.swift",
"Protocols/CapturedRequestCollecting.swift",
"Protocols/CrashReportManaging.swift",
"Protocols/CrashReportPersisting.swift",
"Protocols/FileLocation.swift",
"Protocols/Logging.swift",
"Protocols/PerformanceMonitoring.swift",
"Protocols/RequestFailureHandling.swift",
"Protocols/ResourceMeasuring.swift",
"Protocols/SystemLogging.swift",
"Protocols/URLRequestConvertible.swift",
"Protocols/Uploading.swift",
"Request.swift",
"RequestCache.swift",
"RequestFailureHandler.swift",
"SessionManager.swift",
"TimerRequestBuilder.swift",
"Uploader.swift",
"Version.swift",
"Vitals/ANR/ANRPerformanceMonitor.swift",
"Vitals/ANR/ANRTrace/MainThreadStackTraceProvider.swift",
"Vitals/ANR/ANRWatchDog.swift",
"Vitals/ANR/MainThreadObserver.swift",
"Vitals/DispatchSourceTimerPerformanceMonitor.swift",
"Vitals/DisplayLinkPerformanceMonitor.swift",
"Vitals/GroupTracking/BTActionTracker.swift",
"Vitals/GroupTracking/BTGroupTimer.swift",
"Vitals/GroupTracking/BTTimerGroupManager.swift",
"Vitals/Launch/LaunchTimeMonitor.swift",
"Vitals/Launch/LaunchTimeReporter.swift",
"Vitals/Memory/MemoryWarningWatchDog.swift",
"Vitals/PerformanceMonitorBuilder.swift",
"Vitals/ResourceUsage.swift",
"Vitals/RunLoopServices.swift",
"Vitals/ScreenTracker/BTTScreenLifecycleTracker.swift",
"Vitals/ScreenTracker/BTTScreenTracker.swift",
"Vitals/ScreenTracker/BTTWebViewTracker.swift",
"Vitals/ScreenTracker/ViewControllerLifecycleTracker.swift",
"Vitals/ScreenTracker/ViewLifecycleTrackerModifier.swift",
"Vitals/TimerPerformanceMonitor.swift"
],
"target_dependencies" : [
"Backtrace",
"AppEventLogger"
],
"type" : "library"
},
{
"c99name" : "Backtrace",
"module_type" : "ClangTarget",
"name" : "Backtrace",
"path" : "Sources/Backtrace",
"product_memberships" : [
"BlueTriangle"
],
"sources" : [
"backtress_extracter.c"
],
"type" : "library"
},
{
"c99name" : "AppEventLogger",
"module_type" : "ClangTarget",
"name" : "AppEventLogger",
"path" : "Sources/AppEventLogger",
"product_memberships" : [
"BlueTriangle"
],
"sources" : [
"AppNotificationLogger.m",
"NotificationLog.m",
"SignalHandler.m"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
Done.