Build Information
Successful build of MetricsReporter, reference v2.0.0 (e307fa
), with Swift 6.0 for macOS (SPM) on 3 Dec 2024 05:28:05 UTC.
Swift 6 data race errors: 1
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.1.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.58.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/rudderlabs/metrics-reporter-ios.git
Reference: v2.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/rudderlabs/metrics-reporter-ios
* tag v2.0.0 -> FETCH_HEAD
HEAD is now at e307fa3 Merge pull request #48 from rudderlabs/release/2.0.0
Cloned https://github.com/rudderlabs/metrics-reporter-ios.git
Revision (git rev-parse @):
e307fa37c6c2d2cccf787d73b5b4b5bc3f650435
SUCCESS checkout https://github.com/rudderlabs/metrics-reporter-ios.git at v2.0.0
Fetching https://github.com/rudderlabs/crash-reporter-ios
Fetching https://github.com/rudderlabs/rudder-ios-kit
[1/248] Fetching rudder-ios-kit
[150/33370] Fetching rudder-ios-kit, crash-reporter-ios
Fetched https://github.com/rudderlabs/rudder-ios-kit from cache (1.80s)
Fetched https://github.com/rudderlabs/crash-reporter-ios from cache (1.80s)
Computing version for https://github.com/rudderlabs/crash-reporter-ios
Computed https://github.com/rudderlabs/crash-reporter-ios at 1.0.1 (0.53s)
Computing version for https://github.com/rudderlabs/rudder-ios-kit
Computed https://github.com/rudderlabs/rudder-ios-kit at 1.4.0 (0.51s)
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
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
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"dependencies": [
{
"identity": "metrics-reporter-ios",
"name": "MetricsReporter",
"url": "https://github.com/rudderlabs/metrics-reporter-ios.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/metrics-reporter-ios",
"dependencies": [
{
"identity": "rudder-ios-kit",
"name": "RudderKit",
"url": "https://github.com/rudderlabs/rudder-ios-kit",
"version": "1.4.0",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/rudder-ios-kit",
"dependencies": [
]
},
{
"identity": "crash-reporter-ios",
"name": "RSCrashReporter",
"url": "https://github.com/rudderlabs/crash-reporter-ios",
"version": "1.0.1",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/crash-reporter-ios",
"dependencies": [
]
}
]
}
]
}
Fetching https://github.com/rudderlabs/metrics-reporter-ios.git
[1/1984] Fetching metrics-reporter-ios
Fetched https://github.com/rudderlabs/metrics-reporter-ios.git from cache (1.10s)
Fetching https://github.com/rudderlabs/crash-reporter-ios from cache
Fetching https://github.com/rudderlabs/rudder-ios-kit from cache
Fetched https://github.com/rudderlabs/rudder-ios-kit from cache (0.53s)
Fetched https://github.com/rudderlabs/crash-reporter-ios from cache (0.53s)
Computing version for https://github.com/rudderlabs/crash-reporter-ios
Computed https://github.com/rudderlabs/crash-reporter-ios at 1.0.1 (0.02s)
Computing version for https://github.com/rudderlabs/rudder-ios-kit
Computed https://github.com/rudderlabs/rudder-ios-kit at 1.4.0 (0.02s)
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
Creating working copy for https://github.com/rudderlabs/metrics-reporter-ios.git
Working copy of https://github.com/rudderlabs/metrics-reporter-ios.git resolved at v2.0.0 (e307fa3)
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
warning: '.resolve-product-dependencies': dependency 'metrics-reporter-ios' is not used by any target
Found 2 product dependencies
- RudderKit
- RSCrashReporter
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
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.1.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 sources
[1/83] Write swift-version--7754E27361AE5C74.txt
[2/83] Compiling RSCrashReporter RSCCrashSentry.m
[3/83] Compiling RSCFileLocations.m
[3/83] Compiling RSCrashReporter RSCrashReporter.m
[3/83] Compiling RSCrashReporter RSCrashReporterLastRunInfo.m
[6/83] Compiling RSCrashReporter RSCrashReporterFeatureFlag.m
[7/88] Compiling RSCrashReporterStacktrace.m
[8/88] Compiling RSCStorageMigratorV0V1.m
[9/88] Compiling RSCrashReporterSession.m
[10/88] Compiling RSCrashReporterThread.m
[11/88] Compiling RSCrashReporterStackframe.m
[12/88] Compiling RSCrashReporterNotifier.m
[13/88] Compiling RSCrashReporterHandledState.m
[14/88] Compiling RSCrashReporterUser.m
[15/88] Compiling RSCrashReporterDevice.m
[16/88] Compiling RSCrashReporterError.m
[17/88] Compiling RSCrashReporterDeviceWithState.m
[18/88] Compiling RSCrashReporterBreadcrumb.m
[19/88] Compiling RSCrashReporterApp.m
[20/88] Compiling RSCrashReporterAppWithState.m
[21/88] Compiling RSCrashReporterEvent.m
[22/88] Compiling RSC_KSMach_x86_64.c
[23/88] Compiling RSC_KSMach_x86_32.c
[24/88] Compiling RSC_KSMach_Arm.c
[25/88] Compiling RSCrashReporterMetadata.m
[26/88] Compiling RSC_KSString.c
[27/88] Compiling RSC_KSSignalInfo.c
[28/88] Compiling RSC_KSJSONCodec.c
[29/88] Compiling RSC_KSMach_Arm64.c
[30/88] Compiling RSC_KSFileUtils.c
[31/88] Compiling RSC_KSCrashStringConversion.c
[32/88] Compiling RSC_KSBacktrace.c
[33/88] Compiling RSC_KSCrashSentry_NSException.m
[34/88] Compiling RSC_KSCrashSentry_Signal.c
[35/88] Compiling RSC_KSCrashSentry_MachException.c
[36/88] Compiling RSC_KSSysCtl.c
[37/88] Compiling RSC_KSCrashSentry.c
[38/88] Compiling RSC_KSFile.c
[39/88] Compiling RSC_Symbolicate.c
[40/88] Compiling RSCrashReporter RSCrashReporterSessionTracker.m
[41/88] Compiling RSC_KSLogger.c
[42/88] Compiling RSCrashReporter RSCrashReporterSystemState.m
[43/88] Compiling RSC_KSCrashReport.c
[44/88] Compiling RSC_KSCrashState.m
[45/88] Compiling RSC_KSCrashNames.c
[46/88] Compiling RSC_KSMach.c
[47/88] Compiling RSC_KSCrashC.c
[48/88] Compiling RSC_KSSystemInfo.m
[49/88] Compiling RSC_KSCrashIdentifier.m
[50/88] Compiling RSC_KSCrashDoctor.m
[51/88] Compiling RSC_KSMachHeaders.c
[52/88] Compiling RSCrashReporterCollections.m
[53/88] Compiling RSC_RFC3339DateTool.m
[54/88] Compiling RSC_KSCrash.m
[55/88] Compiling RSCUtils.m
[56/88] Compiling RSCSerialization.m
[57/88] Compiling RSCTelemetry.m
[58/88] Compiling RSCJSONSerialization.m
[59/88] Compiling RSCGlobals.m
[60/88] Compiling RSCInternalErrorReporter.m
[61/88] Compiling RSCFeatureFlagStore.m
[62/88] Compiling RSCRunContext.m
[63/88] Compiling RSCAppHangDetector.m
[64/88] Compiling MRCCanary.m
[65/88] Compiling RSC_KSCrashSentry_CPPException.mm
[66/88] Compiling RSCrashReporterApiClient.m
[67/88] Compiling RSCSessionUploader.m
[68/88] Compiling RSCEventUploader.m
[69/88] Compiling RSCEventUploadObjectOperation.m
[70/88] Compiling RSCEventUploadOperation.m
[71/88] Compiling RSCEventUploadFileOperation.m
[72/88] Compiling RSCEventUploadKSCrashReportOperation.m
[73/88] Compiling RSCrashReporterErrorTypes.m
[73/88] Write sources
[75/88] Compiling RSCrashReporterEndpointConfiguration.m
[76/88] Compiling RSCConfigurationBuilder.m
[77/88] Compiling RSCrashReporterConfiguration.m
[78/88] Compiling RSCNetworkBreadcrumb.m
[79/88] Compiling RSCrashReporterBreadcrumbs.m
[80/88] Compiling RSCConnectivity.m
[81/88] Compiling RSCNotificationBreadcrumbs.m
[82/88] Compiling RSCrashReporterClient.m
[84/88] Compiling RudderKit JSON.swift
[85/88] Compiling RudderKit RepeatingTimer.swift
[86/88] Compiling RudderKit Logger.swift
[87/88] Emitting module RudderKit
[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: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
| `- 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 ErrorOperator.swift
[91/110] Compiling MetricsReporter LabelOperator.swift
[92/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: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | #if os(iOS) || os(tvOS)
50 | return PhoneVendor()
[93/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: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | #if os(iOS) || os(tvOS)
50 | return PhoneVendor()
[94/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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
| `- 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
69 | completion(.failure(NSError(code: errorCode)))
70 | }
[95/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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
| `- 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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
69 | completion(.failure(NSError(code: errorCode)))
70 | }
[96/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) {
[97/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) {
[98/110] Compiling MetricsReporter Plugins.swift
[99/110] Compiling MetricsReporter CrashReporter.swift
[100/110] Compiling MetricsReporter Constants.swift
[101/110] Compiling MetricsReporter Controller.swift
[102/110] Compiling MetricsReporter Database.swift
[103/110] Compiling MetricsReporter ServiceType.swift
[104/110] Compiling MetricsReporter ObjCConfiguration.swift
[105/110] Compiling MetricsReporter Metric.swift
[106/110] Compiling MetricsReporter StatsCollection.swift
[107/110] Compiling MetricsReporter ObjCMetric.swift
[108/110] Compiling MetricsReporter ObjCMetricsClient.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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; 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: capture of 'configuration' with non-sendable type 'Configuration' in a `@Sendable` closure; 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:52:21: warning: capture of 'self' with non-sendable type 'MetricsUploader' in a `@Sendable` 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 {
:
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
56 | }
57 | } else {
58 | sleepCount += 1
| `- warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
59 | }
60 | }
/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: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | #if os(iOS) || os(tvOS)
50 | return PhoneVendor()
[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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
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; 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: capture of 'configuration' with non-sendable type 'Configuration' in a `@Sendable` closure; 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:52:21: warning: capture of 'self' with non-sendable type 'MetricsUploader' in a `@Sendable` 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 {
:
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; this is an error in the Swift 6 language mode
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; this is an error in the Swift 6 language mode
56 | }
57 | } else {
58 | sleepCount += 1
| `- warning: mutation of captured var 'sleepCount' in concurrently-executing code; this is an error in the Swift 6 language mode
59 | }
60 | }
/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: annotate 'current' with '@MainActor' if property should only be accessed from the main actor
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
49 | #if os(iOS) || os(tvOS)
50 | return PhoneVendor()
Build complete! (11.77s)
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.