The Swift Package Index logo.Swift Package Index

Build Information

Successful build of MetricsReporter, reference master (8ebc08), with Swift 6.1 for macOS (SPM) on 3 Mar 2026 18:27:45 UTC.

Swift 6 data race errors: 1

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/rudderlabs/metrics-reporter-ios.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/rudderlabs/metrics-reporter-ios
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 8ebc08d chore(docs): add deprecation notice to README (#59)
Cloned https://github.com/rudderlabs/metrics-reporter-ios.git
Revision (git rev-parse @):
8ebc08d096b394a0239225f2207d6d6a2f009ff9
SUCCESS checkout https://github.com/rudderlabs/metrics-reporter-ios.git at master
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/rudderlabs/metrics-reporter-ios.git
https://github.com/rudderlabs/metrics-reporter-ios.git
{
  "dependencies" : [
    {
      "identity" : "rudder-ios-kit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.4.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/rudderlabs/rudder-ios-kit"
    },
    {
      "identity" : "crash-reporter-ios",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/rudderlabs/crash-reporter-ios"
    }
  ],
  "manifest_display_name" : "MetricsReporter",
  "name" : "MetricsReporter",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "watchos",
      "version" : "7.0"
    }
  ],
  "products" : [
    {
      "name" : "MetricsReporter",
      "targets" : [
        "MetricsReporter"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MetricsReporterTests",
      "module_type" : "SwiftTarget",
      "name" : "MetricsReporterTests",
      "path" : "MetricsReporterTests",
      "product_dependencies" : [
        "RudderKit",
        "RSCrashReporter"
      ],
      "sources" : [
        "CrashReporterTests.swift",
        "DatabaseTests.swift",
        "ErrorOperatorTests.swift",
        "Helpers/JSON.swift",
        "Helpers/MockURLProtocol.swift",
        "Helpers/Utilities.swift",
        "LabelOperatorTests.swift",
        "MetricOperatorTests.swift",
        "MetricsClientTests.swift",
        "MetricsUploaderTests.swift",
        "ModelTests.swift",
        "ObjCTests.swift",
        "ServiceManagerTests.swift",
        "VendorTests.swift"
      ],
      "target_dependencies" : [
        "MetricsReporter"
      ],
      "type" : "test"
    },
    {
      "c99name" : "MetricsReporter",
      "module_type" : "SwiftTarget",
      "name" : "MetricsReporter",
      "path" : "Sources",
      "product_dependencies" : [
        "RudderKit",
        "RSCrashReporter"
      ],
      "product_memberships" : [
        "MetricsReporter"
      ],
      "sources" : [
        "Classes/Constants.swift",
        "Classes/Controller.swift",
        "Classes/Database/Database.swift",
        "Classes/Database/ErrorOperator.swift",
        "Classes/Database/LabelOperator.swift",
        "Classes/Database/MetricOperator.swift",
        "Classes/Helpers/Vendors/Vendor.swift",
        "Classes/MetricsClient.swift",
        "Classes/Models/Configuration.swift",
        "Classes/Models/Metric.swift",
        "Classes/Models/StatsCollection.swift",
        "Classes/Networking/APIClient/API.swift",
        "Classes/Networking/APIClient/ServiceManager.swift",
        "Classes/Networking/ServiceType.swift",
        "Classes/ObjC/ObjCConfiguration.swift",
        "Classes/ObjC/ObjCMetric.swift",
        "Classes/ObjC/ObjCMetricsClient.swift",
        "Classes/Plugins.swift",
        "Classes/Plugins/CrashReporter.swift",
        "Classes/Plugins/MetricsUploader.swift",
        "Classes/Startup.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/83] Write swift-version-2F0A5646E1D333AE.txt
[0/83] Write sources
[2/83] Compiling RSCStorageMigratorV0V1.m
[3/83] Compiling RSCrashReporter RSCrashReporterLastRunInfo.m
[4/83] Compiling RSCNetworkBreadcrumb.m
[5/83] Compiling RSCrashReporter RSCrashReporterFeatureFlag.m
[6/83] Compiling RSCConfigurationBuilder.m
[7/88] Compiling RSCrashReporter RSCrashReporter.m
[8/88] Compiling RSCrashReporter RSCCrashSentry.m
[9/88] Compiling RSCrashReporterUser.m
[10/88] Compiling RSCFileLocations.m
[11/88] Compiling RSCrashReporterThread.m
[12/88] Compiling RSCrashReporterStacktrace.m
[13/88] Compiling RSCrashReporterBreadcrumbs.m
[14/88] Compiling RSCrashReporterStackframe.m
[15/88] Compiling RSCrashReporterNotifier.m
[16/88] Compiling RSCrashReporterSession.m
[17/88] Compiling RSCrashReporterHandledState.m
[18/88] Compiling RSCrashReporterError.m
[19/88] Compiling RSCrashReporterEvent.m
[20/88] Compiling RSCrashReporterDeviceWithState.m
[21/88] Compiling RSCrashReporterDevice.m
[22/88] Compiling RSCrashReporterBreadcrumb.m
[23/88] Compiling RSCrashReporterAppWithState.m
[24/88] Compiling RSCrashReporterApp.m
[25/88] Compiling RSCrashReporterMetadata.m
[26/88] Compiling RSC_KSMach_x86_64.c
[27/88] Compiling RSC_KSMach_x86_32.c
[28/88] Compiling RSC_KSString.c
[29/88] Compiling RSC_KSMach_Arm.c
[30/88] Compiling RSC_KSSignalInfo.c
[31/88] Compiling RSC_KSMach_Arm64.c
[32/88] Compiling RSC_KSLogger.c
[33/88] Compiling RSC_KSJSONCodec.c
[34/88] Compiling RSC_KSFileUtils.c
[35/88] Compiling RSC_KSSysCtl.c
[36/88] Compiling RSC_KSCrashStringConversion.c
[37/88] Compiling RSC_KSBacktrace.c
[38/88] Compiling RSCrashReporter RSCrashReporterSessionTracker.m
[39/88] Compiling RSC_KSCrashSentry_NSException.m
[40/88] Compiling RSC_KSCrashSentry_Signal.c
[41/88] Compiling RSC_KSCrashSentry_MachException.c
[42/88] Compiling RSC_Symbolicate.c
[43/88] Compiling RSC_KSCrashSentry.c
[44/88] Compiling RSC_KSMach.c
[45/88] Compiling RSC_KSFile.c
[46/88] Compiling RSCrashReporterClient.m
[47/88] Compiling RSC_KSCrashNames.c
[48/88] Compiling RSCrashReporter RSCrashReporterSystemState.m
[49/88] Compiling RSCNotificationBreadcrumbs.m
[50/88] Compiling RSC_KSCrashState.m
[51/88] Compiling RSC_KSCrashReport.c
[52/88] Compiling RSC_KSCrashIdentifier.m
[53/88] Compiling RSC_KSCrashC.c
[54/88] Compiling RSC_KSSystemInfo.m
[55/88] Compiling RSC_KSCrashDoctor.m
[56/88] Compiling RSC_RFC3339DateTool.m
[57/88] Compiling RSCrashReporterCollections.m
[58/88] Compiling RSCUtils.m
[59/88] Compiling RSC_KSCrash.m
[60/88] Compiling RSCTelemetry.m
[61/88] Compiling RSCSerialization.m
[62/88] Compiling RSC_KSMachHeaders.c
[63/88] Compiling RSCJSONSerialization.m
[64/88] Compiling RSCInternalErrorReporter.m
[65/88] Compiling RSCGlobals.m
[66/88] Compiling RSCRunContext.m
[67/88] Compiling RSCFeatureFlagStore.m
[68/88] Compiling MRCCanary.m
[69/88] Compiling RSCAppHangDetector.m
[70/88] Compiling RSCrashReporterApiClient.m
[71/88] Compiling RSCSessionUploader.m
[72/88] Compiling RSCEventUploader.m
[73/88] Compiling RSCEventUploadObjectOperation.m
[73/88] Write sources
[75/88] Compiling RSCEventUploadOperation.m
[76/88] Compiling RSCEventUploadKSCrashReportOperation.m
[77/88] Compiling RSCEventUploadFileOperation.m
[78/88] Compiling RSC_KSCrashSentry_CPPException.mm
[79/88] Compiling RSCrashReporterErrorTypes.m
[80/88] Compiling RSCrashReporterEndpointConfiguration.m
[81/88] Compiling RSCConnectivity.m
[82/88] Compiling RSCrashReporterConfiguration.m
[84/88] Emitting module RudderKit
[85/88] Compiling RudderKit Logger.swift
[86/88] Compiling RudderKit RepeatingTimer.swift
[87/88] Compiling RudderKit JSON.swift
[88/88] Compiling RudderKit Data+Ext.swift
[89/108] Emitting module MetricsReporter
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Helpers/Vendors/Vendor.swift:48:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |     }
47 |
48 |     static var current: Vendor = {
   |                |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |             #if os(iOS) || os(tvOS)
50 |             return PhoneVendor()
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:10:1: warning: @frozen has no effect on non-public enums
 8 | import Foundation
 9 |
10 | @frozen enum API {
   | `- warning: @frozen has no effect on non-public enums
11 |     case sdkMetrics(params: String)
12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:14:1: warning: @frozen has no effect on non-public enums
12 | }
13 |
14 | @frozen enum APIClientStatus {
   | `- warning: @frozen has no effect on non-public enums
15 |     case success
16 |     case failure
[90/110] Compiling MetricsReporter MetricOperator.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Helpers/Vendors/Vendor.swift:48:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |     }
47 |
48 |     static var current: Vendor = {
   |                |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |             #if os(iOS) || os(tvOS)
50 |             return PhoneVendor()
[91/110] Compiling MetricsReporter Vendor.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Helpers/Vendors/Vendor.swift:48:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
46 |     }
47 |
48 |     static var current: Vendor = {
   |                |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
   |                |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
   |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 |             #if os(iOS) || os(tvOS)
50 |             return PhoneVendor()
[92/110] Compiling MetricsReporter ServiceType.swift
[93/110] Compiling MetricsReporter ObjCConfiguration.swift
[94/110] Compiling MetricsReporter ObjCMetric.swift
[95/110] Compiling MetricsReporter ObjCMetricsClient.swift
[96/110] Compiling MetricsReporter Constants.swift
[97/110] Compiling MetricsReporter Controller.swift
[98/110] Compiling MetricsReporter Database.swift
[99/110] Compiling MetricsReporter Plugins.swift
[100/110] Compiling MetricsReporter CrashReporter.swift
[101/110] Compiling MetricsReporter MetricsClient.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/MetricsClient.swift:22:16: warning: reference to class property 'logLevel' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
20 |     public init(configuration: Configuration) {
21 |         self.configuration = configuration
22 |         Logger.logLevel = configuration.logLevel
   |                `- warning: reference to class property 'logLevel' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
23 |         database = Database(database: Database.openDatabase())
24 |         platformStartup()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/rudder-ios-kit/Sources/Classes/Logger.swift:38:23: note: class property declared here
36 |
37 | public class Logger {
38 |     public static var logLevel: LogLevel = .error
   |                       `- note: class property declared here
39 |
40 |     public static func logDebug(_ message: String, function: String? = #function, line: Int? = #line) {
[102/110] Compiling MetricsReporter Configuration.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/MetricsClient.swift:22:16: warning: reference to class property 'logLevel' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
20 |     public init(configuration: Configuration) {
21 |         self.configuration = configuration
22 |         Logger.logLevel = configuration.logLevel
   |                `- warning: reference to class property 'logLevel' is not concurrency-safe because it involves shared mutable state; this is an error in the Swift 6 language mode
23 |         database = Database(database: Database.openDatabase())
24 |         platformStartup()
/Users/admin/builder/spi-builder-workspace/.build/checkouts/rudder-ios-kit/Sources/Classes/Logger.swift:38:23: note: class property declared here
36 |
37 | public class Logger {
38 |     public static var logLevel: LogLevel = .error
   |                       `- note: class property declared here
39 |
40 |     public static func logDebug(_ message: String, function: String? = #function, line: Int? = #line) {
[103/110] Compiling MetricsReporter Metric.swift
[104/110] Compiling MetricsReporter StatsCollection.swift
[105/110] Compiling MetricsReporter API.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:10:1: warning: @frozen has no effect on non-public enums
 8 | import Foundation
 9 |
10 | @frozen enum API {
   | `- warning: @frozen has no effect on non-public enums
11 |     case sdkMetrics(params: String)
12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:14:1: warning: @frozen has no effect on non-public enums
12 | }
13 |
14 | @frozen enum APIClientStatus {
   | `- warning: @frozen has no effect on non-public enums
15 |     case success
16 |     case failure
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/ServiceManager.swift:55:17: warning: capture of 'completion' with non-sendable type 'Handler<T>' (aka '(HandlerResult<T, NSError>) -> ()') in a '@Sendable' closure
 53 |         let dataTask = urlSession.dataTask(with: request, completionHandler: { (data, response, error) in
 54 |             if error != nil {
 55 |                 completion(.failure(NSError(code: .SERVER_ERROR)))
    |                 |- warning: capture of 'completion' with non-sendable type 'Handler<T>' (aka '(HandlerResult<T, NSError>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 56 |                 return
 57 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/ServiceManager.swift:68:37: warning: capture of 'self' with non-sendable type 'ServiceManager' in a '@Sendable' closure
 23 | }
 24 |
 25 | struct ServiceManager: ServiceType {
    |        `- note: consider making struct 'ServiceManager' conform to the 'Sendable' protocol
 26 |     private let urlSession: URLSession
 27 |     private let configuration: Configuration
    :
 66 |                     }
 67 |                 default:
 68 |                     let errorCode = handleCustomError(data: data ?? Data())
    |                                     `- warning: capture of 'self' with non-sendable type 'ServiceManager' in a '@Sendable' closure
 69 |                     completion(.failure(NSError(code: errorCode)))
 70 |                 }
[106/110] Compiling MetricsReporter ServiceManager.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:10:1: warning: @frozen has no effect on non-public enums
 8 | import Foundation
 9 |
10 | @frozen enum API {
   | `- warning: @frozen has no effect on non-public enums
11 |     case sdkMetrics(params: String)
12 | }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/API.swift:14:1: warning: @frozen has no effect on non-public enums
12 | }
13 |
14 | @frozen enum APIClientStatus {
   | `- warning: @frozen has no effect on non-public enums
15 |     case success
16 |     case failure
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/ServiceManager.swift:55:17: warning: capture of 'completion' with non-sendable type 'Handler<T>' (aka '(HandlerResult<T, NSError>) -> ()') in a '@Sendable' closure
 53 |         let dataTask = urlSession.dataTask(with: request, completionHandler: { (data, response, error) in
 54 |             if error != nil {
 55 |                 completion(.failure(NSError(code: .SERVER_ERROR)))
    |                 |- warning: capture of 'completion' with non-sendable type 'Handler<T>' (aka '(HandlerResult<T, NSError>) -> ()') in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 56 |                 return
 57 |             }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Networking/APIClient/ServiceManager.swift:68:37: warning: capture of 'self' with non-sendable type 'ServiceManager' in a '@Sendable' closure
 23 | }
 24 |
 25 | struct ServiceManager: ServiceType {
    |        `- note: consider making struct 'ServiceManager' conform to the 'Sendable' protocol
 26 |     private let urlSession: URLSession
 27 |     private let configuration: Configuration
    :
 66 |                     }
 67 |                 default:
 68 |                     let errorCode = handleCustomError(data: data ?? Data())
    |                                     `- warning: capture of 'self' with non-sendable type 'ServiceManager' in a '@Sendable' closure
 69 |                     completion(.failure(NSError(code: errorCode)))
 70 |                 }
[107/110] Compiling MetricsReporter ErrorOperator.swift
[108/110] Compiling MetricsReporter LabelOperator.swift
[109/110] Compiling MetricsReporter MetricsUploader.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:50:34: warning: capture of 'database' with non-sendable type 'any DatabaseOperations' in a '@Sendable' closure
 48 |             guard let self = self else { return }
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
    |                                  `- warning: capture of 'database' with non-sendable type 'any DatabaseOperations' in a '@Sendable' closure
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
 52 |                     self.flushTimer?.suspend()
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Database/Database.swift:64:10: note: protocol 'DatabaseOperations' does not conform to the 'Sendable' protocol
 62 | }
 63 |
 64 | protocol DatabaseOperations {
    |          `- note: protocol 'DatabaseOperations' does not conform to the 'Sendable' protocol
 65 |     @discardableResult func saveMetric<M: Metric>(_ metric: M) -> MetricEntity?
 66 |     func fetchMetrics(from valueFrom: Int, to valueTo: Int) -> MetricList
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:35: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                   `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Models/Configuration.swift:11:15: note: consider making struct 'Configuration' conform to the 'Sendable' protocol
 9 | import RudderKit
10 |
11 | public struct Configuration {
   |               `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
12 |     let logLevel: LogLevel
13 |     let writeKey: String
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:52:21: warning: capture of 'self' with non-sendable type 'MetricsUploader' in a '@Sendable' closure
 10 |
 11 |
 12 | class MetricsUploader: Plugin {
    |       `- note: class 'MetricsUploader' does not conform to the 'Sendable' protocol
 13 |     weak var metricsClient: MetricsClient? {
 14 |         didSet {
    :
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
 52 |                     self.flushTimer?.suspend()
    |                     `- warning: capture of 'self' with non-sendable type 'MetricsUploader' in a '@Sendable' closure
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:85: warning: implicit capture of 'configuration' requires that 'Configuration' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                                                                     `- warning: implicit capture of 'configuration' requires that 'Configuration' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Models/Configuration.swift:11:15: note: consider making struct 'Configuration' conform to the 'Sendable' protocol
 9 | import RudderKit
10 |
11 | public struct Configuration {
   |               `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
12 |     let logLevel: LogLevel
13 |     let writeKey: String
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:71: warning: reference to captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                                                       `- warning: reference to captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:55:25: warning: capture of 'self' with non-sendable type 'MetricsUploader' in an isolated closure; this is an error in the Swift 6 language mode
 10 |
 11 |
 12 | class MetricsUploader: Plugin {
    |       `- note: class 'MetricsUploader' does not conform to the 'Sendable' protocol
 13 |     weak var metricsClient: MetricsClient? {
 14 |         didSet {
    :
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
 55 |                         self.flushTimer?.resume()
    |                         `- warning: capture of 'self' with non-sendable type 'MetricsUploader' in an isolated closure; this is an error in the Swift 6 language mode
 56 |                     }
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:54:25: warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
    |                         `- warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 55 |                         self.flushTimer?.resume()
 56 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:58:21: warning: mutation of captured var 'sleepCount' in concurrently-executing code
 56 |                     }
 57 |                 } else {
 58 |                     sleepCount += 1
    |                     `- warning: mutation of captured var 'sleepCount' in concurrently-executing code
 59 |                 }
 60 |             }
[110/110] Compiling MetricsReporter Startup.swift
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:50:34: warning: capture of 'database' with non-sendable type 'any DatabaseOperations' in a '@Sendable' closure
 48 |             guard let self = self else { return }
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
    |                                  `- warning: capture of 'database' with non-sendable type 'any DatabaseOperations' in a '@Sendable' closure
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
 52 |                     self.flushTimer?.suspend()
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Database/Database.swift:64:10: note: protocol 'DatabaseOperations' does not conform to the 'Sendable' protocol
 62 | }
 63 |
 64 | protocol DatabaseOperations {
    |          `- note: protocol 'DatabaseOperations' does not conform to the 'Sendable' protocol
 65 |     @discardableResult func saveMetric<M: Metric>(_ metric: M) -> MetricEntity?
 66 |     func fetchMetrics(from valueFrom: Int, to valueTo: Int) -> MetricList
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:35: warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                   `- warning: capture of 'configuration' with non-sendable type 'Configuration' in a '@Sendable' closure
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Models/Configuration.swift:11:15: note: consider making struct 'Configuration' conform to the 'Sendable' protocol
 9 | import RudderKit
10 |
11 | public struct Configuration {
   |               `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
12 |     let logLevel: LogLevel
13 |     let writeKey: String
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:52:21: warning: capture of 'self' with non-sendable type 'MetricsUploader' in a '@Sendable' closure
 10 |
 11 |
 12 | class MetricsUploader: Plugin {
    |       `- note: class 'MetricsUploader' does not conform to the 'Sendable' protocol
 13 |     weak var metricsClient: MetricsClient? {
 14 |         didSet {
    :
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
 52 |                     self.flushTimer?.suspend()
    |                     `- warning: capture of 'self' with non-sendable type 'MetricsUploader' in a '@Sendable' closure
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:85: warning: implicit capture of 'configuration' requires that 'Configuration' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                                                                     `- warning: implicit capture of 'configuration' requires that 'Configuration' conforms to 'Sendable'; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Models/Configuration.swift:11:15: note: consider making struct 'Configuration' conform to the 'Sendable' protocol
 9 | import RudderKit
10 |
11 | public struct Configuration {
   |               `- note: consider making struct 'Configuration' conform to the 'Sendable' protocol
12 |     let logLevel: LogLevel
13 |     let writeKey: String
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:51:71: warning: reference to captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 49 |             self.syncQueue.async {
 50 |                 let errorCount = database.getErrorsCount()
 51 |                 if (errorCount >= configuration.dbCountThreshold) || (sleepCount >= configuration.flushInterval) {
    |                                                                       `- warning: reference to captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:55:25: warning: capture of 'self' with non-sendable type 'MetricsUploader' in an isolated closure; this is an error in the Swift 6 language mode
 10 |
 11 |
 12 | class MetricsUploader: Plugin {
    |       `- note: class 'MetricsUploader' does not conform to the 'Sendable' protocol
 13 |     weak var metricsClient: MetricsClient? {
 14 |         didSet {
    :
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
 55 |                         self.flushTimer?.resume()
    |                         `- warning: capture of 'self' with non-sendable type 'MetricsUploader' in an isolated closure; this is an error in the Swift 6 language mode
 56 |                     }
 57 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:54:25: warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 52 |                     self.flushTimer?.suspend()
 53 |                     self.flush(from: Constants.Config.START_FROM, to: configuration.maxMetricsInBatch) {
 54 |                         sleepCount = 0
    |                         `- warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
 55 |                         self.flushTimer?.resume()
 56 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/Classes/Plugins/MetricsUploader.swift:58:21: warning: mutation of captured var 'sleepCount' in concurrently-executing code
 56 |                     }
 57 |                 } else {
 58 |                     sleepCount += 1
    |                     `- warning: mutation of captured var 'sleepCount' in concurrently-executing code
 59 |                 }
 60 |             }
Build complete! (11.94s)
Fetching https://github.com/rudderlabs/crash-reporter-ios
Fetching https://github.com/rudderlabs/rudder-ios-kit
[1/347] Fetching rudder-ios-kit
[147/33571] Fetching rudder-ios-kit, crash-reporter-ios
Fetched https://github.com/rudderlabs/crash-reporter-ios from cache (1.73s)
Fetched https://github.com/rudderlabs/rudder-ios-kit from cache (1.73s)
Computing version for https://github.com/rudderlabs/crash-reporter-ios
Computed https://github.com/rudderlabs/crash-reporter-ios at 1.0.1 (2.36s)
Computing version for https://github.com/rudderlabs/rudder-ios-kit
Computed https://github.com/rudderlabs/rudder-ios-kit at 1.4.0 (0.61s)
Creating working copy for https://github.com/rudderlabs/rudder-ios-kit
Working copy of https://github.com/rudderlabs/rudder-ios-kit resolved at 1.4.0
Creating working copy for https://github.com/rudderlabs/crash-reporter-ios
Working copy of https://github.com/rudderlabs/crash-reporter-ios resolved at 1.0.1
Build complete.
{
  "dependencies" : [
    {
      "identity" : "rudder-ios-kit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.4.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/rudderlabs/rudder-ios-kit"
    },
    {
      "identity" : "crash-reporter-ios",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.1",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/rudderlabs/crash-reporter-ios"
    }
  ],
  "manifest_display_name" : "MetricsReporter",
  "name" : "MetricsReporter",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "11.0"
    },
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "watchos",
      "version" : "7.0"
    }
  ],
  "products" : [
    {
      "name" : "MetricsReporter",
      "targets" : [
        "MetricsReporter"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MetricsReporterTests",
      "module_type" : "SwiftTarget",
      "name" : "MetricsReporterTests",
      "path" : "MetricsReporterTests",
      "product_dependencies" : [
        "RudderKit",
        "RSCrashReporter"
      ],
      "sources" : [
        "CrashReporterTests.swift",
        "DatabaseTests.swift",
        "ErrorOperatorTests.swift",
        "Helpers/JSON.swift",
        "Helpers/MockURLProtocol.swift",
        "Helpers/Utilities.swift",
        "LabelOperatorTests.swift",
        "MetricOperatorTests.swift",
        "MetricsClientTests.swift",
        "MetricsUploaderTests.swift",
        "ModelTests.swift",
        "ObjCTests.swift",
        "ServiceManagerTests.swift",
        "VendorTests.swift"
      ],
      "target_dependencies" : [
        "MetricsReporter"
      ],
      "type" : "test"
    },
    {
      "c99name" : "MetricsReporter",
      "module_type" : "SwiftTarget",
      "name" : "MetricsReporter",
      "path" : "Sources",
      "product_dependencies" : [
        "RudderKit",
        "RSCrashReporter"
      ],
      "product_memberships" : [
        "MetricsReporter"
      ],
      "sources" : [
        "Classes/Constants.swift",
        "Classes/Controller.swift",
        "Classes/Database/Database.swift",
        "Classes/Database/ErrorOperator.swift",
        "Classes/Database/LabelOperator.swift",
        "Classes/Database/MetricOperator.swift",
        "Classes/Helpers/Vendors/Vendor.swift",
        "Classes/MetricsClient.swift",
        "Classes/Models/Configuration.swift",
        "Classes/Models/Metric.swift",
        "Classes/Models/StatsCollection.swift",
        "Classes/Networking/APIClient/API.swift",
        "Classes/Networking/APIClient/ServiceManager.swift",
        "Classes/Networking/ServiceType.swift",
        "Classes/ObjC/ObjCConfiguration.swift",
        "Classes/ObjC/ObjCMetric.swift",
        "Classes/ObjC/ObjCMetricsClient.swift",
        "Classes/Plugins.swift",
        "Classes/Plugins/CrashReporter.swift",
        "Classes/Plugins/MetricsUploader.swift",
        "Classes/Startup.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Done.