Build Information
Successful build of SplitThin, reference 1.0.0 (bfdbec), with Swift 6.1 for macOS (SPM) on 20 Jul 2026 00:03:53 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/splitio/ios-thin-client.git
Reference: 1.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/splitio/ios-thin-client
* tag 1.0.0 -> FETCH_HEAD
HEAD is now at bfdbec0 Release 1.0.0 (#110)
Submodule path 'ios-client': checked out '4c6b1034f7044a3bf272fea4f607a6f51182d1b8'
Submodule 'ios-client' (https://github.com/splitio/ios-client) registered for path 'ios-client'
Cloning into '/Users/admin/builder/spi-builder-workspace/ios-client'...
Cloned https://github.com/splitio/ios-thin-client.git
Revision (git rev-parse @):
bfdbec06c9dc7b4465bde352358b8a2743c88e7f
SUCCESS checkout https://github.com/splitio/ios-thin-client.git at 1.0.0
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/splitio/ios-thin-client.git
https://github.com/splitio/ios-thin-client.git
{
"dependencies" : [
{
"identity" : "ios-client",
"requirement" : {
"revision" : [
"e256f22a7c98af2643ffd03cc60a2b24cf90524f"
]
},
"type" : "sourceControl",
"url" : "https://github.com/splitio/ios-client.git"
}
],
"manifest_display_name" : "SplitThin",
"name" : "SplitThin",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "10.15"
}
],
"products" : [
{
"name" : "SplitThin",
"targets" : [
"SplitThin"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SplitThinTests",
"module_type" : "SwiftTarget",
"name" : "SplitThinTests",
"path" : "SplitThinTests",
"product_dependencies" : [
"SplitCommons"
],
"sources" : [
"Api/AttributeSanitizerTests.swift",
"Api/Mocks/EventsPeriodicSchedulerMock.swift",
"Api/Mocks/EventsTrackerMock.swift",
"Api/Mocks/SyncManagerMock.swift",
"Api/Mocks/TrackerMock.swift",
"Api/Mocks/TreatmentsManagerMock.swift",
"Api/SplitClientConfigTests.swift",
"Api/SplitClientTests.swift",
"Api/SplitFactoryBuilderTests.swift",
"Api/SplitFactoryTests.swift",
"Api/SplitManagerTests.swift",
"Api/TargetTests.swift",
"Common/DynamicCodableTests.swift",
"Common/VersionTest.swift",
"E2E/AuthE2ETest.swift",
"E2E/EvaluationResultE2ETest.swift",
"E2E/EventsE2ETest.swift",
"E2E/FallbackTreatmentsE2ETest.swift",
"E2E/FetchCoordinatorE2ETest.swift",
"E2E/FlagSetsE2ETest.swift",
"E2E/ManagerE2ETest.swift",
"E2E/PersistenceE2ETest.swift",
"E2E/PollingE2ETest.swift",
"E2E/ReadyTimeoutE2ETest.swift",
"E2E/StreamingDataRaceTest.swift",
"E2E/StreamingE2ETest.swift",
"E2E/TelemetryE2ETest.swift",
"E2E/TrackingE2ETest.swift",
"Engine/EvaluationRepositoryTests.swift",
"Engine/FallbackTreatments/FallbackSanitizerTests.swift",
"Engine/FallbackTreatments/FallbackTreatmentTests.swift",
"Engine/FallbackTreatments/FallbackTreatmentsCalculatorTests.swift",
"Engine/Mocks/FallbackTreatmentsCalculatorMock.swift",
"Events/Mocks/SplitEventsManagerMock.swift",
"Events/SplitEventsManagerTest.swift",
"Helpers/CommonHelpers.swift",
"Helpers/SplitFactoryBuilder+Testing.swift",
"Helpers/TestEventListener.swift",
"Helpers/TestHelpers.swift",
"IntegrationTests/AuthProviderEventsTest.swift",
"IntegrationTests/CredentialFetcherEventsTest.swift",
"IntegrationTests/EvaluationFetchCoordinatorEventsTest.swift",
"IntegrationTests/RetryableHttpClientEventsTest.swift",
"IntegrationTests/SplitClientEventsTest.swift",
"IntegrationTests/SplitFactoryEventsTest.swift",
"IntegrationTests/SyncManagerEventsTest.swift",
"Network/Auth/AuthProviderTests.swift",
"Network/Auth/CredentialFetcherTests.swift",
"Network/Auth/CredentialStorageTests.swift",
"Network/Auth/KeychainCredentialStorageTests.swift",
"Network/Auth/Mocks/AuthProviderMock.swift",
"Network/Auth/Mocks/CredentialFetcherMock.swift",
"Network/Auth/Mocks/CredentialStorageMock.swift",
"Network/Mocks/HttpClientStub.swift",
"Network/Mocks/RetryableHttpClientMock.swift",
"Network/Mocks/SecureHttpClientMock.swift",
"Network/Mocks/StreamingHttpClientStub.swift",
"Network/RetryableHttpClientTests.swift",
"Network/SecureHttpClientTests.swift",
"Network/ServiceEndpointsTests.swift",
"Observable/EventDispatcherTests.swift",
"Observable/LoggingObserverTests.swift",
"Observable/Mocks/ObserverSpy.swift",
"Storage/CacheValidatorTests.swift",
"Storage/CoreDataStorageTests.swift",
"Sync/EvaluationFetchCoordinatorTests.swift",
"Sync/EvaluationPeriodicSchedulerTests.swift",
"Sync/Mocks/EvaluationFetchCoordinatorMock.swift",
"Sync/Mocks/EvaluationProviderMock.swift",
"Sync/Mocks/EvaluationRepositoryMock.swift",
"Sync/Mocks/EvaluationStorageMock.swift",
"Sync/Mocks/EvaluationWriteStorageMock.swift",
"Sync/Streaming/BitmapVerificationTest.swift",
"Sync/Streaming/DelayProviderTest.swift",
"Sync/Streaming/Mocks/PayloadDecoderMock.swift",
"Sync/Streaming/Mocks/SseConnectionHandlerMock.swift",
"Sync/Streaming/Mocks/StreamingMock.swift",
"Sync/Streaming/PayloadDecoderTest.swift",
"Sync/Streaming/SseJwtParserTest.swift",
"Sync/Streaming/StreamingTest.swift",
"Sync/Streaming/ThinNotificationParserTest.swift",
"Sync/SyncManagerTests.swift",
"Telemetry/Mocks/TelemetryStorageMock.swift",
"Telemetry/Mocks/TelemetrySubmitterMock.swift",
"Telemetry/SessionMetricsDTOTests.swift",
"Telemetry/TelemetryObserverTests.swift",
"Telemetry/TelemetryStorageTests.swift",
"Telemetry/TelemetrySubmitterTests.swift",
"Tracking/EventSubmissionCoordinatorTests.swift",
"Tracking/EventTaskTests.swift",
"Tracking/EventsTrackerTests.swift",
"Tracking/EventsValidatorTests.swift",
"Tracking/Mocks/EventSerializerMock.swift",
"Tracking/Mocks/EventSubmissionCoordinatorMock.swift",
"Tracking/Mocks/EventTaskMock.swift",
"Tracking/Mocks/EventsStorageMock.swift",
"Tracking/Mocks/EventsValidatorMock.swift",
"Tracking/Mocks/HttpEventsSubmitterMock.swift"
],
"target_dependencies" : [
"SplitThin"
],
"type" : "test"
},
{
"c99name" : "SplitThin",
"module_type" : "SwiftTarget",
"name" : "SplitThin",
"path" : "SplitThin",
"product_dependencies" : [
"SplitCommons"
],
"product_memberships" : [
"SplitThin"
],
"sources" : [
"Api/FailedClient.swift",
"Api/FailedManager.swift",
"Api/Models/AttributeSanitizer.swift",
"Api/Models/Key.swift",
"Api/Models/LogLevel.swift",
"Api/Models/SdkKey.swift",
"Api/Models/SplitMetadata.swift",
"Api/Models/SyncMode.swift",
"Api/Models/Target.swift",
"Api/SplitClient.swift",
"Api/SplitClientConfig.swift",
"Api/SplitFactory.swift",
"Api/SplitFactoryBuilder.swift",
"Api/SplitManager.swift",
"Common/AppStateManager.swift",
"Common/CommonHelpers.swift",
"Common/CompressionUtil.swift",
"Common/DynamicCodable.swift",
"Common/Murmur3Hash.swift",
"Common/Murmur64x128.swift",
"Common/Version.swift",
"Engine/EvaluationRepository.swift",
"Engine/FallbackTreatments/DefaultFallbackTreatmentsCalculator.swift",
"Engine/FallbackTreatments/FallbackSanitizer.swift",
"Engine/FallbackTreatments/FallbackTreatment.swift",
"Engine/FallbackTreatments/FallbackTreatmentsConfig.swift",
"Engine/Models/EvaluationChange.swift",
"Engine/Models/EvaluationFilters.swift",
"Engine/Models/EvaluationResult.swift",
"Engine/Models/StoredEvaluation.swift",
"Engine/TreatmentsManager.swift",
"Events/Models/EventEntity.swift",
"Events/Models/EventProperties.swift",
"Events/SplitEventListener.swift",
"Events/SplitEventsManager.swift",
"Events/SplitInternalEvent.swift",
"Network/Auth/AuthProvider.swift",
"Network/Auth/CredentialFetcher.swift",
"Network/Auth/CredentialStorage.swift",
"Network/Auth/KeychainCredentialStorage.swift",
"Network/Auth/Models/AuthResponse.swift",
"Network/Auth/Models/JwtCredential.swift",
"Network/Models/RetryComponents.swift",
"Network/RetryableHttpClient.swift",
"Network/SecureHttpClient.swift",
"Network/ServiceEndpoints.swift",
"Observable/EventDispatcher.swift",
"Observable/LoggingObserver.swift",
"Observable/ObservableEvent.swift",
"Storage/CacheValidator.swift",
"Storage/CoreDataStorage.swift",
"Storage/Dtos/EvaluationChangeDTO.swift",
"Storage/Dtos/EvaluationResultDTO.swift",
"Storage/Dtos/EventDTO.swift",
"Storage/PersistentStorage.swift",
"Sync/EvaluationFetchCoordinator.swift",
"Sync/EvaluationPeriodicScheduler.swift",
"Sync/EvaluationProvider.swift",
"Sync/Streaming/DelayProvider.swift",
"Sync/Streaming/PayloadDecoder.swift",
"Sync/Streaming/SseJwtParser.swift",
"Sync/Streaming/Streaming.swift",
"Sync/Streaming/ThinNotification.swift",
"Sync/Streaming/ThinNotificationDto.swift",
"Sync/Streaming/ThinNotificationParser.swift",
"Sync/SyncManager.swift",
"Telemetry/Models/SessionMetricsDTO.swift",
"Telemetry/TelemetryObserver.swift",
"Telemetry/TelemetryStorage.swift",
"Telemetry/TelemetrySubmitter.swift",
"Telemetry/TelemetryTrigger.swift",
"Tracking/EventSerializer.swift",
"Tracking/EventSubmissionCoordinator.swift",
"Tracking/EventTask.swift",
"Tracking/EventsPeriodicScheduler.swift",
"Tracking/EventsStorage.swift",
"Tracking/EventsTracker.swift",
"Tracking/EventsValidator.swift",
"Tracking/HttpEventsSubmitter.swift",
"Tracking/ThinEventValidator.swift",
"Tracking/ThinPropertyValidator.swift",
"Tracking/ThinTrackerLogger.swift"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
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/9] Write sources
[8/9] Write swift-version-2F0A5646E1D333AE.txt
[10/29] Compiling PeriodicRecorderWorker PeriodicTimer.swift
[11/29] Compiling Tracker TrackerModels.swift
[12/29] Compiling Concurrency SynchronizedDictionarySet.swift
[13/29] Compiling Concurrency SynchronizedDictionaryComposed.swift
[14/29] Compiling Concurrency SynchronizedDictionary.swift
[15/29] Emitting module PeriodicRecorderWorker
[16/29] Compiling PeriodicRecorderWorker PeriodicRecorderWorker.swift
[17/29] Compiling Concurrency Concurrency.swift
[18/29] Compiling Tracker TrackerValidation.swift
[19/29] Emitting module Tracker
[20/29] Compiling Tracker Tracker.swift
[21/29] Emitting module Concurrency
[22/29] Compiling Concurrency Atomic.swift
[23/29] Compiling Logging Logging.swift
[24/29] Compiling Logging DateProvider.swift
[25/29] Emitting module Logging
[26/29] Compiling Logging TimeChecker.swift
[27/29] Compiling Logging Logger.swift
[28/29] Compiling Logging LogPrinter.swift
[29/29] Compiling Logging LogLevel.swift
[30/51] Compiling BackoffCounter BackoffCounterTimer.swift
[31/51] Emitting module BackoffCounter
[32/51] Compiling BackoffCounter BackoffCounter.swift
[33/51] Compiling Http HttpStreamResponse.swift
[34/51] Compiling Http HttpTask.swift
[35/53] Compiling Http HttpSession.swift
[36/53] Compiling Http HttpStreamRequest.swift
[37/53] Compiling Http HttpParameter.swift
[38/53] Compiling Http HttpParameters.swift
[39/53] Compiling Http HttpRequestManager.swift
[40/53] Compiling Http HttpResponse.swift
[41/53] Emitting module Http
[42/53] Compiling Http HttpError.swift
[43/53] Compiling Http HttpNotificationHandler.swift
[44/53] Compiling Http Endpoint.swift
[45/53] Compiling Http HostDomainFilter.swift
[46/53] Compiling Http HttpRequest.swift
[47/53] Compiling Http HttpRequestList.swift
[48/53] Compiling Http HttpDataRequest.swift
[49/53] Compiling Http HttpDataResponse.swift
[50/53] Compiling Http HttpAuthenticator.swift
[51/53] Compiling Http HttpClient.swift
[52/53] Compiling Http PublicKeyHeaders.swift
[53/53] Compiling Http TlsPinChecker.swift
[54/60] Compiling Streaming Streaming.swift
[55/60] Compiling Streaming SseConnectionHandler.swift
[56/60] Compiling Streaming SseHandler.swift
[57/60] Compiling Streaming SseClientFactory.swift
[58/60] Emitting module Streaming
[59/60] Compiling Streaming EventStreamParser.swift
[60/60] Compiling Streaming SseClient.swift
[61/135] Emitting module SplitThin
[62/143] Compiling SplitThin FailedClient.swift
[63/143] Compiling SplitThin FailedManager.swift
[64/143] Compiling SplitThin AttributeSanitizer.swift
[65/143] Compiling SplitThin Key.swift
[66/143] Compiling SplitThin LogLevel.swift
[67/143] Compiling SplitThin SdkKey.swift
[68/143] Compiling SplitThin SplitMetadata.swift
[69/143] Compiling SplitThin SyncMode.swift
[70/143] Compiling SplitThin Target.swift
[71/143] Compiling SplitThin SessionMetricsDTO.swift
[72/143] Compiling SplitThin TelemetryObserver.swift
[73/143] Compiling SplitThin TelemetryStorage.swift
[74/143] Compiling SplitThin TelemetrySubmitter.swift
[75/143] Compiling SplitThin TelemetryTrigger.swift
[76/143] Compiling SplitThin EventSerializer.swift
[77/143] Compiling SplitThin EventSubmissionCoordinator.swift
[78/143] Compiling SplitThin EventTask.swift
[79/143] Compiling SplitThin SplitEventsManager.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:65:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
63 | processQueue.async { [weak self] in
64 | guard let self else { return }
65 | self.appendListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
66 |
67 | // Sticky events: replay already-fired state to late subscribers
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:80:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
78 | processQueue.async { [weak self] in
79 | guard let self else { return }
80 | self.deleteListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
81 | }
82 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:218:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
216 |
217 | private func appendListener(_ listener: SplitEventListener) {
218 | dataAccessQueue.async { [weak self] in self?.listeners.append(listener) }
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
219 | }
220 |
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:224:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 | dataAccessQueue.async { [weak self] in
223 | // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
224 | self?.listeners.removeElementByMemoryAddress(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:69:44: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
67 | // Sticky events: replay already-fired state to late subscribers
68 | if let metadata = self.getReadyMetadata() {
69 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | if let metadata = self.getCacheMetadata() {
72 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| `- note: access can happen concurrently
73 | }
74 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:139:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
137 |
138 | getListeners().forEach { listener in
139 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:148:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
146 |
147 | getListeners().forEach { listener in
148 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
149 | }
150 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:157:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
155 |
156 | getListeners().forEach { listener in
157 | DispatchQueue.main.async { listener.onReadyTimedOut() }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | }
159 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:165:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
163 |
164 | getListeners().forEach { listener in
165 | DispatchQueue.main.async { listener.onUpdate(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
166 | }
167 | }
[80/143] Compiling SplitThin SplitInternalEvent.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:65:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
63 | processQueue.async { [weak self] in
64 | guard let self else { return }
65 | self.appendListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
66 |
67 | // Sticky events: replay already-fired state to late subscribers
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:80:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
78 | processQueue.async { [weak self] in
79 | guard let self else { return }
80 | self.deleteListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
81 | }
82 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:218:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
216 |
217 | private func appendListener(_ listener: SplitEventListener) {
218 | dataAccessQueue.async { [weak self] in self?.listeners.append(listener) }
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
219 | }
220 |
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:224:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 | dataAccessQueue.async { [weak self] in
223 | // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
224 | self?.listeners.removeElementByMemoryAddress(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:69:44: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
67 | // Sticky events: replay already-fired state to late subscribers
68 | if let metadata = self.getReadyMetadata() {
69 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | if let metadata = self.getCacheMetadata() {
72 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| `- note: access can happen concurrently
73 | }
74 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:139:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
137 |
138 | getListeners().forEach { listener in
139 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:148:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
146 |
147 | getListeners().forEach { listener in
148 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
149 | }
150 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:157:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
155 |
156 | getListeners().forEach { listener in
157 | DispatchQueue.main.async { listener.onReadyTimedOut() }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | }
159 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:165:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
163 |
164 | getListeners().forEach { listener in
165 | DispatchQueue.main.async { listener.onUpdate(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
166 | }
167 | }
[81/143] Compiling SplitThin AuthProvider.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:65:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
63 | processQueue.async { [weak self] in
64 | guard let self else { return }
65 | self.appendListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
66 |
67 | // Sticky events: replay already-fired state to late subscribers
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:80:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
78 | processQueue.async { [weak self] in
79 | guard let self else { return }
80 | self.deleteListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
81 | }
82 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:218:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
216 |
217 | private func appendListener(_ listener: SplitEventListener) {
218 | dataAccessQueue.async { [weak self] in self?.listeners.append(listener) }
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
219 | }
220 |
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:224:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 | dataAccessQueue.async { [weak self] in
223 | // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
224 | self?.listeners.removeElementByMemoryAddress(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:69:44: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
67 | // Sticky events: replay already-fired state to late subscribers
68 | if let metadata = self.getReadyMetadata() {
69 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | if let metadata = self.getCacheMetadata() {
72 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| `- note: access can happen concurrently
73 | }
74 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:139:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
137 |
138 | getListeners().forEach { listener in
139 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:148:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
146 |
147 | getListeners().forEach { listener in
148 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
149 | }
150 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:157:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
155 |
156 | getListeners().forEach { listener in
157 | DispatchQueue.main.async { listener.onReadyTimedOut() }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | }
159 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:165:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
163 |
164 | getListeners().forEach { listener in
165 | DispatchQueue.main.async { listener.onUpdate(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
166 | }
167 | }
[82/143] Compiling SplitThin CredentialFetcher.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:65:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
63 | processQueue.async { [weak self] in
64 | guard let self else { return }
65 | self.appendListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
66 |
67 | // Sticky events: replay already-fired state to late subscribers
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:80:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
78 | processQueue.async { [weak self] in
79 | guard let self else { return }
80 | self.deleteListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
81 | }
82 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:218:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
216 |
217 | private func appendListener(_ listener: SplitEventListener) {
218 | dataAccessQueue.async { [weak self] in self?.listeners.append(listener) }
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
219 | }
220 |
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:224:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 | dataAccessQueue.async { [weak self] in
223 | // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
224 | self?.listeners.removeElementByMemoryAddress(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:69:44: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
67 | // Sticky events: replay already-fired state to late subscribers
68 | if let metadata = self.getReadyMetadata() {
69 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | if let metadata = self.getCacheMetadata() {
72 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| `- note: access can happen concurrently
73 | }
74 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:139:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
137 |
138 | getListeners().forEach { listener in
139 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:148:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
146 |
147 | getListeners().forEach { listener in
148 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
149 | }
150 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:157:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
155 |
156 | getListeners().forEach { listener in
157 | DispatchQueue.main.async { listener.onReadyTimedOut() }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | }
159 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:165:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
163 |
164 | getListeners().forEach { listener in
165 | DispatchQueue.main.async { listener.onUpdate(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
166 | }
167 | }
[83/143] Compiling SplitThin CredentialStorage.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:65:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
63 | processQueue.async { [weak self] in
64 | guard let self else { return }
65 | self.appendListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
66 |
67 | // Sticky events: replay already-fired state to late subscribers
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:80:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
78 | processQueue.async { [weak self] in
79 | guard let self else { return }
80 | self.deleteListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
81 | }
82 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:218:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
216 |
217 | private func appendListener(_ listener: SplitEventListener) {
218 | dataAccessQueue.async { [weak self] in self?.listeners.append(listener) }
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
219 | }
220 |
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:224:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 | dataAccessQueue.async { [weak self] in
223 | // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
224 | self?.listeners.removeElementByMemoryAddress(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:69:44: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
67 | // Sticky events: replay already-fired state to late subscribers
68 | if let metadata = self.getReadyMetadata() {
69 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | if let metadata = self.getCacheMetadata() {
72 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| `- note: access can happen concurrently
73 | }
74 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:139:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
137 |
138 | getListeners().forEach { listener in
139 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:148:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
146 |
147 | getListeners().forEach { listener in
148 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
149 | }
150 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:157:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
155 |
156 | getListeners().forEach { listener in
157 | DispatchQueue.main.async { listener.onReadyTimedOut() }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | }
159 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:165:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
163 |
164 | getListeners().forEach { listener in
165 | DispatchQueue.main.async { listener.onUpdate(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
166 | }
167 | }
[84/143] Compiling SplitThin KeychainCredentialStorage.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:65:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
63 | processQueue.async { [weak self] in
64 | guard let self else { return }
65 | self.appendListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
66 |
67 | // Sticky events: replay already-fired state to late subscribers
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:80:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
78 | processQueue.async { [weak self] in
79 | guard let self else { return }
80 | self.deleteListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
81 | }
82 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:218:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
216 |
217 | private func appendListener(_ listener: SplitEventListener) {
218 | dataAccessQueue.async { [weak self] in self?.listeners.append(listener) }
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
219 | }
220 |
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:224:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 | dataAccessQueue.async { [weak self] in
223 | // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
224 | self?.listeners.removeElementByMemoryAddress(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:69:44: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
67 | // Sticky events: replay already-fired state to late subscribers
68 | if let metadata = self.getReadyMetadata() {
69 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | if let metadata = self.getCacheMetadata() {
72 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| `- note: access can happen concurrently
73 | }
74 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:139:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
137 |
138 | getListeners().forEach { listener in
139 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:148:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
146 |
147 | getListeners().forEach { listener in
148 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
149 | }
150 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:157:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
155 |
156 | getListeners().forEach { listener in
157 | DispatchQueue.main.async { listener.onReadyTimedOut() }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | }
159 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:165:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
163 |
164 | getListeners().forEach { listener in
165 | DispatchQueue.main.async { listener.onUpdate(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
166 | }
167 | }
[85/143] Compiling SplitThin AuthResponse.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:65:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
63 | processQueue.async { [weak self] in
64 | guard let self else { return }
65 | self.appendListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
66 |
67 | // Sticky events: replay already-fired state to late subscribers
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:80:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
78 | processQueue.async { [weak self] in
79 | guard let self else { return }
80 | self.deleteListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
81 | }
82 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:218:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
216 |
217 | private func appendListener(_ listener: SplitEventListener) {
218 | dataAccessQueue.async { [weak self] in self?.listeners.append(listener) }
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
219 | }
220 |
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:224:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 | dataAccessQueue.async { [weak self] in
223 | // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
224 | self?.listeners.removeElementByMemoryAddress(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:69:44: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
67 | // Sticky events: replay already-fired state to late subscribers
68 | if let metadata = self.getReadyMetadata() {
69 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | if let metadata = self.getCacheMetadata() {
72 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| `- note: access can happen concurrently
73 | }
74 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:139:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
137 |
138 | getListeners().forEach { listener in
139 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:148:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
146 |
147 | getListeners().forEach { listener in
148 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
149 | }
150 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:157:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
155 |
156 | getListeners().forEach { listener in
157 | DispatchQueue.main.async { listener.onReadyTimedOut() }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | }
159 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:165:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
163 |
164 | getListeners().forEach { listener in
165 | DispatchQueue.main.async { listener.onUpdate(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
166 | }
167 | }
[86/143] Compiling SplitThin JwtCredential.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:65:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
63 | processQueue.async { [weak self] in
64 | guard let self else { return }
65 | self.appendListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
66 |
67 | // Sticky events: replay already-fired state to late subscribers
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:80:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
78 | processQueue.async { [weak self] in
79 | guard let self else { return }
80 | self.deleteListener(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
81 | }
82 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:218:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
216 |
217 | private func appendListener(_ listener: SplitEventListener) {
218 | dataAccessQueue.async { [weak self] in self?.listeners.append(listener) }
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
219 | }
220 |
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:224:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 | dataAccessQueue.async { [weak self] in
223 | // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
224 | self?.listeners.removeElementByMemoryAddress(listener)
| `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
225 | }
226 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventListener.swift:6:17: note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
4 | import Foundation
5 |
6 | public protocol SplitEventListener {
| `- note: protocol 'SplitEventListener' does not conform to the 'Sendable' protocol
7 | func onReady(_ metadata: SdkReadyMetadata)
8 | func onReadyFromCache(_ metadata: SdkReadyFromCacheMetadata)
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:69:44: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
67 | // Sticky events: replay already-fired state to late subscribers
68 | if let metadata = self.getReadyMetadata() {
69 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
70 | }
71 | if let metadata = self.getCacheMetadata() {
72 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| `- note: access can happen concurrently
73 | }
74 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:139:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
137 |
138 | getListeners().forEach { listener in
139 | DispatchQueue.main.async { listener.onReady(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
140 | }
141 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:148:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
146 |
147 | getListeners().forEach { listener in
148 | DispatchQueue.main.async { listener.onReadyFromCache(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
149 | }
150 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:157:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
155 |
156 | getListeners().forEach { listener in
157 | DispatchQueue.main.async { listener.onReadyTimedOut() }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
158 | }
159 | }
/Users/admin/builder/spi-builder-workspace/SplitThin/Events/SplitEventsManager.swift:165:41: warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
163 |
164 | getListeners().forEach { listener in
165 | DispatchQueue.main.async { listener.onUpdate(metadata) }
| |- warning: sending 'listener' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'listener' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
166 | }
167 | }
[87/143] Compiling SplitThin EvaluationChange.swift
[88/143] Compiling SplitThin EvaluationFilters.swift
[89/143] Compiling SplitThin EvaluationResult.swift
[90/143] Compiling SplitThin StoredEvaluation.swift
[91/143] Compiling SplitThin TreatmentsManager.swift
[92/143] Compiling SplitThin EventEntity.swift
[93/143] Compiling SplitThin EventProperties.swift
[94/143] Compiling SplitThin SplitEventListener.swift
[95/143] Compiling SplitThin Murmur3Hash.swift
[96/143] Compiling SplitThin Murmur64x128.swift
[97/143] Compiling SplitThin Version.swift
[98/143] Compiling SplitThin EvaluationRepository.swift
[99/143] Compiling SplitThin DefaultFallbackTreatmentsCalculator.swift
[100/143] Compiling SplitThin FallbackSanitizer.swift
[101/143] Compiling SplitThin FallbackTreatment.swift
[102/143] Compiling SplitThin FallbackTreatmentsConfig.swift
[103/143] Compiling SplitThin DelayProvider.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Sync/Streaming/Streaming.swift:125:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
123 | case .evaluationUpdate:
124 | if let evalNotification = notification as? EvaluationUpdateNotification {
125 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
126 | guard let self else { return }
127 | await self.handleEvaluationUpdate(evalNotification)
| `- note: closure captures 'evalNotification' which is accessible to code in the current task
128 | }
129 | }
[104/143] Compiling SplitThin PayloadDecoder.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Sync/Streaming/Streaming.swift:125:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
123 | case .evaluationUpdate:
124 | if let evalNotification = notification as? EvaluationUpdateNotification {
125 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
126 | guard let self else { return }
127 | await self.handleEvaluationUpdate(evalNotification)
| `- note: closure captures 'evalNotification' which is accessible to code in the current task
128 | }
129 | }
[105/143] Compiling SplitThin SseJwtParser.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Sync/Streaming/Streaming.swift:125:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
123 | case .evaluationUpdate:
124 | if let evalNotification = notification as? EvaluationUpdateNotification {
125 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
126 | guard let self else { return }
127 | await self.handleEvaluationUpdate(evalNotification)
| `- note: closure captures 'evalNotification' which is accessible to code in the current task
128 | }
129 | }
[106/143] Compiling SplitThin Streaming.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Sync/Streaming/Streaming.swift:125:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
123 | case .evaluationUpdate:
124 | if let evalNotification = notification as? EvaluationUpdateNotification {
125 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
126 | guard let self else { return }
127 | await self.handleEvaluationUpdate(evalNotification)
| `- note: closure captures 'evalNotification' which is accessible to code in the current task
128 | }
129 | }
[107/143] Compiling SplitThin ThinNotification.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Sync/Streaming/Streaming.swift:125:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
123 | case .evaluationUpdate:
124 | if let evalNotification = notification as? EvaluationUpdateNotification {
125 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
126 | guard let self else { return }
127 | await self.handleEvaluationUpdate(evalNotification)
| `- note: closure captures 'evalNotification' which is accessible to code in the current task
128 | }
129 | }
[108/143] Compiling SplitThin ThinNotificationDto.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Sync/Streaming/Streaming.swift:125:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
123 | case .evaluationUpdate:
124 | if let evalNotification = notification as? EvaluationUpdateNotification {
125 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
126 | guard let self else { return }
127 | await self.handleEvaluationUpdate(evalNotification)
| `- note: closure captures 'evalNotification' which is accessible to code in the current task
128 | }
129 | }
[109/143] Compiling SplitThin ThinNotificationParser.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Sync/Streaming/Streaming.swift:125:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
123 | case .evaluationUpdate:
124 | if let evalNotification = notification as? EvaluationUpdateNotification {
125 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
126 | guard let self else { return }
127 | await self.handleEvaluationUpdate(evalNotification)
| `- note: closure captures 'evalNotification' which is accessible to code in the current task
128 | }
129 | }
[110/143] Compiling SplitThin SyncManager.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Sync/Streaming/Streaming.swift:125:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
123 | case .evaluationUpdate:
124 | if let evalNotification = notification as? EvaluationUpdateNotification {
125 | Task { [weak self] in
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
126 | guard let self else { return }
127 | await self.handleEvaluationUpdate(evalNotification)
| `- note: closure captures 'evalNotification' which is accessible to code in the current task
128 | }
129 | }
[111/143] Compiling SplitThin EventsPeriodicScheduler.swift
[112/143] Compiling SplitThin EventsStorage.swift
[113/143] Compiling SplitThin EventsTracker.swift
[114/143] Compiling SplitThin EventsValidator.swift
[115/143] Compiling SplitThin HttpEventsSubmitter.swift
[116/143] Compiling SplitThin ThinEventValidator.swift
[117/143] Compiling SplitThin ThinPropertyValidator.swift
[118/143] Compiling SplitThin ThinTrackerLogger.swift
[119/143] Compiling SplitThin RetryComponents.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Network/RetryableHttpClient.swift:105:38: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
103 | _ = try httpClient.sendRequest(endpoint: endpoint, parameters: nil, headers: endpoint.headers, body: body)
104 | .getResponse { response in
105 | continuation.resume(returning: response)
| |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'response' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
106 | } errorHandler: { error in
107 | continuation.resume(throwing: RetryableHttpError.networkError(error))
[120/143] Compiling SplitThin RetryableHttpClient.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Network/RetryableHttpClient.swift:105:38: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
103 | _ = try httpClient.sendRequest(endpoint: endpoint, parameters: nil, headers: endpoint.headers, body: body)
104 | .getResponse { response in
105 | continuation.resume(returning: response)
| |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'response' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
106 | } errorHandler: { error in
107 | continuation.resume(throwing: RetryableHttpError.networkError(error))
[121/143] Compiling SplitThin SecureHttpClient.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Network/RetryableHttpClient.swift:105:38: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
103 | _ = try httpClient.sendRequest(endpoint: endpoint, parameters: nil, headers: endpoint.headers, body: body)
104 | .getResponse { response in
105 | continuation.resume(returning: response)
| |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'response' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
106 | } errorHandler: { error in
107 | continuation.resume(throwing: RetryableHttpError.networkError(error))
[122/143] Compiling SplitThin ServiceEndpoints.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Network/RetryableHttpClient.swift:105:38: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
103 | _ = try httpClient.sendRequest(endpoint: endpoint, parameters: nil, headers: endpoint.headers, body: body)
104 | .getResponse { response in
105 | continuation.resume(returning: response)
| |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'response' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
106 | } errorHandler: { error in
107 | continuation.resume(throwing: RetryableHttpError.networkError(error))
[123/143] Compiling SplitThin EventDispatcher.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Network/RetryableHttpClient.swift:105:38: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
103 | _ = try httpClient.sendRequest(endpoint: endpoint, parameters: nil, headers: endpoint.headers, body: body)
104 | .getResponse { response in
105 | continuation.resume(returning: response)
| |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'response' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
106 | } errorHandler: { error in
107 | continuation.resume(throwing: RetryableHttpError.networkError(error))
[124/143] Compiling SplitThin LoggingObserver.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Network/RetryableHttpClient.swift:105:38: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
103 | _ = try httpClient.sendRequest(endpoint: endpoint, parameters: nil, headers: endpoint.headers, body: body)
104 | .getResponse { response in
105 | continuation.resume(returning: response)
| |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'response' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
106 | } errorHandler: { error in
107 | continuation.resume(throwing: RetryableHttpError.networkError(error))
[125/143] Compiling SplitThin ObservableEvent.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Network/RetryableHttpClient.swift:105:38: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
103 | _ = try httpClient.sendRequest(endpoint: endpoint, parameters: nil, headers: endpoint.headers, body: body)
104 | .getResponse { response in
105 | continuation.resume(returning: response)
| |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'response' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
106 | } errorHandler: { error in
107 | continuation.resume(throwing: RetryableHttpError.networkError(error))
[126/143] Compiling SplitThin CacheValidator.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Network/RetryableHttpClient.swift:105:38: warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
103 | _ = try httpClient.sendRequest(endpoint: endpoint, parameters: nil, headers: endpoint.headers, body: body)
104 | .getResponse { response in
105 | continuation.resume(returning: response)
| |- warning: sending 'response' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'response' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
106 | } errorHandler: { error in
107 | continuation.resume(throwing: RetryableHttpError.networkError(error))
[127/143] Compiling SplitThin CoreDataStorage.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Storage/CoreDataStorage.swift:409:34: warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
407 | context.perform {
408 | do {
409 | continuation.resume(returning: try block(context))
| |- warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'T' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
410 | } catch {
411 | continuation.resume(throwing: error)
[128/143] Compiling SplitThin EvaluationChangeDTO.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Storage/CoreDataStorage.swift:409:34: warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
407 | context.perform {
408 | do {
409 | continuation.resume(returning: try block(context))
| |- warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'T' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
410 | } catch {
411 | continuation.resume(throwing: error)
[129/143] Compiling SplitThin EvaluationResultDTO.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Storage/CoreDataStorage.swift:409:34: warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
407 | context.perform {
408 | do {
409 | continuation.resume(returning: try block(context))
| |- warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'T' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
410 | } catch {
411 | continuation.resume(throwing: error)
[130/143] Compiling SplitThin EventDTO.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Storage/CoreDataStorage.swift:409:34: warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
407 | context.perform {
408 | do {
409 | continuation.resume(returning: try block(context))
| |- warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'T' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
410 | } catch {
411 | continuation.resume(throwing: error)
[131/143] Compiling SplitThin PersistentStorage.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Storage/CoreDataStorage.swift:409:34: warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
407 | context.perform {
408 | do {
409 | continuation.resume(returning: try block(context))
| |- warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'T' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
410 | } catch {
411 | continuation.resume(throwing: error)
[132/143] Compiling SplitThin EvaluationFetchCoordinator.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Storage/CoreDataStorage.swift:409:34: warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
407 | context.perform {
408 | do {
409 | continuation.resume(returning: try block(context))
| |- warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'T' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
410 | } catch {
411 | continuation.resume(throwing: error)
[133/143] Compiling SplitThin EvaluationPeriodicScheduler.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Storage/CoreDataStorage.swift:409:34: warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
407 | context.perform {
408 | do {
409 | continuation.resume(returning: try block(context))
| |- warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'T' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
410 | } catch {
411 | continuation.resume(throwing: error)
[134/143] Compiling SplitThin EvaluationProvider.swift
/Users/admin/builder/spi-builder-workspace/SplitThin/Storage/CoreDataStorage.swift:409:34: warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
407 | context.perform {
408 | do {
409 | continuation.resume(returning: try block(context))
| |- warning: sending value of non-Sendable type 'T' risks causing data races; this is an error in the Swift 6 language mode
| `- note: Passing task-isolated value of non-Sendable type 'T' as a 'sending' parameter risks causing races inbetween task-isolated uses and uses reachable from the callee
410 | } catch {
411 | continuation.resume(throwing: error)
[135/143] Compiling SplitThin SplitClient.swift
[136/143] Compiling SplitThin SplitClientConfig.swift
[137/143] Compiling SplitThin SplitFactory.swift
[138/143] Compiling SplitThin SplitFactoryBuilder.swift
[139/143] Compiling SplitThin SplitManager.swift
[140/143] Compiling SplitThin AppStateManager.swift
[141/143] Compiling SplitThin CommonHelpers.swift
[142/143] Compiling SplitThin CompressionUtil.swift
[143/143] Compiling SplitThin DynamicCodable.swift
Build complete! (21.78s)
Fetching https://github.com/splitio/ios-client.git
[1/39130] Fetching ios-client
Fetched https://github.com/splitio/ios-client.git from cache (5.16s)
Creating working copy for https://github.com/splitio/ios-client.git
Working copy of https://github.com/splitio/ios-client.git resolved at e256f22a7c98af2643ffd03cc60a2b24cf90524f
Build complete.
{
"dependencies" : [
{
"identity" : "ios-client",
"requirement" : {
"revision" : [
"e256f22a7c98af2643ffd03cc60a2b24cf90524f"
]
},
"type" : "sourceControl",
"url" : "https://github.com/splitio/ios-client.git"
}
],
"manifest_display_name" : "SplitThin",
"name" : "SplitThin",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "macos",
"version" : "10.15"
}
],
"products" : [
{
"name" : "SplitThin",
"targets" : [
"SplitThin"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "SplitThinTests",
"module_type" : "SwiftTarget",
"name" : "SplitThinTests",
"path" : "SplitThinTests",
"product_dependencies" : [
"SplitCommons"
],
"sources" : [
"Api/AttributeSanitizerTests.swift",
"Api/Mocks/EventsPeriodicSchedulerMock.swift",
"Api/Mocks/EventsTrackerMock.swift",
"Api/Mocks/SyncManagerMock.swift",
"Api/Mocks/TrackerMock.swift",
"Api/Mocks/TreatmentsManagerMock.swift",
"Api/SplitClientConfigTests.swift",
"Api/SplitClientTests.swift",
"Api/SplitFactoryBuilderTests.swift",
"Api/SplitFactoryTests.swift",
"Api/SplitManagerTests.swift",
"Api/TargetTests.swift",
"Common/DynamicCodableTests.swift",
"Common/VersionTest.swift",
"E2E/AuthE2ETest.swift",
"E2E/EvaluationResultE2ETest.swift",
"E2E/EventsE2ETest.swift",
"E2E/FallbackTreatmentsE2ETest.swift",
"E2E/FetchCoordinatorE2ETest.swift",
"E2E/FlagSetsE2ETest.swift",
"E2E/ManagerE2ETest.swift",
"E2E/PersistenceE2ETest.swift",
"E2E/PollingE2ETest.swift",
"E2E/ReadyTimeoutE2ETest.swift",
"E2E/StreamingDataRaceTest.swift",
"E2E/StreamingE2ETest.swift",
"E2E/TelemetryE2ETest.swift",
"E2E/TrackingE2ETest.swift",
"Engine/EvaluationRepositoryTests.swift",
"Engine/FallbackTreatments/FallbackSanitizerTests.swift",
"Engine/FallbackTreatments/FallbackTreatmentTests.swift",
"Engine/FallbackTreatments/FallbackTreatmentsCalculatorTests.swift",
"Engine/Mocks/FallbackTreatmentsCalculatorMock.swift",
"Events/Mocks/SplitEventsManagerMock.swift",
"Events/SplitEventsManagerTest.swift",
"Helpers/CommonHelpers.swift",
"Helpers/SplitFactoryBuilder+Testing.swift",
"Helpers/TestEventListener.swift",
"Helpers/TestHelpers.swift",
"IntegrationTests/AuthProviderEventsTest.swift",
"IntegrationTests/CredentialFetcherEventsTest.swift",
"IntegrationTests/EvaluationFetchCoordinatorEventsTest.swift",
"IntegrationTests/RetryableHttpClientEventsTest.swift",
"IntegrationTests/SplitClientEventsTest.swift",
"IntegrationTests/SplitFactoryEventsTest.swift",
"IntegrationTests/SyncManagerEventsTest.swift",
"Network/Auth/AuthProviderTests.swift",
"Network/Auth/CredentialFetcherTests.swift",
"Network/Auth/CredentialStorageTests.swift",
"Network/Auth/KeychainCredentialStorageTests.swift",
"Network/Auth/Mocks/AuthProviderMock.swift",
"Network/Auth/Mocks/CredentialFetcherMock.swift",
"Network/Auth/Mocks/CredentialStorageMock.swift",
"Network/Mocks/HttpClientStub.swift",
"Network/Mocks/RetryableHttpClientMock.swift",
"Network/Mocks/SecureHttpClientMock.swift",
"Network/Mocks/StreamingHttpClientStub.swift",
"Network/RetryableHttpClientTests.swift",
"Network/SecureHttpClientTests.swift",
"Network/ServiceEndpointsTests.swift",
"Observable/EventDispatcherTests.swift",
"Observable/LoggingObserverTests.swift",
"Observable/Mocks/ObserverSpy.swift",
"Storage/CacheValidatorTests.swift",
"Storage/CoreDataStorageTests.swift",
"Sync/EvaluationFetchCoordinatorTests.swift",
"Sync/EvaluationPeriodicSchedulerTests.swift",
"Sync/Mocks/EvaluationFetchCoordinatorMock.swift",
"Sync/Mocks/EvaluationProviderMock.swift",
"Sync/Mocks/EvaluationRepositoryMock.swift",
"Sync/Mocks/EvaluationStorageMock.swift",
"Sync/Mocks/EvaluationWriteStorageMock.swift",
"Sync/Streaming/BitmapVerificationTest.swift",
"Sync/Streaming/DelayProviderTest.swift",
"Sync/Streaming/Mocks/PayloadDecoderMock.swift",
"Sync/Streaming/Mocks/SseConnectionHandlerMock.swift",
"Sync/Streaming/Mocks/StreamingMock.swift",
"Sync/Streaming/PayloadDecoderTest.swift",
"Sync/Streaming/SseJwtParserTest.swift",
"Sync/Streaming/StreamingTest.swift",
"Sync/Streaming/ThinNotificationParserTest.swift",
"Sync/SyncManagerTests.swift",
"Telemetry/Mocks/TelemetryStorageMock.swift",
"Telemetry/Mocks/TelemetrySubmitterMock.swift",
"Telemetry/SessionMetricsDTOTests.swift",
"Telemetry/TelemetryObserverTests.swift",
"Telemetry/TelemetryStorageTests.swift",
"Telemetry/TelemetrySubmitterTests.swift",
"Tracking/EventSubmissionCoordinatorTests.swift",
"Tracking/EventTaskTests.swift",
"Tracking/EventsTrackerTests.swift",
"Tracking/EventsValidatorTests.swift",
"Tracking/Mocks/EventSerializerMock.swift",
"Tracking/Mocks/EventSubmissionCoordinatorMock.swift",
"Tracking/Mocks/EventTaskMock.swift",
"Tracking/Mocks/EventsStorageMock.swift",
"Tracking/Mocks/EventsValidatorMock.swift",
"Tracking/Mocks/HttpEventsSubmitterMock.swift"
],
"target_dependencies" : [
"SplitThin"
],
"type" : "test"
},
{
"c99name" : "SplitThin",
"module_type" : "SwiftTarget",
"name" : "SplitThin",
"path" : "SplitThin",
"product_dependencies" : [
"SplitCommons"
],
"product_memberships" : [
"SplitThin"
],
"sources" : [
"Api/FailedClient.swift",
"Api/FailedManager.swift",
"Api/Models/AttributeSanitizer.swift",
"Api/Models/Key.swift",
"Api/Models/LogLevel.swift",
"Api/Models/SdkKey.swift",
"Api/Models/SplitMetadata.swift",
"Api/Models/SyncMode.swift",
"Api/Models/Target.swift",
"Api/SplitClient.swift",
"Api/SplitClientConfig.swift",
"Api/SplitFactory.swift",
"Api/SplitFactoryBuilder.swift",
"Api/SplitManager.swift",
"Common/AppStateManager.swift",
"Common/CommonHelpers.swift",
"Common/CompressionUtil.swift",
"Common/DynamicCodable.swift",
"Common/Murmur3Hash.swift",
"Common/Murmur64x128.swift",
"Common/Version.swift",
"Engine/EvaluationRepository.swift",
"Engine/FallbackTreatments/DefaultFallbackTreatmentsCalculator.swift",
"Engine/FallbackTreatments/FallbackSanitizer.swift",
"Engine/FallbackTreatments/FallbackTreatment.swift",
"Engine/FallbackTreatments/FallbackTreatmentsConfig.swift",
"Engine/Models/EvaluationChange.swift",
"Engine/Models/EvaluationFilters.swift",
"Engine/Models/EvaluationResult.swift",
"Engine/Models/StoredEvaluation.swift",
"Engine/TreatmentsManager.swift",
"Events/Models/EventEntity.swift",
"Events/Models/EventProperties.swift",
"Events/SplitEventListener.swift",
"Events/SplitEventsManager.swift",
"Events/SplitInternalEvent.swift",
"Network/Auth/AuthProvider.swift",
"Network/Auth/CredentialFetcher.swift",
"Network/Auth/CredentialStorage.swift",
"Network/Auth/KeychainCredentialStorage.swift",
"Network/Auth/Models/AuthResponse.swift",
"Network/Auth/Models/JwtCredential.swift",
"Network/Models/RetryComponents.swift",
"Network/RetryableHttpClient.swift",
"Network/SecureHttpClient.swift",
"Network/ServiceEndpoints.swift",
"Observable/EventDispatcher.swift",
"Observable/LoggingObserver.swift",
"Observable/ObservableEvent.swift",
"Storage/CacheValidator.swift",
"Storage/CoreDataStorage.swift",
"Storage/Dtos/EvaluationChangeDTO.swift",
"Storage/Dtos/EvaluationResultDTO.swift",
"Storage/Dtos/EventDTO.swift",
"Storage/PersistentStorage.swift",
"Sync/EvaluationFetchCoordinator.swift",
"Sync/EvaluationPeriodicScheduler.swift",
"Sync/EvaluationProvider.swift",
"Sync/Streaming/DelayProvider.swift",
"Sync/Streaming/PayloadDecoder.swift",
"Sync/Streaming/SseJwtParser.swift",
"Sync/Streaming/Streaming.swift",
"Sync/Streaming/ThinNotification.swift",
"Sync/Streaming/ThinNotificationDto.swift",
"Sync/Streaming/ThinNotificationParser.swift",
"Sync/SyncManager.swift",
"Telemetry/Models/SessionMetricsDTO.swift",
"Telemetry/TelemetryObserver.swift",
"Telemetry/TelemetryStorage.swift",
"Telemetry/TelemetrySubmitter.swift",
"Telemetry/TelemetryTrigger.swift",
"Tracking/EventSerializer.swift",
"Tracking/EventSubmissionCoordinator.swift",
"Tracking/EventTask.swift",
"Tracking/EventsPeriodicScheduler.swift",
"Tracking/EventsStorage.swift",
"Tracking/EventsTracker.swift",
"Tracking/EventsValidator.swift",
"Tracking/HttpEventsSubmitter.swift",
"Tracking/ThinEventValidator.swift",
"Tracking/ThinPropertyValidator.swift",
"Tracking/ThinTrackerLogger.swift"
],
"type" : "library"
}
],
"tools_version" : "5.5"
}
Done.