The Swift Package Index logo.Swift Package Index

Build Information

Successful build of AppCheck, reference main (c7eb17), with Swift 6.1 for macOS (SPM) on 29 Sep 2026 08:29:17 UTC.

Swift 6 data race errors: 1

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/google/app-check.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/google/app-check
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at c7eb17e Rewrite AppCheckCore in Swift (#111)
Cloned https://github.com/google/app-check.git
Revision (git rev-parse @):
c7eb17e5545f36e43dc50e70da09c2e999714e16
SUCCESS checkout https://github.com/google/app-check.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/google/app-check.git
https://github.com/google/app-check.git
{
  "dependencies" : [
    {
      "identity" : "googleutilities",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "8.1.0",
            "upper_bound" : "9.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/google/GoogleUtilities.git"
    },
    {
      "identity" : "interop-ios-for-google-sdks",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "101.0.0",
            "upper_bound" : "102.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/google/interop-ios-for-google-sdks.git"
    }
  ],
  "manifest_display_name" : "AppCheck",
  "name" : "AppCheck",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "maccatalyst",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "AppCheckCore",
      "targets" : [
        "AppCheckCore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "AppCheckRecaptchaProvider",
      "targets" : [
        "AppCheckRecaptchaProvider"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "AppCheckRecaptchaProviderUnit",
      "module_type" : "SwiftTarget",
      "name" : "AppCheckRecaptchaProviderUnit",
      "path" : "AppCheckRecaptchaProvider/Tests",
      "sources" : [
        "AppCheckRecaptchaProviderTests.swift",
        "MockRecaptchaSupport.swift",
        "RecaptchaAPIServiceTests.swift",
        "RecaptchaTokenGeneratorTests.swift"
      ],
      "target_dependencies" : [
        "AppCheckRecaptchaProvider"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AppCheckRecaptchaProvider",
      "module_type" : "SwiftTarget",
      "name" : "AppCheckRecaptchaProvider",
      "path" : "AppCheckRecaptchaProvider/Sources",
      "product_dependencies" : [
        "RecaptchaInterop"
      ],
      "product_memberships" : [
        "AppCheckRecaptchaProvider"
      ],
      "sources" : [
        "Public/AppCheckRecaptchaProvider.swift",
        "RecaptchaAPIService.swift",
        "RecaptchaTokenGenerator.swift"
      ],
      "target_dependencies" : [
        "AppCheckCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AppCheckCoreUnitSwift",
      "module_type" : "SwiftTarget",
      "name" : "AppCheckCoreUnitSwift",
      "path" : "AppCheckCore/Tests/Unit/Swift",
      "sources" : [
        "AppCheckAPITests.swift"
      ],
      "target_dependencies" : [
        "AppCheckCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AppCheckCoreUnitObjC",
      "module_type" : "ClangTarget",
      "name" : "AppCheckCoreUnitObjC",
      "path" : "AppCheckCore/Tests/Unit/ObjC",
      "sources" : [
        "AppCheckCoreObjCAPITests.m"
      ],
      "target_dependencies" : [
        "AppCheckCore",
        "AppCheckRecaptchaProvider"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AppCheckCoreUnit",
      "module_type" : "SwiftTarget",
      "name" : "AppCheckCoreUnit",
      "path" : "AppCheckCore/Tests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/AppAttestAttestationResponseSuccess.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/AppAttestResponseMissingChallenge.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/AppAttestResponseSuccess.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/DeviceCheckResponseMissingTimeToLive.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/DeviceCheckResponseMissingToken.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/FACTokenExchangeResponseSuccess.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/GACAppAttestStoredArtifact.bin",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/GACAppCheckStoredToken.bin",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Integration/AppCheckCoreDeviceCheckAPIServiceE2ETests.swift",
        "Unit/AppAttestProvider/AppCheckCoreAppAttestAPIServiceTests.swift",
        "Unit/AppAttestProvider/AppCheckCoreAppAttestProviderTests.swift",
        "Unit/AppAttestProvider/Storage/AppCheckCoreAppAttestArtifactStorageTests.swift",
        "Unit/AppAttestProvider/Storage/AppCheckCoreAppAttestKeyIDStorageTests.swift",
        "Unit/AppAttestProvider/Storage/AppCheckCoreAppAttestStoredArtifactTests.swift",
        "Unit/Core/AppCheckCoreAPIServiceTests.swift",
        "Unit/Core/AppCheckCoreBackoffWrapperTests.swift",
        "Unit/Core/AppCheckCoreCryptoUtilsTests.swift",
        "Unit/Core/AppCheckCoreErrorsTests.swift",
        "Unit/Core/AppCheckCoreLoggerTests.swift",
        "Unit/Core/AppCheckCoreMainThreadDeliveryTests.swift",
        "Unit/Core/AppCheckCoreStorageTests.swift",
        "Unit/Core/AppCheckCoreStoredTokenTests.swift",
        "Unit/Core/AppCheckCoreTests.swift",
        "Unit/Core/AppCheckCoreTimerTests.swift",
        "Unit/Core/AppCheckCoreTokenRefresherTests.swift",
        "Unit/Core/AppCheckCoreTokenResultTests.swift",
        "Unit/DebugProvider/AppCheckCoreDebugProviderAPIServiceTests.swift",
        "Unit/DebugProvider/AppCheckCoreDebugProviderTests.swift",
        "Unit/DeviceCheckProvider/AppCheckCoreDeviceCheckAPIServiceTests.swift",
        "Unit/DeviceCheckProvider/AppCheckCoreDeviceCheckProviderTests.swift",
        "Unit/Utils/AppCheckCoreFakes.swift",
        "Unit/Utils/AppCheckCoreFixtureLoader.swift",
        "Unit/Utils/AppCheckCoreURLSessionFake.swift"
      ],
      "target_dependencies" : [
        "AppCheckCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AppCheckCore",
      "module_type" : "SwiftTarget",
      "name" : "AppCheckCore",
      "path" : "AppCheckCore/Sources",
      "product_dependencies" : [
        "GULEnvironment",
        "GULUserDefaults"
      ],
      "product_memberships" : [
        "AppCheckCore",
        "AppCheckRecaptchaProvider"
      ],
      "sources" : [
        "AppAttestProvider/API/AppCheckCoreAppAttestAPIService.swift",
        "AppAttestProvider/API/AppCheckCoreAppAttestAttestationResponse.swift",
        "AppAttestProvider/AppCheckCoreAppAttestProvider.swift",
        "AppAttestProvider/AppCheckCoreAppAttestProviderState.swift",
        "AppAttestProvider/AppCheckCoreAppAttestService.swift",
        "AppAttestProvider/Errors/AppCheckCoreAppAttestRejectionError.swift",
        "AppAttestProvider/Storage/AppCheckCoreAppAttestArtifactStorage.swift",
        "AppAttestProvider/Storage/AppCheckCoreAppAttestKeyIDStorage.swift",
        "AppAttestProvider/Storage/AppCheckCoreAppAttestStoredArtifact.swift",
        "Core/APIService/AppCheckCoreAPIService.swift",
        "Core/APIService/AppCheckCoreToken+APIResponse.swift",
        "Core/APIService/AppCheckCoreURLSessionDataResponse.swift",
        "Core/AppCheckCore.swift",
        "Core/AppCheckCoreLogger.swift",
        "Core/AppCheckCoreProvider.swift",
        "Core/AppCheckCoreSettings.swift",
        "Core/AppCheckCoreToken.swift",
        "Core/AppCheckCoreTokenDelegate.swift",
        "Core/AppCheckCoreTokenResult.swift",
        "Core/Backoff/AppCheckCoreBackoffWrapper.swift",
        "Core/Errors/AppCheckCoreErrorUtil.swift",
        "Core/Errors/AppCheckCoreErrors.swift",
        "Core/Errors/AppCheckCoreHTTPError.swift",
        "Core/Storage/AppCheckCoreStorage.swift",
        "Core/Storage/AppCheckCoreStoredToken.swift",
        "Core/TokenRefresh/AppCheckCoreTimer.swift",
        "Core/TokenRefresh/AppCheckCoreTokenRefreshResult.swift",
        "Core/TokenRefresh/AppCheckCoreTokenRefresher.swift",
        "Core/Utils/AppCheckCoreCryptoUtils.swift",
        "Core/Utils/SafeContinuation.swift",
        "DebugProvider/AppCheckCoreDebugProvider.swift",
        "DebugProvider/AppCheckCoreDebugProviderAPIService.swift",
        "DeviceCheckProvider/API/AppCheckCoreDeviceCheckAPIService.swift",
        "DeviceCheckProvider/AppCheckCoreDeviceCheckProvider.swift",
        "DeviceCheckProvider/AppCheckCoreDeviceCheckTokenGenerator.swift",
        "DeviceCheckProvider/DCDevice+GACDeviceCheckTokenGenerator.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
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/13] Copying PrivacyInfo.xcprivacy
[0/13] Write sources
[2/13] Copying PrivacyInfo.xcprivacy
[4/13] Write swift-version-2F0A5646E1D333AE.txt
[5/13] Compiling RecaptchaInterop placeholder.m
[6/13] Compiling GULKeychainStorage.m
[7/13] Compiling GULNetworkInfo.m
[8/13] Compiling GULKeychainUtils.m
[9/13] Compiling GoogleUtilities-UserDefaults GULUserDefaults.m
[10/13] Compiling GoogleUtilities-Environment GULAppEnvironmentUtil.m
[11/13] Compiling GoogleUtilities-Environment resource_bundle_accessor.m
[12/13] Compiling GoogleUtilities-UserDefaults resource_bundle_accessor.m
[14/47] Emitting module AppCheckCore
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCoreLogger.swift:29:22: warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
27 | public class AppCheckCoreLogger: NSObject {
28 |   private static let logLevelLock = NSLock()
29 |   private static var _logLevel: AppCheckCoreLogLevel = .warning
   |                      |- warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert '_logLevel' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property '_logLevel' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 |
31 |   /// The current log level.
[15/50] Compiling AppCheckCore AppCheckCoreAppAttestAPIService.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:126:10: 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
124 |   private func getToken(limitedUse: Bool,
125 |                         completion handler: @escaping (AppCheckCoreToken?, Error?) -> Void) {
126 |     Task {
    |          `- 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
127 |       do {
128 |         let token = try await getToken(limitedUse: limitedUse)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
129 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
130 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:152: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
150 |
151 |       ongoingGetTokenOperationLimitedUse = limitedUse
152 |       let newTask = Task { () throws -> AppCheckCoreToken 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
153 |         // Release the ongoing operation from *within* the operation, so the
154 |         // slot is already cleared by the time any chained waiter resumes. The
    :
159 |         // recursions until the originator happens to run.
160 |         defer {
161 |           self.lock.execute {
    |           `- note: closure captures 'self' which is accessible to code in the current task
162 |             self.ongoingGetTokenOperationTask = nil
163 |           }
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:308:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
306 |
307 |     do {
308 |       async let fetchChallenge = apiService.getRandomChallenge()
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
309 |       async let fetchKeyID = generateAppAttestKeyIDIfNeeded(storedKeyID: keyID)
310 |       challenge = try await fetchChallenge
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:309:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
307 |     do {
308 |       async let fetchChallenge = apiService.getRandomChallenge()
309 |       async let fetchKeyID = generateAppAttestKeyIDIfNeeded(storedKeyID: keyID)
    |                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
310 |       challenge = try await fetchChallenge
311 |       generatedKeyID = try await fetchKeyID
[16/50] Compiling AppCheckCore AppCheckCoreAppAttestAttestationResponse.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:126:10: 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
124 |   private func getToken(limitedUse: Bool,
125 |                         completion handler: @escaping (AppCheckCoreToken?, Error?) -> Void) {
126 |     Task {
    |          `- 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
127 |       do {
128 |         let token = try await getToken(limitedUse: limitedUse)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
129 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
130 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:152: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
150 |
151 |       ongoingGetTokenOperationLimitedUse = limitedUse
152 |       let newTask = Task { () throws -> AppCheckCoreToken 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
153 |         // Release the ongoing operation from *within* the operation, so the
154 |         // slot is already cleared by the time any chained waiter resumes. The
    :
159 |         // recursions until the originator happens to run.
160 |         defer {
161 |           self.lock.execute {
    |           `- note: closure captures 'self' which is accessible to code in the current task
162 |             self.ongoingGetTokenOperationTask = nil
163 |           }
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:308:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
306 |
307 |     do {
308 |       async let fetchChallenge = apiService.getRandomChallenge()
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
309 |       async let fetchKeyID = generateAppAttestKeyIDIfNeeded(storedKeyID: keyID)
310 |       challenge = try await fetchChallenge
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:309:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
307 |     do {
308 |       async let fetchChallenge = apiService.getRandomChallenge()
309 |       async let fetchKeyID = generateAppAttestKeyIDIfNeeded(storedKeyID: keyID)
    |                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
310 |       challenge = try await fetchChallenge
311 |       generatedKeyID = try await fetchKeyID
[17/50] Compiling AppCheckCore AppCheckCoreAppAttestProvider.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:126:10: 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
124 |   private func getToken(limitedUse: Bool,
125 |                         completion handler: @escaping (AppCheckCoreToken?, Error?) -> Void) {
126 |     Task {
    |          `- 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
127 |       do {
128 |         let token = try await getToken(limitedUse: limitedUse)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
129 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
130 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:152: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
150 |
151 |       ongoingGetTokenOperationLimitedUse = limitedUse
152 |       let newTask = Task { () throws -> AppCheckCoreToken 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
153 |         // Release the ongoing operation from *within* the operation, so the
154 |         // slot is already cleared by the time any chained waiter resumes. The
    :
159 |         // recursions until the originator happens to run.
160 |         defer {
161 |           self.lock.execute {
    |           `- note: closure captures 'self' which is accessible to code in the current task
162 |             self.ongoingGetTokenOperationTask = nil
163 |           }
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:308:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
306 |
307 |     do {
308 |       async let fetchChallenge = apiService.getRandomChallenge()
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
309 |       async let fetchKeyID = generateAppAttestKeyIDIfNeeded(storedKeyID: keyID)
310 |       challenge = try await fetchChallenge
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:309:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
307 |     do {
308 |       async let fetchChallenge = apiService.getRandomChallenge()
309 |       async let fetchKeyID = generateAppAttestKeyIDIfNeeded(storedKeyID: keyID)
    |                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
310 |       challenge = try await fetchChallenge
311 |       generatedKeyID = try await fetchKeyID
[18/50] Compiling AppCheckCore AppCheckCoreAppAttestProviderState.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:126:10: 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
124 |   private func getToken(limitedUse: Bool,
125 |                         completion handler: @escaping (AppCheckCoreToken?, Error?) -> Void) {
126 |     Task {
    |          `- 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
127 |       do {
128 |         let token = try await getToken(limitedUse: limitedUse)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
129 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
130 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:152: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
150 |
151 |       ongoingGetTokenOperationLimitedUse = limitedUse
152 |       let newTask = Task { () throws -> AppCheckCoreToken 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
153 |         // Release the ongoing operation from *within* the operation, so the
154 |         // slot is already cleared by the time any chained waiter resumes. The
    :
159 |         // recursions until the originator happens to run.
160 |         defer {
161 |           self.lock.execute {
    |           `- note: closure captures 'self' which is accessible to code in the current task
162 |             self.ongoingGetTokenOperationTask = nil
163 |           }
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:308:34: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
306 |
307 |     do {
308 |       async let fetchChallenge = apiService.getRandomChallenge()
    |                                  |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                  `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
309 |       async let fetchKeyID = generateAppAttestKeyIDIfNeeded(storedKeyID: keyID)
310 |       challenge = try await fetchChallenge
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/AppAttestProvider/AppCheckCoreAppAttestProvider.swift:309:30: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
307 |     do {
308 |       async let fetchChallenge = apiService.getRandomChallenge()
309 |       async let fetchKeyID = generateAppAttestKeyIDIfNeeded(storedKeyID: keyID)
    |                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                              `- note: sending task-isolated 'self' into async let risks causing data races between nonisolated and task-isolated uses
310 |       challenge = try await fetchChallenge
311 |       generatedKeyID = try await fetchKeyID
[19/50] Compiling AppCheckCore AppCheckCore.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCoreLogger.swift:29:22: warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
27 | public class AppCheckCoreLogger: NSObject {
28 |   private static let logLevelLock = NSLock()
29 |   private static var _logLevel: AppCheckCoreLogLevel = .warning
   |                      |- warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert '_logLevel' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property '_logLevel' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 |
31 |   /// The current log level.
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:85:10: 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
 83 |
 84 |   private func periodicTokenRefresh(completion: @escaping AppCheckCoreTokenRefreshCompletion) {
 85 |     Task {
    |          `- 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
 86 |       let refreshResult: AppCheckCoreTokenRefreshResult
 87 |       do {
 88 |         let token = try await self.token(forcingRefresh: false)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
 89 |         refreshResult = AppCheckCoreTokenRefreshResult(status: .success,
 90 |                                                        expirationDate: token.expirationDate,
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:129:23: 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
127 |
128 |       // Create a new task and store it only if not forcing refresh
129 |       let task = Task { () -> AppCheckCoreToken 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
130 |         defer {
131 |           if !forcingRefresh {
132 |             self.lock.execute {
    |             `- note: closure captures 'self' which is accessible to code in the current task
133 |               self.ongoingTask = nil
134 |             }
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:204:10: 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
202 |   @objc(tokenForcingRefresh:completion:)
203 |   public func token(forcingRefresh: Bool, completion: @escaping AppCheckCoreTokenHandler) {
204 |     Task {
    |          `- 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
205 |       do {
206 |         let token = try await self.token(forcingRefresh: forcingRefresh)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
207 |         Self.deliverOnMainQueue(AppCheckCoreTokenResult(token: token), to: completion)
208 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:220:10: 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
218 |   @objc(limitedUseTokenWithCompletion:)
219 |   public func limitedUseToken(completion: @escaping AppCheckCoreTokenHandler) {
220 |     Task {
    |          `- 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
221 |       do {
222 |         let token = try await self.limitedUseToken()
    |                               `- note: closure captures 'self' which is accessible to code in the current task
223 |         Self.deliverOnMainQueue(AppCheckCoreTokenResult(token: token), to: completion)
224 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:294:9: warning: sending 'tokenRefresher' risks causing data races; this is an error in the Swift 6 language mode
292 |     await withCheckedContinuation { continuation in
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
    |         |- warning: sending 'tokenRefresher' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'tokenRefresher' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
296 |         continuation.resume()
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:294:48: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
292 |     await withCheckedContinuation { continuation in
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
    |                                                |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                                                `- note: task-isolated 'result' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
296 |         continuation.resume()
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:295:9: warning: sending 'tokenDelegate' risks causing data races; this is an error in the Swift 6 language mode
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
    |         |- warning: sending 'tokenDelegate' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'tokenDelegate' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
296 |         continuation.resume()
297 |       }
[20/50] Compiling AppCheckCore AppCheckCoreLogger.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCoreLogger.swift:29:22: warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
27 | public class AppCheckCoreLogger: NSObject {
28 |   private static let logLevelLock = NSLock()
29 |   private static var _logLevel: AppCheckCoreLogLevel = .warning
   |                      |- warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert '_logLevel' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property '_logLevel' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 |
31 |   /// The current log level.
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:85:10: 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
 83 |
 84 |   private func periodicTokenRefresh(completion: @escaping AppCheckCoreTokenRefreshCompletion) {
 85 |     Task {
    |          `- 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
 86 |       let refreshResult: AppCheckCoreTokenRefreshResult
 87 |       do {
 88 |         let token = try await self.token(forcingRefresh: false)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
 89 |         refreshResult = AppCheckCoreTokenRefreshResult(status: .success,
 90 |                                                        expirationDate: token.expirationDate,
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:129:23: 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
127 |
128 |       // Create a new task and store it only if not forcing refresh
129 |       let task = Task { () -> AppCheckCoreToken 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
130 |         defer {
131 |           if !forcingRefresh {
132 |             self.lock.execute {
    |             `- note: closure captures 'self' which is accessible to code in the current task
133 |               self.ongoingTask = nil
134 |             }
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:204:10: 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
202 |   @objc(tokenForcingRefresh:completion:)
203 |   public func token(forcingRefresh: Bool, completion: @escaping AppCheckCoreTokenHandler) {
204 |     Task {
    |          `- 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
205 |       do {
206 |         let token = try await self.token(forcingRefresh: forcingRefresh)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
207 |         Self.deliverOnMainQueue(AppCheckCoreTokenResult(token: token), to: completion)
208 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:220:10: 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
218 |   @objc(limitedUseTokenWithCompletion:)
219 |   public func limitedUseToken(completion: @escaping AppCheckCoreTokenHandler) {
220 |     Task {
    |          `- 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
221 |       do {
222 |         let token = try await self.limitedUseToken()
    |                               `- note: closure captures 'self' which is accessible to code in the current task
223 |         Self.deliverOnMainQueue(AppCheckCoreTokenResult(token: token), to: completion)
224 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:294:9: warning: sending 'tokenRefresher' risks causing data races; this is an error in the Swift 6 language mode
292 |     await withCheckedContinuation { continuation in
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
    |         |- warning: sending 'tokenRefresher' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'tokenRefresher' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
296 |         continuation.resume()
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:294:48: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
292 |     await withCheckedContinuation { continuation in
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
    |                                                |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                                                `- note: task-isolated 'result' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
296 |         continuation.resume()
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:295:9: warning: sending 'tokenDelegate' risks causing data races; this is an error in the Swift 6 language mode
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
    |         |- warning: sending 'tokenDelegate' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'tokenDelegate' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
296 |         continuation.resume()
297 |       }
[21/50] Compiling AppCheckCore AppCheckCoreProvider.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCoreLogger.swift:29:22: warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
27 | public class AppCheckCoreLogger: NSObject {
28 |   private static let logLevelLock = NSLock()
29 |   private static var _logLevel: AppCheckCoreLogLevel = .warning
   |                      |- warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert '_logLevel' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property '_logLevel' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 |
31 |   /// The current log level.
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:85:10: 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
 83 |
 84 |   private func periodicTokenRefresh(completion: @escaping AppCheckCoreTokenRefreshCompletion) {
 85 |     Task {
    |          `- 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
 86 |       let refreshResult: AppCheckCoreTokenRefreshResult
 87 |       do {
 88 |         let token = try await self.token(forcingRefresh: false)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
 89 |         refreshResult = AppCheckCoreTokenRefreshResult(status: .success,
 90 |                                                        expirationDate: token.expirationDate,
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:129:23: 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
127 |
128 |       // Create a new task and store it only if not forcing refresh
129 |       let task = Task { () -> AppCheckCoreToken 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
130 |         defer {
131 |           if !forcingRefresh {
132 |             self.lock.execute {
    |             `- note: closure captures 'self' which is accessible to code in the current task
133 |               self.ongoingTask = nil
134 |             }
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:204:10: 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
202 |   @objc(tokenForcingRefresh:completion:)
203 |   public func token(forcingRefresh: Bool, completion: @escaping AppCheckCoreTokenHandler) {
204 |     Task {
    |          `- 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
205 |       do {
206 |         let token = try await self.token(forcingRefresh: forcingRefresh)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
207 |         Self.deliverOnMainQueue(AppCheckCoreTokenResult(token: token), to: completion)
208 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:220:10: 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
218 |   @objc(limitedUseTokenWithCompletion:)
219 |   public func limitedUseToken(completion: @escaping AppCheckCoreTokenHandler) {
220 |     Task {
    |          `- 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
221 |       do {
222 |         let token = try await self.limitedUseToken()
    |                               `- note: closure captures 'self' which is accessible to code in the current task
223 |         Self.deliverOnMainQueue(AppCheckCoreTokenResult(token: token), to: completion)
224 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:294:9: warning: sending 'tokenRefresher' risks causing data races; this is an error in the Swift 6 language mode
292 |     await withCheckedContinuation { continuation in
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
    |         |- warning: sending 'tokenRefresher' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'tokenRefresher' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
296 |         continuation.resume()
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:294:48: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
292 |     await withCheckedContinuation { continuation in
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
    |                                                |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                                                `- note: task-isolated 'result' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
296 |         continuation.resume()
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:295:9: warning: sending 'tokenDelegate' risks causing data races; this is an error in the Swift 6 language mode
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
    |         |- warning: sending 'tokenDelegate' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'tokenDelegate' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
296 |         continuation.resume()
297 |       }
[22/50] Compiling AppCheckCore AppCheckCoreSettings.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCoreLogger.swift:29:22: warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
27 | public class AppCheckCoreLogger: NSObject {
28 |   private static let logLevelLock = NSLock()
29 |   private static var _logLevel: AppCheckCoreLogLevel = .warning
   |                      |- warning: static property '_logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                      |- note: convert '_logLevel' to a 'let' constant to make 'Sendable' shared state immutable
   |                      |- note: add '@MainActor' to make static property '_logLevel' part of global actor 'MainActor'
   |                      `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
30 |
31 |   /// The current log level.
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:85:10: 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
 83 |
 84 |   private func periodicTokenRefresh(completion: @escaping AppCheckCoreTokenRefreshCompletion) {
 85 |     Task {
    |          `- 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
 86 |       let refreshResult: AppCheckCoreTokenRefreshResult
 87 |       do {
 88 |         let token = try await self.token(forcingRefresh: false)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
 89 |         refreshResult = AppCheckCoreTokenRefreshResult(status: .success,
 90 |                                                        expirationDate: token.expirationDate,
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:129:23: 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
127 |
128 |       // Create a new task and store it only if not forcing refresh
129 |       let task = Task { () -> AppCheckCoreToken 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
130 |         defer {
131 |           if !forcingRefresh {
132 |             self.lock.execute {
    |             `- note: closure captures 'self' which is accessible to code in the current task
133 |               self.ongoingTask = nil
134 |             }
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:204:10: 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
202 |   @objc(tokenForcingRefresh:completion:)
203 |   public func token(forcingRefresh: Bool, completion: @escaping AppCheckCoreTokenHandler) {
204 |     Task {
    |          `- 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
205 |       do {
206 |         let token = try await self.token(forcingRefresh: forcingRefresh)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
207 |         Self.deliverOnMainQueue(AppCheckCoreTokenResult(token: token), to: completion)
208 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:220:10: 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
218 |   @objc(limitedUseTokenWithCompletion:)
219 |   public func limitedUseToken(completion: @escaping AppCheckCoreTokenHandler) {
220 |     Task {
    |          `- 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
221 |       do {
222 |         let token = try await self.limitedUseToken()
    |                               `- note: closure captures 'self' which is accessible to code in the current task
223 |         Self.deliverOnMainQueue(AppCheckCoreTokenResult(token: token), to: completion)
224 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:294:9: warning: sending 'tokenRefresher' risks causing data races; this is an error in the Swift 6 language mode
292 |     await withCheckedContinuation { continuation in
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
    |         |- warning: sending 'tokenRefresher' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'tokenRefresher' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
296 |         continuation.resume()
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:294:48: warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
292 |     await withCheckedContinuation { continuation in
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
    |                                                |- warning: sending 'result' risks causing data races; this is an error in the Swift 6 language mode
    |                                                `- note: task-isolated 'result' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
296 |         continuation.resume()
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/AppCheckCore.swift:295:9: warning: sending 'tokenDelegate' risks causing data races; this is an error in the Swift 6 language mode
293 |       DispatchQueue.main.async {
294 |         tokenRefresher.updateWithRefreshResult(result)
295 |         tokenDelegate?.tokenDidUpdate(token, serviceName: serviceName)
    |         |- warning: sending 'tokenDelegate' risks causing data races; this is an error in the Swift 6 language mode
    |         `- note: task-isolated 'tokenDelegate' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated(unsafe) uses
296 |         continuation.resume()
297 |       }
[23/50] Compiling AppCheckCore AppCheckCoreErrorUtil.swift
[24/50] Compiling AppCheckCore AppCheckCoreErrors.swift
[25/50] Compiling AppCheckCore AppCheckCoreHTTPError.swift
[26/50] Compiling AppCheckCore AppCheckCoreStorage.swift
[27/50] Compiling AppCheckCore AppCheckCoreDeviceCheckProvider.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/DeviceCheckProvider/AppCheckCoreDeviceCheckProvider.swift:76:10: 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
 74 |
 75 |   public func getToken(completion handler: @escaping (AppCheckCoreToken?, Error?) -> Void) {
 76 |     Task {
    |          `- 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
 77 |       do {
 78 |         let token = try await getToken(limitedUse: false)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
 79 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
 80 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/DeviceCheckProvider/AppCheckCoreDeviceCheckProvider.swift:88:10: 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
 86 |   public func getLimitedUseToken(completion handler: @escaping (AppCheckCoreToken?, Error?)
 87 |     -> Void) {
 88 |     Task {
    |          `- 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
 89 |       do {
 90 |         let token = try await getToken(limitedUse: true)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
 91 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
 92 |       } catch {
[28/50] Compiling AppCheckCore AppCheckCoreDeviceCheckTokenGenerator.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/DeviceCheckProvider/AppCheckCoreDeviceCheckProvider.swift:76:10: 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
 74 |
 75 |   public func getToken(completion handler: @escaping (AppCheckCoreToken?, Error?) -> Void) {
 76 |     Task {
    |          `- 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
 77 |       do {
 78 |         let token = try await getToken(limitedUse: false)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
 79 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
 80 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/DeviceCheckProvider/AppCheckCoreDeviceCheckProvider.swift:88:10: 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
 86 |   public func getLimitedUseToken(completion handler: @escaping (AppCheckCoreToken?, Error?)
 87 |     -> Void) {
 88 |     Task {
    |          `- 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
 89 |       do {
 90 |         let token = try await getToken(limitedUse: true)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
 91 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
 92 |       } catch {
[29/50] Compiling AppCheckCore DCDevice+GACDeviceCheckTokenGenerator.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/DeviceCheckProvider/AppCheckCoreDeviceCheckProvider.swift:76:10: 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
 74 |
 75 |   public func getToken(completion handler: @escaping (AppCheckCoreToken?, Error?) -> Void) {
 76 |     Task {
    |          `- 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
 77 |       do {
 78 |         let token = try await getToken(limitedUse: false)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
 79 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
 80 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/DeviceCheckProvider/AppCheckCoreDeviceCheckProvider.swift:88:10: 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
 86 |   public func getLimitedUseToken(completion handler: @escaping (AppCheckCoreToken?, Error?)
 87 |     -> Void) {
 88 |     Task {
    |          `- 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
 89 |       do {
 90 |         let token = try await getToken(limitedUse: true)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
 91 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
 92 |       } catch {
[30/50] Compiling AppCheckCore AppCheckCoreStoredToken.swift
[31/50] Compiling AppCheckCore AppCheckCoreTimer.swift
[32/50] Compiling AppCheckCore AppCheckCoreTokenRefreshResult.swift
[33/50] Compiling AppCheckCore AppCheckCoreDebugProvider.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/DebugProvider/AppCheckCoreDebugProvider.swift:165:10: 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
163 |   private func getToken(limitedUse: Bool,
164 |                         completion handler: @escaping (AppCheckCoreToken?, Error?) -> Void) {
165 |     Task {
    |          `- 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
166 |       do {
167 |         let token = try await getToken(limitedUse: limitedUse)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
168 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
169 |       } catch {
[34/50] Compiling AppCheckCore AppCheckCoreDebugProviderAPIService.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/DebugProvider/AppCheckCoreDebugProvider.swift:165:10: 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
163 |   private func getToken(limitedUse: Bool,
164 |                         completion handler: @escaping (AppCheckCoreToken?, Error?) -> Void) {
165 |     Task {
    |          `- 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
166 |       do {
167 |         let token = try await getToken(limitedUse: limitedUse)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
168 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
169 |       } catch {
[35/50] Compiling AppCheckCore AppCheckCoreDeviceCheckAPIService.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/DebugProvider/AppCheckCoreDebugProvider.swift:165:10: 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
163 |   private func getToken(limitedUse: Bool,
164 |                         completion handler: @escaping (AppCheckCoreToken?, Error?) -> Void) {
165 |     Task {
    |          `- 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
166 |       do {
167 |         let token = try await getToken(limitedUse: limitedUse)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
168 |         AppCheckCore.deliverOnMainQueue(token, error: nil as Error?, to: handler)
169 |       } catch {
[36/50] Compiling AppCheckCore AppCheckCoreTokenRefresher.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/TokenRefresh/AppCheckCoreTokenRefresher.swift:124:9: warning: capture of 'self' with non-sendable type 'AppCheckCoreTokenRefresher?' in a '@Sendable' closure
 24 | }
 25 |
 26 | class AppCheckCoreTokenRefresher: NSObject, AppCheckCoreTokenRefresherProtocol {
    |       `- note: class 'AppCheckCoreTokenRefresher' does not conform to the 'Sendable' protocol
 27 |   private static let kInitialBackoffTimeInterval: TimeInterval = 30
 28 |   private static let kMaximumBackoffTimeInterval: TimeInterval = 16 * 60
    :
122 |     if scheduleInSec <= 0 {
123 |       refreshQueue.async { [weak self] in
124 |         self?.refresh()
    |         `- warning: capture of 'self' with non-sendable type 'AppCheckCoreTokenRefresher?' in a '@Sendable' closure
125 |       }
126 |       return
[37/50] Compiling AppCheckCore AppCheckCoreCryptoUtils.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/TokenRefresh/AppCheckCoreTokenRefresher.swift:124:9: warning: capture of 'self' with non-sendable type 'AppCheckCoreTokenRefresher?' in a '@Sendable' closure
 24 | }
 25 |
 26 | class AppCheckCoreTokenRefresher: NSObject, AppCheckCoreTokenRefresherProtocol {
    |       `- note: class 'AppCheckCoreTokenRefresher' does not conform to the 'Sendable' protocol
 27 |   private static let kInitialBackoffTimeInterval: TimeInterval = 30
 28 |   private static let kMaximumBackoffTimeInterval: TimeInterval = 16 * 60
    :
122 |     if scheduleInSec <= 0 {
123 |       refreshQueue.async { [weak self] in
124 |         self?.refresh()
    |         `- warning: capture of 'self' with non-sendable type 'AppCheckCoreTokenRefresher?' in a '@Sendable' closure
125 |       }
126 |       return
[38/50] Compiling AppCheckCore SafeContinuation.swift
/Users/admin/builder/spi-builder-workspace/AppCheckCore/Sources/Core/TokenRefresh/AppCheckCoreTokenRefresher.swift:124:9: warning: capture of 'self' with non-sendable type 'AppCheckCoreTokenRefresher?' in a '@Sendable' closure
 24 | }
 25 |
 26 | class AppCheckCoreTokenRefresher: NSObject, AppCheckCoreTokenRefresherProtocol {
    |       `- note: class 'AppCheckCoreTokenRefresher' does not conform to the 'Sendable' protocol
 27 |   private static let kInitialBackoffTimeInterval: TimeInterval = 30
 28 |   private static let kMaximumBackoffTimeInterval: TimeInterval = 16 * 60
    :
122 |     if scheduleInSec <= 0 {
123 |       refreshQueue.async { [weak self] in
124 |         self?.refresh()
    |         `- warning: capture of 'self' with non-sendable type 'AppCheckCoreTokenRefresher?' in a '@Sendable' closure
125 |       }
126 |       return
[39/50] Compiling AppCheckCore AppCheckCoreToken.swift
[40/50] Compiling AppCheckCore AppCheckCoreTokenDelegate.swift
[41/50] Compiling AppCheckCore AppCheckCoreTokenResult.swift
[42/50] Compiling AppCheckCore AppCheckCoreBackoffWrapper.swift
[43/50] Compiling AppCheckCore AppCheckCoreAppAttestStoredArtifact.swift
[44/50] Compiling AppCheckCore AppCheckCoreAPIService.swift
[45/50] Compiling AppCheckCore AppCheckCoreToken+APIResponse.swift
[46/50] Compiling AppCheckCore AppCheckCoreURLSessionDataResponse.swift
[47/50] Compiling AppCheckCore AppCheckCoreAppAttestService.swift
[48/50] Compiling AppCheckCore AppCheckCoreAppAttestRejectionError.swift
[49/50] Compiling AppCheckCore AppCheckCoreAppAttestArtifactStorage.swift
[50/50] Compiling AppCheckCore AppCheckCoreAppAttestKeyIDStorage.swift
[51/54] Compiling AppCheckRecaptchaProvider RecaptchaAPIService.swift
[52/54] Compiling AppCheckRecaptchaProvider RecaptchaTokenGenerator.swift
[53/54] Emitting module AppCheckRecaptchaProvider
[54/54] Compiling AppCheckRecaptchaProvider AppCheckRecaptchaProvider.swift
/Users/admin/builder/spi-builder-workspace/AppCheckRecaptchaProvider/Sources/Public/AppCheckRecaptchaProvider.swift:129:10: 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
127 |   @objc(getTokenWithCompletion:)
128 |   public func getToken(completion handler: @escaping (AppCheckCoreToken?, (any Error)?) -> Void) {
129 |     Task {
    |          `- 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
130 |       do {
131 |         let token = try await getToken(limitedUse: false)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
132 |         Self.deliverOnMainQueue(token, error: nil as Error?, to: handler)
133 |       } catch {
/Users/admin/builder/spi-builder-workspace/AppCheckRecaptchaProvider/Sources/Public/AppCheckRecaptchaProvider.swift:142:10: 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
140 |   public func getLimitedUseToken(completion handler: @escaping (AppCheckCoreToken?, (any Error)?)
141 |     -> Void) {
142 |     Task {
    |          `- 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
143 |       do {
144 |         let token = try await getToken(limitedUse: true)
    |                               `- note: closure captures 'self' which is accessible to code in the current task
145 |         Self.deliverOnMainQueue(token, error: nil as Error?, to: handler)
146 |       } catch {
Build complete! (12.42s)
Fetching https://github.com/google/interop-ios-for-google-sdks.git from cache
Fetching https://github.com/google/GoogleUtilities.git from cache
Fetched https://github.com/google/GoogleUtilities.git from cache (0.99s)
Fetched https://github.com/google/interop-ios-for-google-sdks.git from cache (0.99s)
Computing version for https://github.com/google/interop-ios-for-google-sdks.git
Computed https://github.com/google/interop-ios-for-google-sdks.git at 101.0.0 (4.29s)
Computing version for https://github.com/google/GoogleUtilities.git
Computed https://github.com/google/GoogleUtilities.git at 8.1.3 (0.46s)
Creating working copy for https://github.com/google/GoogleUtilities.git
Working copy of https://github.com/google/GoogleUtilities.git resolved at 8.1.3
Creating working copy for https://github.com/google/interop-ios-for-google-sdks.git
Working copy of https://github.com/google/interop-ios-for-google-sdks.git resolved at 101.0.0
Build complete.
{
  "dependencies" : [
    {
      "identity" : "googleutilities",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "8.1.0",
            "upper_bound" : "9.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/google/GoogleUtilities.git"
    },
    {
      "identity" : "interop-ios-for-google-sdks",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "101.0.0",
            "upper_bound" : "102.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/google/interop-ios-for-google-sdks.git"
    }
  ],
  "manifest_display_name" : "AppCheck",
  "name" : "AppCheck",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    },
    {
      "name" : "maccatalyst",
      "version" : "15.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "tvos",
      "version" : "15.0"
    },
    {
      "name" : "watchos",
      "version" : "8.0"
    }
  ],
  "products" : [
    {
      "name" : "AppCheckCore",
      "targets" : [
        "AppCheckCore"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "AppCheckRecaptchaProvider",
      "targets" : [
        "AppCheckRecaptchaProvider"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "AppCheckRecaptchaProviderUnit",
      "module_type" : "SwiftTarget",
      "name" : "AppCheckRecaptchaProviderUnit",
      "path" : "AppCheckRecaptchaProvider/Tests",
      "sources" : [
        "AppCheckRecaptchaProviderTests.swift",
        "MockRecaptchaSupport.swift",
        "RecaptchaAPIServiceTests.swift",
        "RecaptchaTokenGeneratorTests.swift"
      ],
      "target_dependencies" : [
        "AppCheckRecaptchaProvider"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AppCheckRecaptchaProvider",
      "module_type" : "SwiftTarget",
      "name" : "AppCheckRecaptchaProvider",
      "path" : "AppCheckRecaptchaProvider/Sources",
      "product_dependencies" : [
        "RecaptchaInterop"
      ],
      "product_memberships" : [
        "AppCheckRecaptchaProvider"
      ],
      "sources" : [
        "Public/AppCheckRecaptchaProvider.swift",
        "RecaptchaAPIService.swift",
        "RecaptchaTokenGenerator.swift"
      ],
      "target_dependencies" : [
        "AppCheckCore"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AppCheckCoreUnitSwift",
      "module_type" : "SwiftTarget",
      "name" : "AppCheckCoreUnitSwift",
      "path" : "AppCheckCore/Tests/Unit/Swift",
      "sources" : [
        "AppCheckAPITests.swift"
      ],
      "target_dependencies" : [
        "AppCheckCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AppCheckCoreUnitObjC",
      "module_type" : "ClangTarget",
      "name" : "AppCheckCoreUnitObjC",
      "path" : "AppCheckCore/Tests/Unit/ObjC",
      "sources" : [
        "AppCheckCoreObjCAPITests.m"
      ],
      "target_dependencies" : [
        "AppCheckCore",
        "AppCheckRecaptchaProvider"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AppCheckCoreUnit",
      "module_type" : "SwiftTarget",
      "name" : "AppCheckCoreUnit",
      "path" : "AppCheckCore/Tests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/AppAttestAttestationResponseSuccess.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/AppAttestResponseMissingChallenge.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/AppAttestResponseSuccess.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/DeviceCheckResponseMissingTimeToLive.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/DeviceCheckResponseMissingToken.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/FACTokenExchangeResponseSuccess.json",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/GACAppAttestStoredArtifact.bin",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/AppCheckCore/Tests/Fixture/GACAppCheckStoredToken.bin",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Integration/AppCheckCoreDeviceCheckAPIServiceE2ETests.swift",
        "Unit/AppAttestProvider/AppCheckCoreAppAttestAPIServiceTests.swift",
        "Unit/AppAttestProvider/AppCheckCoreAppAttestProviderTests.swift",
        "Unit/AppAttestProvider/Storage/AppCheckCoreAppAttestArtifactStorageTests.swift",
        "Unit/AppAttestProvider/Storage/AppCheckCoreAppAttestKeyIDStorageTests.swift",
        "Unit/AppAttestProvider/Storage/AppCheckCoreAppAttestStoredArtifactTests.swift",
        "Unit/Core/AppCheckCoreAPIServiceTests.swift",
        "Unit/Core/AppCheckCoreBackoffWrapperTests.swift",
        "Unit/Core/AppCheckCoreCryptoUtilsTests.swift",
        "Unit/Core/AppCheckCoreErrorsTests.swift",
        "Unit/Core/AppCheckCoreLoggerTests.swift",
        "Unit/Core/AppCheckCoreMainThreadDeliveryTests.swift",
        "Unit/Core/AppCheckCoreStorageTests.swift",
        "Unit/Core/AppCheckCoreStoredTokenTests.swift",
        "Unit/Core/AppCheckCoreTests.swift",
        "Unit/Core/AppCheckCoreTimerTests.swift",
        "Unit/Core/AppCheckCoreTokenRefresherTests.swift",
        "Unit/Core/AppCheckCoreTokenResultTests.swift",
        "Unit/DebugProvider/AppCheckCoreDebugProviderAPIServiceTests.swift",
        "Unit/DebugProvider/AppCheckCoreDebugProviderTests.swift",
        "Unit/DeviceCheckProvider/AppCheckCoreDeviceCheckAPIServiceTests.swift",
        "Unit/DeviceCheckProvider/AppCheckCoreDeviceCheckProviderTests.swift",
        "Unit/Utils/AppCheckCoreFakes.swift",
        "Unit/Utils/AppCheckCoreFixtureLoader.swift",
        "Unit/Utils/AppCheckCoreURLSessionFake.swift"
      ],
      "target_dependencies" : [
        "AppCheckCore"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AppCheckCore",
      "module_type" : "SwiftTarget",
      "name" : "AppCheckCore",
      "path" : "AppCheckCore/Sources",
      "product_dependencies" : [
        "GULEnvironment",
        "GULUserDefaults"
      ],
      "product_memberships" : [
        "AppCheckCore",
        "AppCheckRecaptchaProvider"
      ],
      "sources" : [
        "AppAttestProvider/API/AppCheckCoreAppAttestAPIService.swift",
        "AppAttestProvider/API/AppCheckCoreAppAttestAttestationResponse.swift",
        "AppAttestProvider/AppCheckCoreAppAttestProvider.swift",
        "AppAttestProvider/AppCheckCoreAppAttestProviderState.swift",
        "AppAttestProvider/AppCheckCoreAppAttestService.swift",
        "AppAttestProvider/Errors/AppCheckCoreAppAttestRejectionError.swift",
        "AppAttestProvider/Storage/AppCheckCoreAppAttestArtifactStorage.swift",
        "AppAttestProvider/Storage/AppCheckCoreAppAttestKeyIDStorage.swift",
        "AppAttestProvider/Storage/AppCheckCoreAppAttestStoredArtifact.swift",
        "Core/APIService/AppCheckCoreAPIService.swift",
        "Core/APIService/AppCheckCoreToken+APIResponse.swift",
        "Core/APIService/AppCheckCoreURLSessionDataResponse.swift",
        "Core/AppCheckCore.swift",
        "Core/AppCheckCoreLogger.swift",
        "Core/AppCheckCoreProvider.swift",
        "Core/AppCheckCoreSettings.swift",
        "Core/AppCheckCoreToken.swift",
        "Core/AppCheckCoreTokenDelegate.swift",
        "Core/AppCheckCoreTokenResult.swift",
        "Core/Backoff/AppCheckCoreBackoffWrapper.swift",
        "Core/Errors/AppCheckCoreErrorUtil.swift",
        "Core/Errors/AppCheckCoreErrors.swift",
        "Core/Errors/AppCheckCoreHTTPError.swift",
        "Core/Storage/AppCheckCoreStorage.swift",
        "Core/Storage/AppCheckCoreStoredToken.swift",
        "Core/TokenRefresh/AppCheckCoreTimer.swift",
        "Core/TokenRefresh/AppCheckCoreTokenRefreshResult.swift",
        "Core/TokenRefresh/AppCheckCoreTokenRefresher.swift",
        "Core/Utils/AppCheckCoreCryptoUtils.swift",
        "Core/Utils/SafeContinuation.swift",
        "DebugProvider/AppCheckCoreDebugProvider.swift",
        "DebugProvider/AppCheckCoreDebugProviderAPIService.swift",
        "DeviceCheckProvider/API/AppCheckCoreDeviceCheckAPIService.swift",
        "DeviceCheckProvider/AppCheckCoreDeviceCheckProvider.swift",
        "DeviceCheckProvider/AppCheckCoreDeviceCheckTokenGenerator.swift",
        "DeviceCheckProvider/DCDevice+GACDeviceCheckTokenGenerator.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Done.