The Swift Package Index logo.Swift Package Index

Build Information

Successful build of SplitThin, reference 1.0.1-rc1 (2a315b), with Swift 6.1 for macOS (SPM) on 1 Oct 2026 02:24:22 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 InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/splitio/ios-thin-client.git
Reference: 1.0.1-rc1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/splitio/ios-thin-client
 * tag               1.0.1-rc1  -> FETCH_HEAD
HEAD is now at 2a315bc Clients now shared components that can cause data grab/data flush races (#122)
Submodule path 'ios-client': checked out '01f183e1f3b42fe57d1b3ffd363b4c897d1cae66'
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 @):
2a315bcbc078c57654d662a724061fb95d942ec6
SUCCESS checkout https://github.com/splitio/ios-thin-client.git at 1.0.1-rc1
========================================
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" : {
        "range" : [
          {
            "lower_bound" : "3.7.2-rc1",
            "upper_bound" : "3.7.3-rc1"
          }
        ]
      },
      "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 Concurrency SynchronizedDictionaryComposed.swift
[11/29] Compiling Concurrency SynchronizedDictionarySet.swift
[12/29] Compiling Tracker TrackerModels.swift
[13/29] Compiling Tracker TrackerValidation.swift
[14/29] Emitting module Tracker
[15/29] Compiling Tracker Tracker.swift
[16/29] Compiling Logging TimeChecker.swift
[17/29] Emitting module Concurrency
[18/29] Compiling Concurrency Concurrency.swift
[19/29] Compiling Concurrency Atomic.swift
[20/29] Compiling Concurrency SynchronizedDictionary.swift
[21/29] Compiling PeriodicRecorderWorker PeriodicTimer.swift
[22/29] Emitting module PeriodicRecorderWorker
[23/29] Compiling PeriodicRecorderWorker PeriodicRecorderWorker.swift
[24/29] Compiling Logging Logging.swift
[25/29] Emitting module Logging
[26/29] Compiling Logging LogPrinter.swift
[27/29] Compiling Logging LogLevel.swift
[28/29] Compiling Logging DateProvider.swift
[29/29] Compiling Logging Logger.swift
[30/51] Compiling BackoffCounter BackoffCounterTimer.swift
[31/51] Compiling BackoffCounter BackoffCounter.swift
[32/51] Emitting module BackoffCounter
[33/51] Compiling Http HttpSession.swift
[34/51] Compiling Http HttpStreamRequest.swift
[35/53] Compiling Http HttpStreamResponse.swift
[36/53] Compiling Http HttpTask.swift
[37/53] Compiling Http HttpRequestManager.swift
[38/53] Compiling Http HttpResponse.swift
[39/53] Emitting module Http
[40/53] Compiling Http Endpoint.swift
[41/53] Compiling Http HostDomainFilter.swift
[42/53] Compiling Http HttpError.swift
[43/53] Compiling Http HttpNotificationHandler.swift
[44/53] Compiling Http HttpAuthenticator.swift
[45/53] Compiling Http HttpClient.swift
[46/53] Compiling Http HttpParameter.swift
[47/53] Compiling Http HttpParameters.swift
[48/53] Compiling Http HttpDataRequest.swift
[49/53] Compiling Http HttpDataResponse.swift
[50/53] Compiling Http HttpRequest.swift
[51/53] Compiling Http HttpRequestList.swift
[52/53] Compiling Http PublicKeyHeaders.swift
[53/53] Compiling Http TlsPinChecker.swift
[54/60] Compiling Streaming SseHandler.swift
[55/60] Compiling Streaming Streaming.swift
[56/60] Compiling Streaming SseClientFactory.swift
[57/60] Compiling Streaming SseConnectionHandler.swift
[58/60] Emitting module Streaming
[59/60] Compiling Streaming SseClient.swift
[60/60] Compiling Streaming EventStreamParser.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 EvaluationChange.swift
[72/143] Compiling SplitThin EvaluationFilters.swift
[73/143] Compiling SplitThin EvaluationResult.swift
[74/143] Compiling SplitThin StoredEvaluation.swift
[75/143] Compiling SplitThin TreatmentsManager.swift
[76/143] Compiling SplitThin EventEntity.swift
[77/143] Compiling SplitThin EventProperties.swift
[78/143] Compiling SplitThin SplitEventListener.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 |             let boxedListener = UncheckedSendableBox(value: listener)
/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:82:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 80 |         processQueue.async { [weak self] in
 81 |             guard let self else { return }
 82 |             self.deleteListener(listener)
    |                                 `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 83 |         }
 84 |     }
/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:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 |
223 |     private func appendListener(_ listener: SplitEventListener) {
224 |         dataAccessQueue.async { [weak self] in self?.listeners.append(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:230:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
228 |         dataAccessQueue.async { [weak self] in
229 |             // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
230 |             self?.listeners.removeElementByMemoryAddress(listener)
    |                                                          `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
231 |         }
232 |     }
/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)
[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 |             let boxedListener = UncheckedSendableBox(value: listener)
/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:82:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 80 |         processQueue.async { [weak self] in
 81 |             guard let self else { return }
 82 |             self.deleteListener(listener)
    |                                 `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 83 |         }
 84 |     }
/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:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 |
223 |     private func appendListener(_ listener: SplitEventListener) {
224 |         dataAccessQueue.async { [weak self] in self?.listeners.append(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:230:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
228 |         dataAccessQueue.async { [weak self] in
229 |             // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
230 |             self?.listeners.removeElementByMemoryAddress(listener)
    |                                                          `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
231 |         }
232 |     }
/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)
[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 |             let boxedListener = UncheckedSendableBox(value: listener)
/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:82:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 80 |         processQueue.async { [weak self] in
 81 |             guard let self else { return }
 82 |             self.deleteListener(listener)
    |                                 `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 83 |         }
 84 |     }
/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:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 |
223 |     private func appendListener(_ listener: SplitEventListener) {
224 |         dataAccessQueue.async { [weak self] in self?.listeners.append(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:230:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
228 |         dataAccessQueue.async { [weak self] in
229 |             // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
230 |             self?.listeners.removeElementByMemoryAddress(listener)
    |                                                          `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
231 |         }
232 |     }
/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)
[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 |             let boxedListener = UncheckedSendableBox(value: listener)
/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:82:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 80 |         processQueue.async { [weak self] in
 81 |             guard let self else { return }
 82 |             self.deleteListener(listener)
    |                                 `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 83 |         }
 84 |     }
/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:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 |
223 |     private func appendListener(_ listener: SplitEventListener) {
224 |         dataAccessQueue.async { [weak self] in self?.listeners.append(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:230:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
228 |         dataAccessQueue.async { [weak self] in
229 |             // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
230 |             self?.listeners.removeElementByMemoryAddress(listener)
    |                                                          `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
231 |         }
232 |     }
/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)
[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 |             let boxedListener = UncheckedSendableBox(value: listener)
/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:82:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 80 |         processQueue.async { [weak self] in
 81 |             guard let self else { return }
 82 |             self.deleteListener(listener)
    |                                 `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 83 |         }
 84 |     }
/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:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 |
223 |     private func appendListener(_ listener: SplitEventListener) {
224 |         dataAccessQueue.async { [weak self] in self?.listeners.append(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:230:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
228 |         dataAccessQueue.async { [weak self] in
229 |             // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
230 |             self?.listeners.removeElementByMemoryAddress(listener)
    |                                                          `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
231 |         }
232 |     }
/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)
[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 |             let boxedListener = UncheckedSendableBox(value: listener)
/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:82:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 80 |         processQueue.async { [weak self] in
 81 |             guard let self else { return }
 82 |             self.deleteListener(listener)
    |                                 `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 83 |         }
 84 |     }
/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:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 |
223 |     private func appendListener(_ listener: SplitEventListener) {
224 |         dataAccessQueue.async { [weak self] in self?.listeners.append(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:230:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
228 |         dataAccessQueue.async { [weak self] in
229 |             // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
230 |             self?.listeners.removeElementByMemoryAddress(listener)
    |                                                          `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
231 |         }
232 |     }
/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)
[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 |             let boxedListener = UncheckedSendableBox(value: listener)
/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:82:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 80 |         processQueue.async { [weak self] in
 81 |             guard let self else { return }
 82 |             self.deleteListener(listener)
    |                                 `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 83 |         }
 84 |     }
/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:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 |
223 |     private func appendListener(_ listener: SplitEventListener) {
224 |         dataAccessQueue.async { [weak self] in self?.listeners.append(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:230:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
228 |         dataAccessQueue.async { [weak self] in
229 |             // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
230 |             self?.listeners.removeElementByMemoryAddress(listener)
    |                                                          `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
231 |         }
232 |     }
/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)
[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 |             let boxedListener = UncheckedSendableBox(value: listener)
/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:82:33: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 80 |         processQueue.async { [weak self] in
 81 |             guard let self else { return }
 82 |             self.deleteListener(listener)
    |                                 `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
 83 |         }
 84 |     }
/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:71: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
222 |
223 |     private func appendListener(_ listener: SplitEventListener) {
224 |         dataAccessQueue.async { [weak self] in self?.listeners.append(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:230:58: warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
228 |         dataAccessQueue.async { [weak self] in
229 |             // Comparing memory addresses to find the exact EventListener (not just one that has the same content)
230 |             self?.listeners.removeElementByMemoryAddress(listener)
    |                                                          `- warning: capture of 'listener' with non-sendable type 'any SplitEventListener' in a '@Sendable' closure
231 |         }
232 |     }
/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)
[87/143] Compiling SplitThin Murmur3Hash.swift
[88/143] Compiling SplitThin Murmur64x128.swift
[89/143] Compiling SplitThin Version.swift
[90/143] Compiling SplitThin EvaluationRepository.swift
[91/143] Compiling SplitThin DefaultFallbackTreatmentsCalculator.swift
[92/143] Compiling SplitThin FallbackSanitizer.swift
[93/143] Compiling SplitThin FallbackTreatment.swift
[94/143] Compiling SplitThin FallbackTreatmentsConfig.swift
[95/143] Compiling SplitThin DelayProvider.swift
[96/143] Compiling SplitThin PayloadDecoder.swift
[97/143] Compiling SplitThin SseJwtParser.swift
[98/143] Compiling SplitThin Streaming.swift
[99/143] Compiling SplitThin ThinNotification.swift
[100/143] Compiling SplitThin ThinNotificationDto.swift
[101/143] Compiling SplitThin ThinNotificationParser.swift
[102/143] Compiling SplitThin SyncManager.swift
[103/143] Compiling SplitThin EventsPeriodicScheduler.swift
[104/143] Compiling SplitThin EventsStorage.swift
[105/143] Compiling SplitThin EventsTracker.swift
[106/143] Compiling SplitThin EventsValidator.swift
[107/143] Compiling SplitThin HttpEventsSubmitter.swift
[108/143] Compiling SplitThin ThinEventValidator.swift
[109/143] Compiling SplitThin ThinPropertyValidator.swift
[110/143] Compiling SplitThin ThinTrackerLogger.swift
[111/143] Compiling SplitThin RetryComponents.swift
[112/143] Compiling SplitThin RetryableHttpClient.swift
[113/143] Compiling SplitThin SecureHttpClient.swift
[114/143] Compiling SplitThin ServiceEndpoints.swift
[115/143] Compiling SplitThin EventDispatcher.swift
[116/143] Compiling SplitThin LoggingObserver.swift
[117/143] Compiling SplitThin ObservableEvent.swift
[118/143] Compiling SplitThin CacheValidator.swift
[119/143] Compiling SplitThin CoreDataStorage.swift
[120/143] Compiling SplitThin EvaluationChangeDTO.swift
[121/143] Compiling SplitThin EvaluationResultDTO.swift
[122/143] Compiling SplitThin EventDTO.swift
[123/143] Compiling SplitThin PersistentStorage.swift
[124/143] Compiling SplitThin EvaluationFetchCoordinator.swift
[125/143] Compiling SplitThin EvaluationPeriodicScheduler.swift
[126/143] Compiling SplitThin EvaluationProvider.swift
[127/143] Compiling SplitThin SessionMetricsDTO.swift
[128/143] Compiling SplitThin TelemetryObserver.swift
[129/143] Compiling SplitThin TelemetryStorage.swift
[130/143] Compiling SplitThin TelemetrySubmitter.swift
[131/143] Compiling SplitThin TelemetryTrigger.swift
[132/143] Compiling SplitThin EventSerializer.swift
[133/143] Compiling SplitThin EventSubmissionCoordinator.swift
[134/143] Compiling SplitThin EventTask.swift
[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! (25.65s)
Fetching https://github.com/splitio/ios-client.git
[1/39369] Fetching ios-client
Fetched https://github.com/splitio/ios-client.git from cache (9.50s)
Computing version for https://github.com/splitio/ios-client.git
Computed https://github.com/splitio/ios-client.git at 3.7.2-rc3 (10.14s)
Creating working copy for https://github.com/splitio/ios-client.git
Working copy of https://github.com/splitio/ios-client.git resolved at 3.7.2-rc3
Build complete.
{
  "dependencies" : [
    {
      "identity" : "ios-client",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.7.2-rc1",
            "upper_bound" : "3.7.3-rc1"
          }
        ]
      },
      "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.