The Swift Package Index logo.Swift Package Index

Build Information

Failed to build SessionReplaySDK, reference main (4028db), with Swift 6.1 for macOS (SPM) on 23 Feb 2026 04:17:05 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/AlmoutasemNabil/SessionReplaySDK.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/AlmoutasemNabil/SessionReplaySDK
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 4028db0 Add async/completion-based stopSession API
Cloned https://github.com/AlmoutasemNabil/SessionReplaySDK.git
Revision (git rev-parse @):
4028db00fb504452e2e94dc51566a9d26a7b851b
SUCCESS checkout https://github.com/AlmoutasemNabil/SessionReplaySDK.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/AlmoutasemNabil/SessionReplaySDK.git
https://github.com/AlmoutasemNabil/SessionReplaySDK.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "SessionReplaySDK",
  "name" : "SessionReplaySDK",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    }
  ],
  "products" : [
    {
      "name" : "SessionReplaySDK",
      "targets" : [
        "SessionReplaySDK"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SessionReplaySDK",
      "module_type" : "SwiftTarget",
      "name" : "SessionReplaySDK",
      "path" : "Sources/SessionReplaySDK",
      "product_memberships" : [
        "SessionReplaySDK"
      ],
      "sources" : [
        "Core/Models.swift",
        "Core/SessionReplayManager.swift",
        "Integration/SwiftUIIntegration.swift",
        "Integration/UIKitIntegration.swift",
        "Logging/NetworkInterceptor.swift",
        "Logging/SessionLogger.swift",
        "SessionReplaySDK.swift",
        "Upload/SessionUploader.swift",
        "Video/VideoWriter.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/12] Compiling SessionReplaySDK VideoWriter.swift
[4/12] Compiling SessionReplaySDK SessionReplaySDK.swift
[5/12] Compiling SessionReplaySDK SessionUploader.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:152:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SessionUploader' may have shared mutable state; this is an error in the Swift 6 language mode
148 |
149 | /// Main class for uploading session recordings to a backend
150 | public final class SessionUploader {
    |                    `- note: class 'SessionUploader' does not conform to the 'Sendable' protocol
151 |
152 |     public static let shared = SessionUploader()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SessionUploader' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
153 |
154 |     // MARK: - Properties
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:194:19: warning: value 'config' was defined but never used; consider replacing with boolean test
192 |         completion: @escaping (Result<SessionUploadResponse, Error>) -> Void
193 |     ) {
194 |         guard let config = config else {
    |                   `- warning: value 'config' was defined but never used; consider replacing with boolean test
195 |             completion(.failure(SessionUploadError.notConfigured))
196 |             return
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:280:13: warning: capture of 'self' with non-sendable type 'SessionUploader?' in a '@Sendable' closure
148 |
149 | /// Main class for uploading session recordings to a backend
150 | public final class SessionUploader {
    |                    `- note: class 'SessionUploader' does not conform to the 'Sendable' protocol
151 |
152 |     public static let shared = SessionUploader()
    :
278 |
279 |         uploadQueue.async { [weak self] in
280 |             self?.performUpload(
    |             `- warning: capture of 'self' with non-sendable type 'SessionUploader?' in a '@Sendable' closure
281 |                 sessionId: sessionId,
282 |                 videoURL: videoURL,
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:284:25: warning: capture of 'config' with non-sendable type 'SessionUploadConfig' in a '@Sendable' closure
 21 |
 22 | /// Configuration for session uploads
 23 | public struct SessionUploadConfig {
    |               `- note: consider making struct 'SessionUploadConfig' conform to the 'Sendable' protocol
 24 |     /// Base URL for the upload endpoint
 25 |     public var baseURL: URL
    :
282 |                 videoURL: videoURL,
283 |                 jsonURL: jsonURL,
284 |                 config: config,
    |                         `- warning: capture of 'config' with non-sendable type 'SessionUploadConfig' in a '@Sendable' closure
285 |                 completion: completion
286 |             )
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:285:29: warning: capture of 'completion' with non-sendable type '(Result<SessionUploadResponse, any Error>) -> Void' in a '@Sendable' closure
283 |                 jsonURL: jsonURL,
284 |                 config: config,
285 |                 completion: completion
    |                             |- warning: capture of 'completion' with non-sendable type '(Result<SessionUploadResponse, any Error>) -> Void' in a '@Sendable' closure
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
286 |             )
287 |         }
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:293:27: warning: capture of 'self' with non-sendable type 'SessionUploader?' in a '@Sendable' closure
148 |
149 | /// Main class for uploading session recordings to a backend
150 | public final class SessionUploader {
    |                    `- note: class 'SessionUploader' does not conform to the 'Sendable' protocol
151 |
152 |     public static let shared = SessionUploader()
    :
291 |     public func cancelUpload(sessionId: String) {
292 |         uploadQueue.async { [weak self] in
293 |             if let task = self?.activeTasks[sessionId] {
    |                           `- warning: capture of 'self' with non-sendable type 'SessionUploader?' in a '@Sendable' closure
294 |                 task.cancel()
295 |                 self?.activeTasks.removeValue(forKey: sessionId)
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:371:13: warning: capture of 'self' with non-sendable type 'SessionUploader?' in a '@Sendable' closure
148 |
149 | /// Main class for uploading session recordings to a backend
150 | public final class SessionUploader {
    |                    `- note: class 'SessionUploader' does not conform to the 'Sendable' protocol
151 |
152 |     public static let shared = SessionUploader()
    :
369 |         // Create upload task
370 |         let task = urlSession.dataTask(with: request) { [weak self] data, response, error in
371 |             self?.activeTasks.removeValue(forKey: sessionId)
    |             `- warning: capture of 'self' with non-sendable type 'SessionUploader?' in a '@Sendable' closure
372 |
373 |             if let error = error {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:378:25: warning: capture of 'completion' with non-sendable type '(Result<SessionUploadResponse, any Error>) -> Void' in a '@Sendable' closure
376 |                     self?.uploadStatuses[sessionId] = .cancelled
377 |                     DispatchQueue.main.async {
378 |                         completion(.failure(SessionUploadError.uploadCancelled))
    |                         |- warning: capture of 'completion' with non-sendable type '(Result<SessionUploadResponse, any Error>) -> Void' in a '@Sendable' closure
    |                         `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
379 |                     }
380 |                     return
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:384:33: warning: capture of 'config' with non-sendable type 'SessionUploadConfig' in a '@Sendable' closure
 21 |
 22 | /// Configuration for session uploads
 23 | public struct SessionUploadConfig {
    |               `- note: consider making struct 'SessionUploadConfig' conform to the 'Sendable' protocol
 24 |     /// Base URL for the upload endpoint
 25 |     public var baseURL: URL
    :
382 |
383 |                 // Retry logic
384 |                 if retryCount < config.maxRetries {
    |                                 `- warning: capture of 'config' with non-sendable type 'SessionUploadConfig' in a '@Sendable' closure
385 |                     self?.performUpload(
386 |                         sessionId: sessionId,
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:317:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
315 |     ) {
316 |         DispatchQueue.main.async { [weak self] in
317 |             self?.delegate?.uploadDidStart(sessionId: sessionId)
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
318 |         }
319 |
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:445:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
442 |             }
443 |
444 |             DispatchQueue.main.async { [weak self] in
    |                                      `- note: access can happen concurrently
445 |                 self?.delegate?.uploadDidComplete(sessionId: sessionId, response: uploadResponse)
    |                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
446 |                 completion(.success(uploadResponse))
447 |             }
[6/12] Compiling SessionReplaySDK NetworkInterceptor.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:27:13: warning: var 'taskIdKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 25 | // MARK: - Associated Object Keys
 26 |
 27 | private var taskIdKey: UInt8 = 0
    |             |- warning: var 'taskIdKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskIdKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskIdKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 28 | private var taskStartTimeKey: UInt8 = 1
 29 | private var taskRequestKey: UInt8 = 2
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:28:13: warning: var 'taskStartTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 26 |
 27 | private var taskIdKey: UInt8 = 0
 28 | private var taskStartTimeKey: UInt8 = 1
    |             |- warning: var 'taskStartTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskStartTimeKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskStartTimeKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 29 | private var taskRequestKey: UInt8 = 2
 30 | private var taskResponseDataKey: UInt8 = 3
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:29:13: warning: var 'taskRequestKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 27 | private var taskIdKey: UInt8 = 0
 28 | private var taskStartTimeKey: UInt8 = 1
 29 | private var taskRequestKey: UInt8 = 2
    |             |- warning: var 'taskRequestKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskRequestKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskRequestKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 30 | private var taskResponseDataKey: UInt8 = 3
 31 | private var originalDelegateKey: UInt8 = 4
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:30:13: warning: var 'taskResponseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 | private var taskStartTimeKey: UInt8 = 1
 29 | private var taskRequestKey: UInt8 = 2
 30 | private var taskResponseDataKey: UInt8 = 3
    |             |- warning: var 'taskResponseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskResponseDataKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskResponseDataKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 | private var originalDelegateKey: UInt8 = 4
 32 | private var hasInjectedDelegateKey: UInt8 = 5
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:31:13: warning: var 'originalDelegateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 29 | private var taskRequestKey: UInt8 = 2
 30 | private var taskResponseDataKey: UInt8 = 3
 31 | private var originalDelegateKey: UInt8 = 4
    |             |- warning: var 'originalDelegateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'originalDelegateKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'originalDelegateKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 | private var hasInjectedDelegateKey: UInt8 = 5
 33 | private var taskObserverKey: UInt8 = 6
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:32:13: warning: var 'hasInjectedDelegateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 30 | private var taskResponseDataKey: UInt8 = 3
 31 | private var originalDelegateKey: UInt8 = 4
 32 | private var hasInjectedDelegateKey: UInt8 = 5
    |             |- warning: var 'hasInjectedDelegateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'hasInjectedDelegateKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'hasInjectedDelegateKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 33 | private var taskObserverKey: UInt8 = 6
 34 | private var taskCompletedKey: UInt8 = 7
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:33:13: warning: var 'taskObserverKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 31 | private var originalDelegateKey: UInt8 = 4
 32 | private var hasInjectedDelegateKey: UInt8 = 5
 33 | private var taskObserverKey: UInt8 = 6
    |             |- warning: var 'taskObserverKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskObserverKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskObserverKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 | private var taskCompletedKey: UInt8 = 7
 35 |
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:34:13: warning: var 'taskCompletedKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 32 | private var hasInjectedDelegateKey: UInt8 = 5
 33 | private var taskObserverKey: UInt8 = 6
 34 | private var taskCompletedKey: UInt8 = 7
    |             |- warning: var 'taskCompletedKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskCompletedKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskCompletedKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 | // MARK: - Network Interceptor
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:42:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkInterceptor' may have shared mutable state; this is an error in the Swift 6 language mode
 38 | /// Intercepts all network requests using URLSession method swizzling.
 39 | /// Works with ALL URLSession configurations including custom sessions with SSL pinning.
 40 | public final class NetworkInterceptor {
    |                    `- note: class 'NetworkInterceptor' does not conform to the 'Sendable' protocol
 41 |
 42 |     public static let shared = NetworkInterceptor()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkInterceptor' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 43 |
 44 |     private weak var logger: SessionLogger?
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:304:13: warning: var 'accumulatedDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
302 | // MARK: - URLSessionTask Extension for Data Accumulation
303 |
304 | private var accumulatedDataKey: UInt8 = 10
    |             |- warning: var 'accumulatedDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'accumulatedDataKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'accumulatedDataKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
305 |
306 | extension URLSessionTask {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:330:24: warning: static property 'hasSwizzled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
328 | final class URLSessionSwizzler {
329 |
330 |     private static var hasSwizzled = false
    |                        |- warning: static property 'hasSwizzled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'hasSwizzled' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'hasSwizzled' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
331 |     private static let swizzleLock = NSLock()
332 |
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:334:24: warning: static property 'originalResumeIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
332 |
333 |     // Store original implementations
334 |     private static var originalResumeIMP: IMP?
    |                        |- warning: static property 'originalResumeIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalResumeIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalResumeIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
335 |     private static var originalDataTaskRequestCompletionIMP: IMP?
336 |     private static var originalDataTaskURLCompletionIMP: IMP?
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:335:24: warning: static property 'originalDataTaskRequestCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
333 |     // Store original implementations
334 |     private static var originalResumeIMP: IMP?
335 |     private static var originalDataTaskRequestCompletionIMP: IMP?
    |                        |- warning: static property 'originalDataTaskRequestCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalDataTaskRequestCompletionIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalDataTaskRequestCompletionIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
336 |     private static var originalDataTaskURLCompletionIMP: IMP?
337 |     private static var originalUploadTaskDataCompletionIMP: IMP?
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:336:24: warning: static property 'originalDataTaskURLCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
334 |     private static var originalResumeIMP: IMP?
335 |     private static var originalDataTaskRequestCompletionIMP: IMP?
336 |     private static var originalDataTaskURLCompletionIMP: IMP?
    |                        |- warning: static property 'originalDataTaskURLCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalDataTaskURLCompletionIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalDataTaskURLCompletionIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
337 |     private static var originalUploadTaskDataCompletionIMP: IMP?
338 |     private static var originalUploadTaskFileCompletionIMP: IMP?
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:337:24: warning: static property 'originalUploadTaskDataCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
335 |     private static var originalDataTaskRequestCompletionIMP: IMP?
336 |     private static var originalDataTaskURLCompletionIMP: IMP?
337 |     private static var originalUploadTaskDataCompletionIMP: IMP?
    |                        |- warning: static property 'originalUploadTaskDataCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalUploadTaskDataCompletionIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalUploadTaskDataCompletionIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
338 |     private static var originalUploadTaskFileCompletionIMP: IMP?
339 |     private static var originalSessionInitIMP: IMP?
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:338:24: warning: static property 'originalUploadTaskFileCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
336 |     private static var originalDataTaskURLCompletionIMP: IMP?
337 |     private static var originalUploadTaskDataCompletionIMP: IMP?
338 |     private static var originalUploadTaskFileCompletionIMP: IMP?
    |                        |- warning: static property 'originalUploadTaskFileCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalUploadTaskFileCompletionIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalUploadTaskFileCompletionIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
339 |     private static var originalSessionInitIMP: IMP?
340 |
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:339:24: warning: static property 'originalSessionInitIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
337 |     private static var originalUploadTaskDataCompletionIMP: IMP?
338 |     private static var originalUploadTaskFileCompletionIMP: IMP?
339 |     private static var originalSessionInitIMP: IMP?
    |                        |- warning: static property 'originalSessionInitIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalSessionInitIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalSessionInitIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
340 |
341 |     /// Swizzle URLSession methods once. Safe to call multiple times.
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:279:30: warning: capture of 'self' with non-sendable type 'TaskStateObserver?' in a '@Sendable' closure
265 | /// Observes URLSessionTask state changes using KVO to capture completion
266 | /// for delegate-based tasks that don't use completion handlers.
267 | private class TaskStateObserver: NSObject {
    |               `- note: class 'TaskStateObserver' does not conform to the 'Sendable' protocol
268 |     private weak var task: URLSessionTask?
269 |     private weak var interceptor: NetworkInterceptor?
    :
277 |         // Observe task state changes
278 |         observation = task.observe(\.state, options: [.new]) { [weak self] task, change in
279 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'TaskStateObserver?' in a '@Sendable' closure
280 |
281 |             if task.state == .completed {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:413:45: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
411 |
412 |     private static func swizzleDataTaskWithRequestAndCompletion() {
413 |         let selector = #selector(URLSession.dataTask(with:completionHandler:) as (URLSession) -> (URLRequest, @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask)
    |                                             `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
414 |
415 |         guard let originalMethod = class_getInstanceMethod(URLSession.self, selector) else {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:450:45: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
448 |
449 |     private static func swizzleDataTaskWithURLAndCompletion() {
450 |         let selector = #selector(URLSession.dataTask(with:completionHandler:) as (URLSession) -> (URL, @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask)
    |                                             `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
451 |
452 |         guard let originalMethod = class_getInstanceMethod(URLSession.self, selector) else {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:482:45: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
480 |
481 |     private static func swizzleUploadTaskWithDataAndCompletion() {
482 |         let selector = #selector(URLSession.uploadTask(with:from:completionHandler:) as (URLSession) -> (URLRequest, Data?, @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionUploadTask)
    |                                             `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
483 |
484 |         guard let originalMethod = class_getInstanceMethod(URLSession.self, selector) else {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:514:45: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
512 |
513 |     private static func swizzleUploadTaskWithFileAndCompletion() {
514 |         let selector = #selector(URLSession.uploadTask(with:fromFile:completionHandler:) as (URLSession) -> (URLRequest, URL, @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionUploadTask)
    |                                             `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
515 |
516 |         guard let originalMethod = class_getInstanceMethod(URLSession.self, selector) else {
[7/12] Compiling SessionReplaySDK SessionLogger.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/SessionLogger.swift:22:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SessionLogger' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | /// Main class for capturing console logs and network requests during a session.
 20 | public final class SessionLogger {
    |                    `- note: class 'SessionLogger' does not conform to the 'Sendable' protocol
 21 |
 22 |     public static let shared = SessionLogger()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SessionLogger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |
 24 |     // MARK: - Properties
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/SessionLogger.swift:163:30: warning: capture of 'self' with non-sendable type 'SessionLogger?' in a '@Sendable' closure
 18 |
 19 | /// Main class for capturing console logs and network requests during a session.
 20 | public final class SessionLogger {
    |                    `- note: class 'SessionLogger' does not conform to the 'Sendable' protocol
 21 |
 22 |     public static let shared = SessionLogger()
    :
161 |     internal func addLogEntry(message: String, level: LogLevel, source: String) {
162 |         logQueue.async { [weak self] in
163 |             guard let self = self, self.isCapturing else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'SessionLogger?' in a '@Sendable' closure
164 |             guard let startTime = self.sessionStartTime else { return }
165 |
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/SessionLogger.swift:180:24: warning: capture of 'level' with non-sendable type 'LogLevel' in a '@Sendable' closure
178 |                 timestamp: now.timeIntervalSince(startTime) * 1000,
179 |                 absoluteTime: now,
180 |                 level: level,
    |                        `- warning: capture of 'level' with non-sendable type 'LogLevel' in a '@Sendable' closure
181 |                 message: sanitizedMessage,
182 |                 source: source,
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Core/Models.swift:213:13: note: consider making enum 'LogLevel' conform to the 'Sendable' protocol
211 |
212 | /// Severity level for captured logs
213 | public enum LogLevel: String, Codable, Comparable {
    |             `- note: consider making enum 'LogLevel' conform to the 'Sendable' protocol
214 |     case debug = "debug"
215 |     case info = "info"
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/SessionLogger.swift:196:30: warning: capture of 'self' with non-sendable type 'SessionLogger?' in a '@Sendable' closure
 18 |
 19 | /// Main class for capturing console logs and network requests during a session.
 20 | public final class SessionLogger {
    |                    `- note: class 'SessionLogger' does not conform to the 'Sendable' protocol
 21 |
 22 |     public static let shared = SessionLogger()
    :
194 |     internal func addNetworkEntry(_ entry: NetworkEntry) {
195 |         logQueue.async { [weak self] in
196 |             guard let self = self, self.isCapturing else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'SessionLogger?' in a '@Sendable' closure
197 |
198 |             self.networkEntries.append(entry)
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/SessionLogger.swift:198:40: warning: capture of 'entry' with non-sendable type 'NetworkEntry' in a '@Sendable' closure
196 |             guard let self = self, self.isCapturing else { return }
197 |
198 |             self.networkEntries.append(entry)
    |                                        `- warning: capture of 'entry' with non-sendable type 'NetworkEntry' in a '@Sendable' closure
199 |
200 |             if self.networkEntries.count > self.maxNetworkEntries {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Core/Models.swift:260:15: note: consider making struct 'NetworkEntry' conform to the 'Sendable' protocol
258 |
259 | /// A captured network request with response
260 | public struct NetworkEntry: Codable {
    |               `- note: consider making struct 'NetworkEntry' conform to the 'Sendable' protocol
261 |     public let id: String
262 |     public let timestamp: TimeInterval
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/SessionLogger.swift:309:30: warning: capture of 'self' with non-sendable type 'ConsoleCapture?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
281 |
282 | /// Captures stdout/stderr using Unix pipe redirection
283 | private final class ConsoleCapture {
    |                     `- note: class 'ConsoleCapture' does not conform to the 'Sendable' protocol
284 |     private let inputPipe = Pipe()
285 |     private let originalFD: Int32
    :
307 |
308 |         inputPipe.fileHandleForReading.readabilityHandler = { [weak self] handle in
309 |             guard let self = self else { return }
    |                              `- warning: capture of 'self' with non-sendable type 'ConsoleCapture?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
310 |
311 |             let data = handle.availableData
[8/12] Compiling SessionReplaySDK UIKitIntegration.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[9/12] Compiling SessionReplaySDK SwiftUIIntegration.swift
[10/12] Compiling SessionReplaySDK SessionReplayManager.swift
[11/12] Compiling SessionReplaySDK Models.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Core/Models.swift:55:40: error: cannot find type 'UIColor' in scope
 53 |
 54 |     /// Color used to mask sensitive content
 55 |     public var sensitiveViewMaskColor: UIColor = .gray
    |                                        `- error: cannot find type 'UIColor' in scope
 56 |
 57 |     /// Whether to automatically mask text input fields
[12/12] Emitting module SessionReplaySDK
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Core/Models.swift:55:40: error: cannot find type 'UIColor' in scope
 53 |
 54 |     /// Color used to mask sensitive content
 55 |     public var sensitiveViewMaskColor: UIColor = .gray
    |                                        `- error: cannot find type 'UIColor' in scope
 56 |
 57 |     /// Whether to automatically mask text input fields
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:27:13: warning: var 'taskIdKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 25 | // MARK: - Associated Object Keys
 26 |
 27 | private var taskIdKey: UInt8 = 0
    |             |- warning: var 'taskIdKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskIdKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskIdKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 28 | private var taskStartTimeKey: UInt8 = 1
 29 | private var taskRequestKey: UInt8 = 2
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:28:13: warning: var 'taskStartTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 26 |
 27 | private var taskIdKey: UInt8 = 0
 28 | private var taskStartTimeKey: UInt8 = 1
    |             |- warning: var 'taskStartTimeKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskStartTimeKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskStartTimeKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 29 | private var taskRequestKey: UInt8 = 2
 30 | private var taskResponseDataKey: UInt8 = 3
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:29:13: warning: var 'taskRequestKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 27 | private var taskIdKey: UInt8 = 0
 28 | private var taskStartTimeKey: UInt8 = 1
 29 | private var taskRequestKey: UInt8 = 2
    |             |- warning: var 'taskRequestKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskRequestKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskRequestKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 30 | private var taskResponseDataKey: UInt8 = 3
 31 | private var originalDelegateKey: UInt8 = 4
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:30:13: warning: var 'taskResponseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 28 | private var taskStartTimeKey: UInt8 = 1
 29 | private var taskRequestKey: UInt8 = 2
 30 | private var taskResponseDataKey: UInt8 = 3
    |             |- warning: var 'taskResponseDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskResponseDataKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskResponseDataKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 31 | private var originalDelegateKey: UInt8 = 4
 32 | private var hasInjectedDelegateKey: UInt8 = 5
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:31:13: warning: var 'originalDelegateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 29 | private var taskRequestKey: UInt8 = 2
 30 | private var taskResponseDataKey: UInt8 = 3
 31 | private var originalDelegateKey: UInt8 = 4
    |             |- warning: var 'originalDelegateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'originalDelegateKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'originalDelegateKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 32 | private var hasInjectedDelegateKey: UInt8 = 5
 33 | private var taskObserverKey: UInt8 = 6
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:32:13: warning: var 'hasInjectedDelegateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 30 | private var taskResponseDataKey: UInt8 = 3
 31 | private var originalDelegateKey: UInt8 = 4
 32 | private var hasInjectedDelegateKey: UInt8 = 5
    |             |- warning: var 'hasInjectedDelegateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'hasInjectedDelegateKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'hasInjectedDelegateKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 33 | private var taskObserverKey: UInt8 = 6
 34 | private var taskCompletedKey: UInt8 = 7
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:33:13: warning: var 'taskObserverKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 31 | private var originalDelegateKey: UInt8 = 4
 32 | private var hasInjectedDelegateKey: UInt8 = 5
 33 | private var taskObserverKey: UInt8 = 6
    |             |- warning: var 'taskObserverKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskObserverKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskObserverKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 | private var taskCompletedKey: UInt8 = 7
 35 |
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:34:13: warning: var 'taskCompletedKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 32 | private var hasInjectedDelegateKey: UInt8 = 5
 33 | private var taskObserverKey: UInt8 = 6
 34 | private var taskCompletedKey: UInt8 = 7
    |             |- warning: var 'taskCompletedKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'taskCompletedKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'taskCompletedKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 | // MARK: - Network Interceptor
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:42:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkInterceptor' may have shared mutable state; this is an error in the Swift 6 language mode
 38 | /// Intercepts all network requests using URLSession method swizzling.
 39 | /// Works with ALL URLSession configurations including custom sessions with SSL pinning.
 40 | public final class NetworkInterceptor {
    |                    `- note: class 'NetworkInterceptor' does not conform to the 'Sendable' protocol
 41 |
 42 |     public static let shared = NetworkInterceptor()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'NetworkInterceptor' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 43 |
 44 |     private weak var logger: SessionLogger?
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:304:13: warning: var 'accumulatedDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
302 | // MARK: - URLSessionTask Extension for Data Accumulation
303 |
304 | private var accumulatedDataKey: UInt8 = 10
    |             |- warning: var 'accumulatedDataKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |             |- note: convert 'accumulatedDataKey' to a 'let' constant to make 'Sendable' shared state immutable
    |             |- note: add '@MainActor' to make var 'accumulatedDataKey' part of global actor 'MainActor'
    |             `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
305 |
306 | extension URLSessionTask {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:330:24: warning: static property 'hasSwizzled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
328 | final class URLSessionSwizzler {
329 |
330 |     private static var hasSwizzled = false
    |                        |- warning: static property 'hasSwizzled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'hasSwizzled' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'hasSwizzled' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
331 |     private static let swizzleLock = NSLock()
332 |
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:334:24: warning: static property 'originalResumeIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
332 |
333 |     // Store original implementations
334 |     private static var originalResumeIMP: IMP?
    |                        |- warning: static property 'originalResumeIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalResumeIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalResumeIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
335 |     private static var originalDataTaskRequestCompletionIMP: IMP?
336 |     private static var originalDataTaskURLCompletionIMP: IMP?
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:335:24: warning: static property 'originalDataTaskRequestCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
333 |     // Store original implementations
334 |     private static var originalResumeIMP: IMP?
335 |     private static var originalDataTaskRequestCompletionIMP: IMP?
    |                        |- warning: static property 'originalDataTaskRequestCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalDataTaskRequestCompletionIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalDataTaskRequestCompletionIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
336 |     private static var originalDataTaskURLCompletionIMP: IMP?
337 |     private static var originalUploadTaskDataCompletionIMP: IMP?
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:336:24: warning: static property 'originalDataTaskURLCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
334 |     private static var originalResumeIMP: IMP?
335 |     private static var originalDataTaskRequestCompletionIMP: IMP?
336 |     private static var originalDataTaskURLCompletionIMP: IMP?
    |                        |- warning: static property 'originalDataTaskURLCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalDataTaskURLCompletionIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalDataTaskURLCompletionIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
337 |     private static var originalUploadTaskDataCompletionIMP: IMP?
338 |     private static var originalUploadTaskFileCompletionIMP: IMP?
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:337:24: warning: static property 'originalUploadTaskDataCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
335 |     private static var originalDataTaskRequestCompletionIMP: IMP?
336 |     private static var originalDataTaskURLCompletionIMP: IMP?
337 |     private static var originalUploadTaskDataCompletionIMP: IMP?
    |                        |- warning: static property 'originalUploadTaskDataCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalUploadTaskDataCompletionIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalUploadTaskDataCompletionIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
338 |     private static var originalUploadTaskFileCompletionIMP: IMP?
339 |     private static var originalSessionInitIMP: IMP?
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:338:24: warning: static property 'originalUploadTaskFileCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
336 |     private static var originalDataTaskURLCompletionIMP: IMP?
337 |     private static var originalUploadTaskDataCompletionIMP: IMP?
338 |     private static var originalUploadTaskFileCompletionIMP: IMP?
    |                        |- warning: static property 'originalUploadTaskFileCompletionIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalUploadTaskFileCompletionIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalUploadTaskFileCompletionIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
339 |     private static var originalSessionInitIMP: IMP?
340 |
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:339:24: warning: static property 'originalSessionInitIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
337 |     private static var originalUploadTaskDataCompletionIMP: IMP?
338 |     private static var originalUploadTaskFileCompletionIMP: IMP?
339 |     private static var originalSessionInitIMP: IMP?
    |                        |- warning: static property 'originalSessionInitIMP' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'originalSessionInitIMP' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'originalSessionInitIMP' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
340 |
341 |     /// Swizzle URLSession methods once. Safe to call multiple times.
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:413:45: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
411 |
412 |     private static func swizzleDataTaskWithRequestAndCompletion() {
413 |         let selector = #selector(URLSession.dataTask(with:completionHandler:) as (URLSession) -> (URLRequest, @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask)
    |                                             `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
414 |
415 |         guard let originalMethod = class_getInstanceMethod(URLSession.self, selector) else {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:450:45: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
448 |
449 |     private static func swizzleDataTaskWithURLAndCompletion() {
450 |         let selector = #selector(URLSession.dataTask(with:completionHandler:) as (URLSession) -> (URL, @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask)
    |                                             `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
451 |
452 |         guard let originalMethod = class_getInstanceMethod(URLSession.self, selector) else {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:482:45: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
480 |
481 |     private static func swizzleUploadTaskWithDataAndCompletion() {
482 |         let selector = #selector(URLSession.uploadTask(with:from:completionHandler:) as (URLSession) -> (URLRequest, Data?, @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionUploadTask)
    |                                             `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
483 |
484 |         guard let originalMethod = class_getInstanceMethod(URLSession.self, selector) else {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/NetworkInterceptor.swift:514:45: warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
512 |
513 |     private static func swizzleUploadTaskWithFileAndCompletion() {
514 |         let selector = #selector(URLSession.uploadTask(with:fromFile:completionHandler:) as (URLSession) -> (URLRequest, URL, @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionUploadTask)
    |                                             `- warning: converting non-sendable function value to '@Sendable (Data?, URLResponse?, (any Error)?) -> Void' may introduce data races
515 |
516 |         guard let originalMethod = class_getInstanceMethod(URLSession.self, selector) else {
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Logging/SessionLogger.swift:22:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SessionLogger' may have shared mutable state; this is an error in the Swift 6 language mode
 18 |
 19 | /// Main class for capturing console logs and network requests during a session.
 20 | public final class SessionLogger {
    |                    `- note: class 'SessionLogger' does not conform to the 'Sendable' protocol
 21 |
 22 |     public static let shared = SessionLogger()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SessionLogger' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 23 |
 24 |     // MARK: - Properties
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:152:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SessionUploader' may have shared mutable state; this is an error in the Swift 6 language mode
148 |
149 | /// Main class for uploading session recordings to a backend
150 | public final class SessionUploader {
    |                    `- note: class 'SessionUploader' does not conform to the 'Sendable' protocol
151 |
152 |     public static let shared = SessionUploader()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SessionUploader' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
153 |
154 |     // MARK: - Properties
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/11] Compiling SessionReplaySDK SessionReplaySDK.swift
[3/11] Compiling SessionReplaySDK VideoWriter.swift
[4/11] Compiling SessionReplaySDK SessionUploader.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Upload/SessionUploader.swift:194:19: warning: value 'config' was defined but never used; consider replacing with boolean test
192 |         completion: @escaping (Result<SessionUploadResponse, Error>) -> Void
193 |     ) {
194 |         guard let config = config else {
    |                   `- warning: value 'config' was defined but never used; consider replacing with boolean test
195 |             completion(.failure(SessionUploadError.notConfigured))
196 |             return
[5/11] Compiling SessionReplaySDK SessionLogger.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/11] Compiling SessionReplaySDK UIKitIntegration.swift
[7/11] Compiling SessionReplaySDK SessionReplayManager.swift
[8/11] Compiling SessionReplaySDK NetworkInterceptor.swift
[9/11] Compiling SessionReplaySDK SwiftUIIntegration.swift
[10/11] Emitting module SessionReplaySDK
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Core/Models.swift:55:40: error: cannot find type 'UIColor' in scope
 53 |
 54 |     /// Color used to mask sensitive content
 55 |     public var sensitiveViewMaskColor: UIColor = .gray
    |                                        `- error: cannot find type 'UIColor' in scope
 56 |
 57 |     /// Whether to automatically mask text input fields
[11/11] Compiling SessionReplaySDK Models.swift
/Users/admin/builder/spi-builder-workspace/Sources/SessionReplaySDK/Core/Models.swift:55:40: error: cannot find type 'UIColor' in scope
 53 |
 54 |     /// Color used to mask sensitive content
 55 |     public var sensitiveViewMaskColor: UIColor = .gray
    |                                        `- error: cannot find type 'UIColor' in scope
 56 |
 57 |     /// Whether to automatically mask text input fields
BUILD FAILURE 6.1 macosSpm