The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Failed to build TIMEncryptedStorage, reference 2.2.3 (b66641), with Swift 6.1 for macOS (SPM) on 29 Apr 2025 22:57:24 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.61.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/trifork/TIMEncryptedStorage-iOS.git
Reference: 2.2.3
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/trifork/TIMEncryptedStorage-iOS
 * tag               2.2.3      -> FETCH_HEAD
HEAD is now at b666418 Merge pull request #11 from trifork/niha/request-retry
Cloned https://github.com/trifork/TIMEncryptedStorage-iOS.git
Revision (git rev-parse @):
b666418d052375516eb41e2eae26b154dd1d3681
SUCCESS checkout https://github.com/trifork/TIMEncryptedStorage-iOS.git at 2.2.3
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/trifork/TIMEncryptedStorage-iOS.git
https://github.com/trifork/TIMEncryptedStorage-iOS.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "TIMEncryptedStorage",
  "name" : "TIMEncryptedStorage",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "9.0"
    }
  ],
  "products" : [
    {
      "name" : "TIMEncryptedStorage",
      "targets" : [
        "TIMEncryptedStorage"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "TIMEncryptedStorageTests",
      "module_type" : "SwiftTarget",
      "name" : "TIMEncryptedStorageTests",
      "path" : "Tests/TIMEncryptedStorageTests",
      "sources" : [
        "IVGeneratorTests.swift",
        "KeychainStoreItemTests.swift",
        "OSStatusExtensionsTests.swift",
        "TIMCryptorTests.swift",
        "TIMEncryptedStorageTests.swift",
        "TIMKeyModelExtensionsTests.swift",
        "TIMKeyServiceErrorTests.swift",
        "TIMKeyServiceModelsTests.swift",
        "TIMKeyServiceTests.swift"
      ],
      "target_dependencies" : [
        "TIMEncryptedStorage"
      ],
      "type" : "test"
    },
    {
      "c99name" : "TIMEncryptedStorage",
      "module_type" : "SwiftTarget",
      "name" : "TIMEncryptedStorage",
      "path" : "Sources/TIMEncryptedStorage",
      "product_memberships" : [
        "TIMEncryptedStorage"
      ],
      "sources" : [
        "Cryptors/AES/CBC.swift",
        "Cryptors/AES/GCM.swift",
        "Cryptors/TIMESCryptor.swift",
        "Extensions/OSStatus+Extensions.swift",
        "Extensions/TIMKeyModel+Extensions.swift",
        "Helpers/IVGenerator.swift",
        "Helpers/Test/SecureStorageMock.swift",
        "Helpers/Test/URLSession+Extensions.swift",
        "Helpers/Test/URLSessionMockProtocol.swift",
        "Models/TIMESBiometricEnableResult.swift",
        "Models/TIMESEncryptionMethod.swift",
        "Models/TIMESKeyCreationResult.swift",
        "Models/TIMErrorModels.swift",
        "Models/TIMKeyServiceModels.swift",
        "TIM/KeyService/TIMKeyService.swift",
        "TIM/KeyService/TIMKeyServiceProtocol.swift",
        "TIM/Keychain/TIMKeychain.swift",
        "TIM/Keychain/TIMKeychainStoreItem.swift",
        "TIM/Keychain/TIMSecureStorage.swift",
        "TIM/Keychain/TIMSecureStorageItem.swift",
        "TIM/TIMEncryptedStorage.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.3"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/22] Emitting module TIMEncryptedStorage
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Helpers/Test/SecureStorageMock.swift:5:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 3 | struct SecureStorageMockItem: TIMSecureStorageItem {
 4 |     var id: String
 5 |     private (set) var isBioProtected: Bool = false
   |            `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 6 |
 7 |     init(id: String) {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Helpers/Test/URLSessionMockProtocol.swift:43:23: warning: static property 'resultsForUrls' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
41 | struct URLSessionStubResults {
42 |     /// Contains stub results for specific URLs, which will be used when mocking `URLSession` via `URLSessionMockProtocol`
43 |     public static var resultsForUrls: [URL?: URLSessionStubResult] = [:]
   |                       |- warning: static property 'resultsForUrls' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'resultsForUrls' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'resultsForUrls' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 |
45 |     /// Resets the stub storage
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:122:51: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
123 |         Future { promise in
124 |             self.getKey(secret: secret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:128:68: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
126 |     }
127 |
128 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
129 |         Future { promise in
130 |             self.getKeyViaLongSecret(longSecret: longSecret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:134:39: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
132 |     }
133 |
134 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
135 |         Future { promise in
136 |             self.createKey(secret: secret, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:34:51: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
32 |     /// Combine wrapper for `getKey` function.
33 |     @available(iOS 13, *)
34 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
35 |
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:38:68: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
37 |     @available(iOS 13, *)
38 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
39 |
40 |     /// Combine wrapper for `createKey` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:42:39: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
40 |     /// Combine wrapper for `createKey` function.
41 |     @available(iOS 13, *)
42 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
43 |     #endif
44 | }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:145:77: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
145 |     func store(id: StorageID, data: Data, keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                  `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
146 |         Future { promise in
147 |             self.store(id: id, data: data, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:152:81: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
150 |
151 |     /// Combine wrapper for `store(id:data:keyId:longSecret:completion:)`
152 |     func store(id: StorageID, data: Data, keyId: String, longSecret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                      `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
153 |         Future { promise in
154 |             self.store(id: id, data: data, keyId: keyId, longSecret: longSecret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:159:72: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
157 |
158 |     /// Combine wrapper for `storeWithNewKey(id:data:secret:completion:)`
159 |     func storeWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                             `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
160 |         Future { promise in
161 |             self.storeWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:166:137: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
164 |
165 |     /// Combine wrapper for `storeViaBiometric(id:data:keyId:willBeginNetworkRequests:completion:)`
166 |     func storeViaBiometric(id: StorageID, data: Data, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                                                                              `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
167 |         Future { promise in
168 |             self.storeViaBiometric(id: id, data: data, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:173:84: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
171 |
172 |     /// Combine wrapper for `storeViaBiometricWithNewKey(id:data:secret:completion:)`
173 |     func storeViaBiometricWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
174 |         Future { promise in
175 |             self.storeViaBiometricWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:180:63: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
178 |
179 |     /// Combine wrapper for `get(id:keyId:secret:completion:)`
180 |     func get(id: StorageID, keyId: String, secret: String) -> Future<Data, TIMEncryptedStorageError> {
    |          |                                                    `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
181 |         Future { promise in
182 |             self.get(id: id, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:187:123: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
185 |
186 |     /// Combine wrapper for `getViaBiometric(id:keyId:willBeginNetworkRequests:completion:)`
187 |     func getViaBiometric(id: StorageID, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<TIMESBiometricLoadResult, TIMEncryptedStorageError> {
    |          |                                                                                                                `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
188 |         Future { promise in
189 |             self.getViaBiometric(id: id, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:194:60: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
192 |
193 |     /// Combine wrapper for `enableBiometric(keyId:secret:completion:)`
194 |     func enableBiometric(keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                 `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
195 |         Future { promise in
196 |             self.enableBiometric(keyId: keyId, secret: secret, completion: { promise($0) })
[4/24] Compiling TIMEncryptedStorage OSStatus+Extensions.swift
[5/24] Compiling TIMEncryptedStorage TIMKeyModel+Extensions.swift
[6/24] Compiling TIMEncryptedStorage TIMSecureStorageItem.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:145:77: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
145 |     func store(id: StorageID, data: Data, keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                  `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
146 |         Future { promise in
147 |             self.store(id: id, data: data, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:152:81: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
150 |
151 |     /// Combine wrapper for `store(id:data:keyId:longSecret:completion:)`
152 |     func store(id: StorageID, data: Data, keyId: String, longSecret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                      `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
153 |         Future { promise in
154 |             self.store(id: id, data: data, keyId: keyId, longSecret: longSecret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:159:72: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
157 |
158 |     /// Combine wrapper for `storeWithNewKey(id:data:secret:completion:)`
159 |     func storeWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                             `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
160 |         Future { promise in
161 |             self.storeWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:166:137: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
164 |
165 |     /// Combine wrapper for `storeViaBiometric(id:data:keyId:willBeginNetworkRequests:completion:)`
166 |     func storeViaBiometric(id: StorageID, data: Data, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                                                                              `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
167 |         Future { promise in
168 |             self.storeViaBiometric(id: id, data: data, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:173:84: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
171 |
172 |     /// Combine wrapper for `storeViaBiometricWithNewKey(id:data:secret:completion:)`
173 |     func storeViaBiometricWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
174 |         Future { promise in
175 |             self.storeViaBiometricWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:180:63: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
178 |
179 |     /// Combine wrapper for `get(id:keyId:secret:completion:)`
180 |     func get(id: StorageID, keyId: String, secret: String) -> Future<Data, TIMEncryptedStorageError> {
    |          |                                                    `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
181 |         Future { promise in
182 |             self.get(id: id, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:187:123: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
185 |
186 |     /// Combine wrapper for `getViaBiometric(id:keyId:willBeginNetworkRequests:completion:)`
187 |     func getViaBiometric(id: StorageID, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<TIMESBiometricLoadResult, TIMEncryptedStorageError> {
    |          |                                                                                                                `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
188 |         Future { promise in
189 |             self.getViaBiometric(id: id, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:194:60: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
192 |
193 |     /// Combine wrapper for `enableBiometric(keyId:secret:completion:)`
194 |     func enableBiometric(keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                 `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
195 |         Future { promise in
196 |             self.enableBiometric(keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:146:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
145 |     func store(id: StorageID, data: Data, keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
146 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
147 |             self.store(id: id, data: data, keyId: keyId, secret: secret, completion: { promise($0) })
148 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:153:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
150 |
151 |     /// Combine wrapper for `store(id:data:keyId:longSecret:completion:)`
152 |     func store(id: StorageID, data: Data, keyId: String, longSecret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
153 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
154 |             self.store(id: id, data: data, keyId: keyId, longSecret: longSecret, completion: { promise($0) })
155 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:160:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
157 |
158 |     /// Combine wrapper for `storeWithNewKey(id:data:secret:completion:)`
159 |     func storeWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
160 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
161 |             self.storeWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
162 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:167:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
164 |
165 |     /// Combine wrapper for `storeViaBiometric(id:data:keyId:willBeginNetworkRequests:completion:)`
166 |     func storeViaBiometric(id: StorageID, data: Data, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
167 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
168 |             self.storeViaBiometric(id: id, data: data, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
169 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:174:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
171 |
172 |     /// Combine wrapper for `storeViaBiometricWithNewKey(id:data:secret:completion:)`
173 |     func storeViaBiometricWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
174 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
175 |             self.storeViaBiometricWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
176 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:181:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
178 |
179 |     /// Combine wrapper for `get(id:keyId:secret:completion:)`
180 |     func get(id: StorageID, keyId: String, secret: String) -> Future<Data, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
181 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
182 |             self.get(id: id, keyId: keyId, secret: secret, completion: { promise($0) })
183 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:188:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
185 |
186 |     /// Combine wrapper for `getViaBiometric(id:keyId:willBeginNetworkRequests:completion:)`
187 |     func getViaBiometric(id: StorageID, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<TIMESBiometricLoadResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
188 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
189 |             self.getViaBiometric(id: id, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
190 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:195:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
192 |
193 |     /// Combine wrapper for `enableBiometric(keyId:secret:completion:)`
194 |     func enableBiometric(keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
195 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
196 |             self.enableBiometric(keyId: keyId, secret: secret, completion: { promise($0) })
197 |         }
[7/24] Compiling TIMEncryptedStorage TIMEncryptedStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:145:77: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
145 |     func store(id: StorageID, data: Data, keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                  `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
146 |         Future { promise in
147 |             self.store(id: id, data: data, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:152:81: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
150 |
151 |     /// Combine wrapper for `store(id:data:keyId:longSecret:completion:)`
152 |     func store(id: StorageID, data: Data, keyId: String, longSecret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                      `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
153 |         Future { promise in
154 |             self.store(id: id, data: data, keyId: keyId, longSecret: longSecret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:159:72: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
157 |
158 |     /// Combine wrapper for `storeWithNewKey(id:data:secret:completion:)`
159 |     func storeWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                             `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
160 |         Future { promise in
161 |             self.storeWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:166:137: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
164 |
165 |     /// Combine wrapper for `storeViaBiometric(id:data:keyId:willBeginNetworkRequests:completion:)`
166 |     func storeViaBiometric(id: StorageID, data: Data, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                                                                              `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
167 |         Future { promise in
168 |             self.storeViaBiometric(id: id, data: data, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:173:84: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
171 |
172 |     /// Combine wrapper for `storeViaBiometricWithNewKey(id:data:secret:completion:)`
173 |     func storeViaBiometricWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
174 |         Future { promise in
175 |             self.storeViaBiometricWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:180:63: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
178 |
179 |     /// Combine wrapper for `get(id:keyId:secret:completion:)`
180 |     func get(id: StorageID, keyId: String, secret: String) -> Future<Data, TIMEncryptedStorageError> {
    |          |                                                    `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
181 |         Future { promise in
182 |             self.get(id: id, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:187:123: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
185 |
186 |     /// Combine wrapper for `getViaBiometric(id:keyId:willBeginNetworkRequests:completion:)`
187 |     func getViaBiometric(id: StorageID, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<TIMESBiometricLoadResult, TIMEncryptedStorageError> {
    |          |                                                                                                                `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
188 |         Future { promise in
189 |             self.getViaBiometric(id: id, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:194:60: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
192 |
193 |     /// Combine wrapper for `enableBiometric(keyId:secret:completion:)`
194 |     func enableBiometric(keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                 `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
195 |         Future { promise in
196 |             self.enableBiometric(keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:146:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
145 |     func store(id: StorageID, data: Data, keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
146 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
147 |             self.store(id: id, data: data, keyId: keyId, secret: secret, completion: { promise($0) })
148 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:153:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
150 |
151 |     /// Combine wrapper for `store(id:data:keyId:longSecret:completion:)`
152 |     func store(id: StorageID, data: Data, keyId: String, longSecret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
153 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
154 |             self.store(id: id, data: data, keyId: keyId, longSecret: longSecret, completion: { promise($0) })
155 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:160:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
157 |
158 |     /// Combine wrapper for `storeWithNewKey(id:data:secret:completion:)`
159 |     func storeWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
160 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
161 |             self.storeWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
162 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:167:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
164 |
165 |     /// Combine wrapper for `storeViaBiometric(id:data:keyId:willBeginNetworkRequests:completion:)`
166 |     func storeViaBiometric(id: StorageID, data: Data, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
167 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
168 |             self.storeViaBiometric(id: id, data: data, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
169 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:174:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
171 |
172 |     /// Combine wrapper for `storeViaBiometricWithNewKey(id:data:secret:completion:)`
173 |     func storeViaBiometricWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
174 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
175 |             self.storeViaBiometricWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
176 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:181:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
178 |
179 |     /// Combine wrapper for `get(id:keyId:secret:completion:)`
180 |     func get(id: StorageID, keyId: String, secret: String) -> Future<Data, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
181 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
182 |             self.get(id: id, keyId: keyId, secret: secret, completion: { promise($0) })
183 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:188:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
185 |
186 |     /// Combine wrapper for `getViaBiometric(id:keyId:willBeginNetworkRequests:completion:)`
187 |     func getViaBiometric(id: StorageID, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<TIMESBiometricLoadResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
188 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
189 |             self.getViaBiometric(id: id, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
190 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:195:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
192 |
193 |     /// Combine wrapper for `enableBiometric(keyId:secret:completion:)`
194 |     func enableBiometric(keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
195 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
196 |             self.enableBiometric(keyId: keyId, secret: secret, completion: { promise($0) })
197 |         }
[8/24] Compiling TIMEncryptedStorage CBC.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:12:35: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
   |                                   |- error: 'AES' is only available in macOS 10.15 or newer
   |                                   `- note: add 'if #available' version check
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:13:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
15 |             if let encryptedContent = sealedData.combined {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:14:44: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
   |                                            |- error: 'AES' is only available in macOS 10.15 or newer
   |                                            `- note: add 'if #available' version check
15 |             if let encryptedContent = sealedData.combined {
16 |                 return encryptedContent
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:24:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:26:47: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
   |                                               |- error: 'AES' is only available in macOS 10.15 or newer
   |                                               `- note: add 'if #available' version check
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
28 |             } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:27:38: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
   |                                      |- error: 'AES' is only available in macOS 10.15 or newer
   |                                      `- note: add 'if #available' version check
28 |             } catch let error {
29 |                 throw TIMEncryptedStorageError.failedToDecryptData(error)
[9/24] Compiling TIMEncryptedStorage GCM.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:12:35: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
   |                                   |- error: 'AES' is only available in macOS 10.15 or newer
   |                                   `- note: add 'if #available' version check
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:13:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
15 |             if let encryptedContent = sealedData.combined {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:14:44: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
   |                                            |- error: 'AES' is only available in macOS 10.15 or newer
   |                                            `- note: add 'if #available' version check
15 |             if let encryptedContent = sealedData.combined {
16 |                 return encryptedContent
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:24:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:26:47: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
   |                                               |- error: 'AES' is only available in macOS 10.15 or newer
   |                                               `- note: add 'if #available' version check
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
28 |             } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:27:38: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
   |                                      |- error: 'AES' is only available in macOS 10.15 or newer
   |                                      `- note: add 'if #available' version check
28 |             } catch let error {
29 |                 throw TIMEncryptedStorageError.failedToDecryptData(error)
[10/24] Compiling TIMEncryptedStorage TIMESCryptor.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:12:35: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
   |                                   |- error: 'AES' is only available in macOS 10.15 or newer
   |                                   `- note: add 'if #available' version check
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:13:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
15 |             if let encryptedContent = sealedData.combined {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:14:44: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
   |                                            |- error: 'AES' is only available in macOS 10.15 or newer
   |                                            `- note: add 'if #available' version check
15 |             if let encryptedContent = sealedData.combined {
16 |                 return encryptedContent
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:24:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:26:47: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
   |                                               |- error: 'AES' is only available in macOS 10.15 or newer
   |                                               `- note: add 'if #available' version check
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
28 |             } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:27:38: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
   |                                      |- error: 'AES' is only available in macOS 10.15 or newer
   |                                      `- note: add 'if #available' version check
28 |             } catch let error {
29 |                 throw TIMEncryptedStorageError.failedToDecryptData(error)
[11/24] Compiling TIMEncryptedStorage TIMESBiometricEnableResult.swift
[12/24] Compiling TIMEncryptedStorage TIMESEncryptionMethod.swift
[13/24] Compiling TIMEncryptedStorage IVGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Helpers/Test/SecureStorageMock.swift:5:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 3 | struct SecureStorageMockItem: TIMSecureStorageItem {
 4 |     var id: String
 5 |     private (set) var isBioProtected: Bool = false
   |            `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 6 |
 7 |     init(id: String) {
[14/24] Compiling TIMEncryptedStorage SecureStorageMock.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Helpers/Test/SecureStorageMock.swift:5:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 3 | struct SecureStorageMockItem: TIMSecureStorageItem {
 4 |     var id: String
 5 |     private (set) var isBioProtected: Bool = false
   |            `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 6 |
 7 |     init(id: String) {
[15/24] Compiling TIMEncryptedStorage TIMESKeyCreationResult.swift
[16/24] Compiling TIMEncryptedStorage TIMErrorModels.swift
[17/24] Compiling TIMEncryptedStorage TIMKeychainStoreItem.swift
[18/24] Compiling TIMEncryptedStorage TIMSecureStorage.swift
[19/24] Compiling TIMEncryptedStorage URLSession+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Helpers/Test/URLSessionMockProtocol.swift:43:23: warning: static property 'resultsForUrls' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
41 | struct URLSessionStubResults {
42 |     /// Contains stub results for specific URLs, which will be used when mocking `URLSession` via `URLSessionMockProtocol`
43 |     public static var resultsForUrls: [URL?: URLSessionStubResult] = [:]
   |                       |- warning: static property 'resultsForUrls' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'resultsForUrls' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'resultsForUrls' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 |
45 |     /// Resets the stub storage
[20/24] Compiling TIMEncryptedStorage URLSessionMockProtocol.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Helpers/Test/URLSessionMockProtocol.swift:43:23: warning: static property 'resultsForUrls' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
41 | struct URLSessionStubResults {
42 |     /// Contains stub results for specific URLs, which will be used when mocking `URLSession` via `URLSessionMockProtocol`
43 |     public static var resultsForUrls: [URL?: URLSessionStubResult] = [:]
   |                       |- warning: static property 'resultsForUrls' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: convert 'resultsForUrls' to a 'let' constant to make 'Sendable' shared state immutable
   |                       |- note: add '@MainActor' to make static property 'resultsForUrls' part of global actor 'MainActor'
   |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
44 |
45 |     /// Resets the stub storage
[21/24] Compiling TIMEncryptedStorage TIMKeyServiceProtocol.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:34:51: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
32 |     /// Combine wrapper for `getKey` function.
33 |     @available(iOS 13, *)
34 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
35 |
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:38:68: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
37 |     @available(iOS 13, *)
38 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
39 |
40 |     /// Combine wrapper for `createKey` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:42:39: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
40 |     /// Combine wrapper for `createKey` function.
41 |     @available(iOS 13, *)
42 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
43 |     #endif
44 | }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/Keychain/TIMKeychain.swift:28:30: error: 'biometryAny' is only available in macOS 10.13.4 or newer
  5 | /// This wrapper is mainly for use internally in the TIMEncryptedStorage packages,
  6 | /// but it might come in handy as public in rare cases.
  7 | public final class TIMKeychain : TIMSecureStorage {
    |                    `- note: add @available attribute to enclosing class
  8 |
  9 |     public init() {
    :
 23 |     }
 24 |
 25 |     public func storeBiometricProtected(data: Data, item: TIMKeychainStorageItem) -> Result<Void, TIMSecureStorageError> {
    |                 `- note: add @available attribute to enclosing instance method
 26 |         let biometricFlag: SecAccessControlCreateFlags
 27 |         if #available(iOS 11.3, *) {
 28 |             biometricFlag = .biometryAny
    |                              |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
    |                              `- note: add 'if #available' version check
 29 |         } else {
 30 |             biometricFlag = .touchIDAny
[22/24] Compiling TIMEncryptedStorage TIMKeychain.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:34:51: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
32 |     /// Combine wrapper for `getKey` function.
33 |     @available(iOS 13, *)
34 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
35 |
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:38:68: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
37 |     @available(iOS 13, *)
38 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
39 |
40 |     /// Combine wrapper for `createKey` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:42:39: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
40 |     /// Combine wrapper for `createKey` function.
41 |     @available(iOS 13, *)
42 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
43 |     #endif
44 | }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/Keychain/TIMKeychain.swift:28:30: error: 'biometryAny' is only available in macOS 10.13.4 or newer
  5 | /// This wrapper is mainly for use internally in the TIMEncryptedStorage packages,
  6 | /// but it might come in handy as public in rare cases.
  7 | public final class TIMKeychain : TIMSecureStorage {
    |                    `- note: add @available attribute to enclosing class
  8 |
  9 |     public init() {
    :
 23 |     }
 24 |
 25 |     public func storeBiometricProtected(data: Data, item: TIMKeychainStorageItem) -> Result<Void, TIMSecureStorageError> {
    |                 `- note: add @available attribute to enclosing instance method
 26 |         let biometricFlag: SecAccessControlCreateFlags
 27 |         if #available(iOS 11.3, *) {
 28 |             biometricFlag = .biometryAny
    |                              |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
    |                              `- note: add 'if #available' version check
 29 |         } else {
 30 |             biometricFlag = .touchIDAny
[23/24] Compiling TIMEncryptedStorage TIMKeyServiceModels.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:122:51: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
123 |         Future { promise in
124 |             self.getKey(secret: secret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:128:68: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
126 |     }
127 |
128 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
129 |         Future { promise in
130 |             self.getKeyViaLongSecret(longSecret: longSecret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:134:39: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
132 |     }
133 |
134 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
135 |         Future { promise in
136 |             self.createKey(secret: secret, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:63:27: warning: capture of 'self' with non-sendable type 'TIMKeyService?' in a '@Sendable' closure
 22 | /// This wrapper is mainly for use internally in the TIMEncryptedStorage packages,
 23 | /// but it might come in handy in rare cases.
 24 | public final class TIMKeyService : TIMKeyServiceProtocol {
    |                    `- note: class 'TIMKeyService' does not conform to the 'Sendable' protocol
 25 |
 26 |     /// The configuration of the key service
    :
 61 |
 62 |             let task = urlSession.dataTask(with: request) { [weak self] (data, response, error) in
 63 |                 guard let self else { fatalError("❗️No reference to self in \(#function)") }
    |                           `- warning: capture of 'self' with non-sendable type 'TIMKeyService?' in a '@Sendable' closure
 64 |
 65 |                 guard let response = response as? HTTPURLResponse else {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:71:25: warning: capture of 'performRequest(with:retryCount:)' with non-sendable type '<T where T : Decodable> (with: URLSession, retryCount: Int) -> ()' in a '@Sendable' closure
 69 |                         let newSession = URLSession(configuration: self.urlSessionConfiguration)
 70 |                         print("⚠️ TIMEncryptedStorage: Created a new URLSession to retry the request")
 71 |                         performRequest(with: newSession, retryCount: retryCount - 1)
    |                         `- warning: capture of 'performRequest(with:retryCount:)' with non-sendable type '<T where T : Decodable> (with: URLSession, retryCount: Int) -> ()' in a '@Sendable' closure
 72 |                     } else {
 73 |                         // If no retries left, return the error
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:75:29: warning: capture of 'completion' with non-sendable type '(Result<T, TIMKeyServiceError>) -> Void' in a '@Sendable' closure
 73 |                         // If no retries left, return the error
 74 |                         DispatchQueue.main.async {
 75 |                             completion(.failure(mapKeyServiceError(error)))
    |                             |- warning: capture of 'completion' with non-sendable type '(Result<T, TIMKeyServiceError>) -> Void' in a '@Sendable' closure
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 76 |                         }
 77 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:56:14: warning: concurrently-executed local function 'performRequest(with:retryCount:)' must be marked as '@Sendable'
 54 |     private func request<T: Decodable>(_ url: URL, parameters: [String: String], completion: @escaping (Result<T, TIMKeyServiceError>) -> Void) {
 55 |         // Helper method to perform the request and handle retries
 56 |         func performRequest(with urlSession: URLSession, retryCount: Int) {
    |              `- warning: concurrently-executed local function 'performRequest(with:retryCount:)' must be marked as '@Sendable'
 57 |             var request = URLRequest(url: url)
 58 |             request.httpMethod = "POST"
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:123:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
123 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
124 |             self.getKey(secret: secret, keyId: keyId, completion: promise)
125 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:129:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
126 |     }
127 |
128 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
129 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
130 |             self.getKeyViaLongSecret(longSecret: longSecret, keyId: keyId, completion: promise)
131 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:135:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
132 |     }
133 |
134 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
135 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
136 |             self.createKey(secret: secret, completion: promise)
137 |         }
[24/24] Compiling TIMEncryptedStorage TIMKeyService.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:122:51: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
123 |         Future { promise in
124 |             self.getKey(secret: secret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:128:68: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
126 |     }
127 |
128 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
129 |         Future { promise in
130 |             self.getKeyViaLongSecret(longSecret: longSecret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:134:39: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
132 |     }
133 |
134 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
135 |         Future { promise in
136 |             self.createKey(secret: secret, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:63:27: warning: capture of 'self' with non-sendable type 'TIMKeyService?' in a '@Sendable' closure
 22 | /// This wrapper is mainly for use internally in the TIMEncryptedStorage packages,
 23 | /// but it might come in handy in rare cases.
 24 | public final class TIMKeyService : TIMKeyServiceProtocol {
    |                    `- note: class 'TIMKeyService' does not conform to the 'Sendable' protocol
 25 |
 26 |     /// The configuration of the key service
    :
 61 |
 62 |             let task = urlSession.dataTask(with: request) { [weak self] (data, response, error) in
 63 |                 guard let self else { fatalError("❗️No reference to self in \(#function)") }
    |                           `- warning: capture of 'self' with non-sendable type 'TIMKeyService?' in a '@Sendable' closure
 64 |
 65 |                 guard let response = response as? HTTPURLResponse else {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:71:25: warning: capture of 'performRequest(with:retryCount:)' with non-sendable type '<T where T : Decodable> (with: URLSession, retryCount: Int) -> ()' in a '@Sendable' closure
 69 |                         let newSession = URLSession(configuration: self.urlSessionConfiguration)
 70 |                         print("⚠️ TIMEncryptedStorage: Created a new URLSession to retry the request")
 71 |                         performRequest(with: newSession, retryCount: retryCount - 1)
    |                         `- warning: capture of 'performRequest(with:retryCount:)' with non-sendable type '<T where T : Decodable> (with: URLSession, retryCount: Int) -> ()' in a '@Sendable' closure
 72 |                     } else {
 73 |                         // If no retries left, return the error
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:75:29: warning: capture of 'completion' with non-sendable type '(Result<T, TIMKeyServiceError>) -> Void' in a '@Sendable' closure
 73 |                         // If no retries left, return the error
 74 |                         DispatchQueue.main.async {
 75 |                             completion(.failure(mapKeyServiceError(error)))
    |                             |- warning: capture of 'completion' with non-sendable type '(Result<T, TIMKeyServiceError>) -> Void' in a '@Sendable' closure
    |                             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
 76 |                         }
 77 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:56:14: warning: concurrently-executed local function 'performRequest(with:retryCount:)' must be marked as '@Sendable'
 54 |     private func request<T: Decodable>(_ url: URL, parameters: [String: String], completion: @escaping (Result<T, TIMKeyServiceError>) -> Void) {
 55 |         // Helper method to perform the request and handle retries
 56 |         func performRequest(with urlSession: URLSession, retryCount: Int) {
    |              `- warning: concurrently-executed local function 'performRequest(with:retryCount:)' must be marked as '@Sendable'
 57 |             var request = URLRequest(url: url)
 58 |             request.httpMethod = "POST"
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:123:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
123 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
124 |             self.getKey(secret: secret, keyId: keyId, completion: promise)
125 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:129:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
126 |     }
127 |
128 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
129 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
130 |             self.getKeyViaLongSecret(longSecret: longSecret, keyId: keyId, completion: promise)
131 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:135:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
132 |     }
133 |
134 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
135 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
136 |             self.createKey(secret: secret, completion: promise)
137 |         }
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[2/21] Emitting module TIMEncryptedStorage
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Helpers/Test/SecureStorageMock.swift:5:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 3 | struct SecureStorageMockItem: TIMSecureStorageItem {
 4 |     var id: String
 5 |     private (set) var isBioProtected: Bool = false
   |            `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 6 |
 7 |     init(id: String) {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:122:51: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
123 |         Future { promise in
124 |             self.getKey(secret: secret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:128:68: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
126 |     }
127 |
128 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
129 |         Future { promise in
130 |             self.getKeyViaLongSecret(longSecret: longSecret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:134:39: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
132 |     }
133 |
134 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
135 |         Future { promise in
136 |             self.createKey(secret: secret, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:34:51: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
32 |     /// Combine wrapper for `getKey` function.
33 |     @available(iOS 13, *)
34 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
35 |
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:38:68: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
37 |     @available(iOS 13, *)
38 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
39 |
40 |     /// Combine wrapper for `createKey` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:42:39: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
40 |     /// Combine wrapper for `createKey` function.
41 |     @available(iOS 13, *)
42 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
43 |     #endif
44 | }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:145:77: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
145 |     func store(id: StorageID, data: Data, keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                  `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
146 |         Future { promise in
147 |             self.store(id: id, data: data, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:152:81: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
150 |
151 |     /// Combine wrapper for `store(id:data:keyId:longSecret:completion:)`
152 |     func store(id: StorageID, data: Data, keyId: String, longSecret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                      `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
153 |         Future { promise in
154 |             self.store(id: id, data: data, keyId: keyId, longSecret: longSecret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:159:72: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
157 |
158 |     /// Combine wrapper for `storeWithNewKey(id:data:secret:completion:)`
159 |     func storeWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                             `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
160 |         Future { promise in
161 |             self.storeWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:166:137: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
164 |
165 |     /// Combine wrapper for `storeViaBiometric(id:data:keyId:willBeginNetworkRequests:completion:)`
166 |     func storeViaBiometric(id: StorageID, data: Data, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                                                                              `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
167 |         Future { promise in
168 |             self.storeViaBiometric(id: id, data: data, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:173:84: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
171 |
172 |     /// Combine wrapper for `storeViaBiometricWithNewKey(id:data:secret:completion:)`
173 |     func storeViaBiometricWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
174 |         Future { promise in
175 |             self.storeViaBiometricWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:180:63: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
178 |
179 |     /// Combine wrapper for `get(id:keyId:secret:completion:)`
180 |     func get(id: StorageID, keyId: String, secret: String) -> Future<Data, TIMEncryptedStorageError> {
    |          |                                                    `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
181 |         Future { promise in
182 |             self.get(id: id, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:187:123: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
185 |
186 |     /// Combine wrapper for `getViaBiometric(id:keyId:willBeginNetworkRequests:completion:)`
187 |     func getViaBiometric(id: StorageID, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<TIMESBiometricLoadResult, TIMEncryptedStorageError> {
    |          |                                                                                                                `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
188 |         Future { promise in
189 |             self.getViaBiometric(id: id, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:194:60: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
192 |
193 |     /// Combine wrapper for `enableBiometric(keyId:secret:completion:)`
194 |     func enableBiometric(keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                 `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
195 |         Future { promise in
196 |             self.enableBiometric(keyId: keyId, secret: secret, completion: { promise($0) })
[3/23] Compiling TIMEncryptedStorage CBC.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:12:35: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
   |                                   |- error: 'AES' is only available in macOS 10.15 or newer
   |                                   `- note: add 'if #available' version check
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:13:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
15 |             if let encryptedContent = sealedData.combined {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:14:44: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
   |                                            |- error: 'AES' is only available in macOS 10.15 or newer
   |                                            `- note: add 'if #available' version check
15 |             if let encryptedContent = sealedData.combined {
16 |                 return encryptedContent
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:24:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:26:47: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
   |                                               |- error: 'AES' is only available in macOS 10.15 or newer
   |                                               `- note: add 'if #available' version check
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
28 |             } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:27:38: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
   |                                      |- error: 'AES' is only available in macOS 10.15 or newer
   |                                      `- note: add 'if #available' version check
28 |             } catch let error {
29 |                 throw TIMEncryptedStorageError.failedToDecryptData(error)
[4/23] Compiling TIMEncryptedStorage GCM.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:12:35: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
   |                                   |- error: 'AES' is only available in macOS 10.15 or newer
   |                                   `- note: add 'if #available' version check
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:13:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
15 |             if let encryptedContent = sealedData.combined {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:14:44: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
   |                                            |- error: 'AES' is only available in macOS 10.15 or newer
   |                                            `- note: add 'if #available' version check
15 |             if let encryptedContent = sealedData.combined {
16 |                 return encryptedContent
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:24:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:26:47: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
   |                                               |- error: 'AES' is only available in macOS 10.15 or newer
   |                                               `- note: add 'if #available' version check
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
28 |             } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:27:38: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
   |                                      |- error: 'AES' is only available in macOS 10.15 or newer
   |                                      `- note: add 'if #available' version check
28 |             } catch let error {
29 |                 throw TIMEncryptedStorageError.failedToDecryptData(error)
[5/23] Compiling TIMEncryptedStorage TIMESCryptor.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:12:35: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
   |                                   |- error: 'AES' is only available in macOS 10.15 or newer
   |                                   `- note: add 'if #available' version check
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:13:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
15 |             if let encryptedContent = sealedData.combined {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:14:44: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
12 |             let nonce = CryptoKit.AES.GCM.Nonce()
13 |             let symmetricKey = SymmetricKey(data: key)
14 |             let sealedData = try CryptoKit.AES.GCM.seal(data, using: symmetricKey, nonce: nonce)
   |                                            |- error: 'AES' is only available in macOS 10.15 or newer
   |                                            `- note: add 'if #available' version check
15 |             if let encryptedContent = sealedData.combined {
16 |                 return encryptedContent
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:24:32: error: 'SymmetricKey' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
   |                                |- error: 'SymmetricKey' is only available in macOS 10.15 or newer
   |                                `- note: add 'if #available' version check
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:26:47: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
   |                                               |- error: 'AES' is only available in macOS 10.15 or newer
   |                                               `- note: add 'if #available' version check
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
28 |             } catch let error {
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Cryptors/AES/GCM.swift:27:38: error: 'AES' is only available in macOS 10.15 or newer
 7 |     #if canImport(CryptoKit)
 8 |     @available(iOS 13, *)
 9 |     struct GCM  {
   |            `- note: add @available attribute to enclosing struct
10 |         @available(iOS 13, *)
11 |         static func encrypt(key: Data, data: Data) throws -> Data {
   :
21 |
22 |         @available(iOS 13, *)
23 |         static func decrypt(key: Data, data: Data) throws -> Data {
   |                     `- note: add @available attribute to enclosing static method
24 |             let symmetricKey = SymmetricKey(data: key)
25 |             do {
26 |                 let sealedBox = try CryptoKit.AES.GCM.SealedBox(combined: data)
27 |                 return try CryptoKit.AES.GCM.open(sealedBox, using: symmetricKey)
   |                                      |- error: 'AES' is only available in macOS 10.15 or newer
   |                                      `- note: add 'if #available' version check
28 |             } catch let error {
29 |                 throw TIMEncryptedStorageError.failedToDecryptData(error)
[6/23] Compiling TIMEncryptedStorage IVGenerator.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Helpers/Test/SecureStorageMock.swift:5:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 3 | struct SecureStorageMockItem: TIMSecureStorageItem {
 4 |     var id: String
 5 |     private (set) var isBioProtected: Bool = false
   |            `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 6 |
 7 |     init(id: String) {
[7/23] Compiling TIMEncryptedStorage SecureStorageMock.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/Helpers/Test/SecureStorageMock.swift:5:12: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 3 | struct SecureStorageMockItem: TIMSecureStorageItem {
 4 |     var id: String
 5 |     private (set) var isBioProtected: Bool = false
   |            `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 6 |
 7 |     init(id: String) {
[8/23] Compiling TIMEncryptedStorage TIMESBiometricEnableResult.swift
[9/23] Compiling TIMEncryptedStorage TIMESEncryptionMethod.swift
[10/23] Compiling TIMEncryptedStorage TIMKeychainStoreItem.swift
[11/23] Compiling TIMEncryptedStorage TIMSecureStorage.swift
[12/23] Compiling TIMEncryptedStorage TIMESKeyCreationResult.swift
[13/23] Compiling TIMEncryptedStorage TIMErrorModels.swift
[14/23] Compiling TIMEncryptedStorage OSStatus+Extensions.swift
[15/23] Compiling TIMEncryptedStorage TIMKeyModel+Extensions.swift
[16/23] Compiling TIMEncryptedStorage URLSession+Extensions.swift
[17/23] Compiling TIMEncryptedStorage URLSessionMockProtocol.swift
[18/23] Compiling TIMEncryptedStorage TIMKeyServiceModels.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:122:51: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
123 |         Future { promise in
124 |             self.getKey(secret: secret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:128:68: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
126 |     }
127 |
128 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
129 |         Future { promise in
130 |             self.getKeyViaLongSecret(longSecret: longSecret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:134:39: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
132 |     }
133 |
134 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
135 |         Future { promise in
136 |             self.createKey(secret: secret, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:123:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
123 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
124 |             self.getKey(secret: secret, keyId: keyId, completion: promise)
125 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:129:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
126 |     }
127 |
128 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
129 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
130 |             self.getKeyViaLongSecret(longSecret: longSecret, keyId: keyId, completion: promise)
131 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:135:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
132 |     }
133 |
134 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
135 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
136 |             self.createKey(secret: secret, completion: promise)
137 |         }
[19/23] Compiling TIMEncryptedStorage TIMKeyService.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:122:51: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
123 |         Future { promise in
124 |             self.getKey(secret: secret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:128:68: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
126 |     }
127 |
128 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
129 |         Future { promise in
130 |             self.getKeyViaLongSecret(longSecret: longSecret, keyId: keyId, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:134:39: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
132 |     }
133 |
134 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
135 |         Future { promise in
136 |             self.createKey(secret: secret, completion: promise)
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:123:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
123 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
124 |             self.getKey(secret: secret, keyId: keyId, completion: promise)
125 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:129:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
126 |     }
127 |
128 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
129 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
130 |             self.getKeyViaLongSecret(longSecret: longSecret, keyId: keyId, completion: promise)
131 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyService.swift:135:9: error: 'Future' is only available in macOS 10.15 or newer
118 | // MARK: - New Combine wrappers 🥳
119 | @available(iOS 13, *)
120 | public extension TIMKeyService {
    |        `- note: add @available attribute to enclosing extension
121 |
122 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    :
132 |     }
133 |
134 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError> {
    |          `- note: add @available attribute to enclosing instance method
135 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
136 |             self.createKey(secret: secret, completion: promise)
137 |         }
[20/23] Compiling TIMEncryptedStorage TIMKeyServiceProtocol.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:34:51: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
32 |     /// Combine wrapper for `getKey` function.
33 |     @available(iOS 13, *)
34 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
35 |
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:38:68: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
37 |     @available(iOS 13, *)
38 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
39 |
40 |     /// Combine wrapper for `createKey` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:42:39: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
40 |     /// Combine wrapper for `createKey` function.
41 |     @available(iOS 13, *)
42 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
43 |     #endif
44 | }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/Keychain/TIMKeychain.swift:28:30: error: 'biometryAny' is only available in macOS 10.13.4 or newer
  5 | /// This wrapper is mainly for use internally in the TIMEncryptedStorage packages,
  6 | /// but it might come in handy as public in rare cases.
  7 | public final class TIMKeychain : TIMSecureStorage {
    |                    `- note: add @available attribute to enclosing class
  8 |
  9 |     public init() {
    :
 23 |     }
 24 |
 25 |     public func storeBiometricProtected(data: Data, item: TIMKeychainStorageItem) -> Result<Void, TIMSecureStorageError> {
    |                 `- note: add @available attribute to enclosing instance method
 26 |         let biometricFlag: SecAccessControlCreateFlags
 27 |         if #available(iOS 11.3, *) {
 28 |             biometricFlag = .biometryAny
    |                              |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
    |                              `- note: add 'if #available' version check
 29 |         } else {
 30 |             biometricFlag = .touchIDAny
[21/23] Compiling TIMEncryptedStorage TIMKeychain.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:34:51: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
32 |     /// Combine wrapper for `getKey` function.
33 |     @available(iOS 13, *)
34 |     func getKey(secret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                        `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
35 |
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:38:68: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
36 |     /// Combine wrapper for `getKeyViaLongSecret` function.
37 |     @available(iOS 13, *)
38 |     func getKeyViaLongSecret(longSecret: String, keyId: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                                                         `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
39 |
40 |     /// Combine wrapper for `createKey` function.
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/KeyService/TIMKeyServiceProtocol.swift:42:39: error: 'Future' is only available in macOS 10.15 or newer
 8 | ///
 9 | /// This protocol mainly exists for testing purposes.
10 | public protocol TIMKeyServiceProtocol {
   |                 `- note: add @available attribute to enclosing protocol
11 |     /// Gets a existing encryption key from the key server, by using a `secret`
12 |     /// - Parameters:
   :
40 |     /// Combine wrapper for `createKey` function.
41 |     @available(iOS 13, *)
42 |     func createKey(secret: String) -> Future<TIMKeyModel, TIMKeyServiceError>
   |          |                            `- error: 'Future' is only available in macOS 10.15 or newer
   |          `- note: add @available attribute to enclosing instance method
43 |     #endif
44 | }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/Keychain/TIMKeychain.swift:28:30: error: 'biometryAny' is only available in macOS 10.13.4 or newer
  5 | /// This wrapper is mainly for use internally in the TIMEncryptedStorage packages,
  6 | /// but it might come in handy as public in rare cases.
  7 | public final class TIMKeychain : TIMSecureStorage {
    |                    `- note: add @available attribute to enclosing class
  8 |
  9 |     public init() {
    :
 23 |     }
 24 |
 25 |     public func storeBiometricProtected(data: Data, item: TIMKeychainStorageItem) -> Result<Void, TIMSecureStorageError> {
    |                 `- note: add @available attribute to enclosing instance method
 26 |         let biometricFlag: SecAccessControlCreateFlags
 27 |         if #available(iOS 11.3, *) {
 28 |             biometricFlag = .biometryAny
    |                              |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
    |                              `- note: add 'if #available' version check
 29 |         } else {
 30 |             biometricFlag = .touchIDAny
[22/23] Compiling TIMEncryptedStorage TIMSecureStorageItem.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:145:77: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
145 |     func store(id: StorageID, data: Data, keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                  `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
146 |         Future { promise in
147 |             self.store(id: id, data: data, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:152:81: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
150 |
151 |     /// Combine wrapper for `store(id:data:keyId:longSecret:completion:)`
152 |     func store(id: StorageID, data: Data, keyId: String, longSecret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                      `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
153 |         Future { promise in
154 |             self.store(id: id, data: data, keyId: keyId, longSecret: longSecret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:159:72: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
157 |
158 |     /// Combine wrapper for `storeWithNewKey(id:data:secret:completion:)`
159 |     func storeWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                             `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
160 |         Future { promise in
161 |             self.storeWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:166:137: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
164 |
165 |     /// Combine wrapper for `storeViaBiometric(id:data:keyId:willBeginNetworkRequests:completion:)`
166 |     func storeViaBiometric(id: StorageID, data: Data, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                                                                              `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
167 |         Future { promise in
168 |             self.storeViaBiometric(id: id, data: data, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:173:84: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
171 |
172 |     /// Combine wrapper for `storeViaBiometricWithNewKey(id:data:secret:completion:)`
173 |     func storeViaBiometricWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
174 |         Future { promise in
175 |             self.storeViaBiometricWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:180:63: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
178 |
179 |     /// Combine wrapper for `get(id:keyId:secret:completion:)`
180 |     func get(id: StorageID, keyId: String, secret: String) -> Future<Data, TIMEncryptedStorageError> {
    |          |                                                    `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
181 |         Future { promise in
182 |             self.get(id: id, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:187:123: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
185 |
186 |     /// Combine wrapper for `getViaBiometric(id:keyId:willBeginNetworkRequests:completion:)`
187 |     func getViaBiometric(id: StorageID, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<TIMESBiometricLoadResult, TIMEncryptedStorageError> {
    |          |                                                                                                                `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
188 |         Future { promise in
189 |             self.getViaBiometric(id: id, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:194:60: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
192 |
193 |     /// Combine wrapper for `enableBiometric(keyId:secret:completion:)`
194 |     func enableBiometric(keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                 `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
195 |         Future { promise in
196 |             self.enableBiometric(keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:146:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
145 |     func store(id: StorageID, data: Data, keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
146 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
147 |             self.store(id: id, data: data, keyId: keyId, secret: secret, completion: { promise($0) })
148 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:153:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
150 |
151 |     /// Combine wrapper for `store(id:data:keyId:longSecret:completion:)`
152 |     func store(id: StorageID, data: Data, keyId: String, longSecret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
153 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
154 |             self.store(id: id, data: data, keyId: keyId, longSecret: longSecret, completion: { promise($0) })
155 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:160:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
157 |
158 |     /// Combine wrapper for `storeWithNewKey(id:data:secret:completion:)`
159 |     func storeWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
160 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
161 |             self.storeWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
162 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:167:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
164 |
165 |     /// Combine wrapper for `storeViaBiometric(id:data:keyId:willBeginNetworkRequests:completion:)`
166 |     func storeViaBiometric(id: StorageID, data: Data, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
167 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
168 |             self.storeViaBiometric(id: id, data: data, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
169 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:174:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
171 |
172 |     /// Combine wrapper for `storeViaBiometricWithNewKey(id:data:secret:completion:)`
173 |     func storeViaBiometricWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
174 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
175 |             self.storeViaBiometricWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
176 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:181:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
178 |
179 |     /// Combine wrapper for `get(id:keyId:secret:completion:)`
180 |     func get(id: StorageID, keyId: String, secret: String) -> Future<Data, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
181 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
182 |             self.get(id: id, keyId: keyId, secret: secret, completion: { promise($0) })
183 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:188:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
185 |
186 |     /// Combine wrapper for `getViaBiometric(id:keyId:willBeginNetworkRequests:completion:)`
187 |     func getViaBiometric(id: StorageID, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<TIMESBiometricLoadResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
188 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
189 |             self.getViaBiometric(id: id, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
190 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:195:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
192 |
193 |     /// Combine wrapper for `enableBiometric(keyId:secret:completion:)`
194 |     func enableBiometric(keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
195 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
196 |             self.enableBiometric(keyId: keyId, secret: secret, completion: { promise($0) })
197 |         }
[23/23] Compiling TIMEncryptedStorage TIMEncryptedStorage.swift
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:145:77: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
145 |     func store(id: StorageID, data: Data, keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                  `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
146 |         Future { promise in
147 |             self.store(id: id, data: data, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:152:81: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
150 |
151 |     /// Combine wrapper for `store(id:data:keyId:longSecret:completion:)`
152 |     func store(id: StorageID, data: Data, keyId: String, longSecret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                      `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
153 |         Future { promise in
154 |             self.store(id: id, data: data, keyId: keyId, longSecret: longSecret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:159:72: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
157 |
158 |     /// Combine wrapper for `storeWithNewKey(id:data:secret:completion:)`
159 |     func storeWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                             `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
160 |         Future { promise in
161 |             self.storeWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:166:137: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
164 |
165 |     /// Combine wrapper for `storeViaBiometric(id:data:keyId:willBeginNetworkRequests:completion:)`
166 |     func storeViaBiometric(id: StorageID, data: Data, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                                                                                              `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
167 |         Future { promise in
168 |             self.storeViaBiometric(id: id, data: data, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:173:84: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
171 |
172 |     /// Combine wrapper for `storeViaBiometricWithNewKey(id:data:secret:completion:)`
173 |     func storeViaBiometricWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          |                                                                         `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
174 |         Future { promise in
175 |             self.storeViaBiometricWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:180:63: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
178 |
179 |     /// Combine wrapper for `get(id:keyId:secret:completion:)`
180 |     func get(id: StorageID, keyId: String, secret: String) -> Future<Data, TIMEncryptedStorageError> {
    |          |                                                    `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
181 |         Future { promise in
182 |             self.get(id: id, keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:187:123: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
185 |
186 |     /// Combine wrapper for `getViaBiometric(id:keyId:willBeginNetworkRequests:completion:)`
187 |     func getViaBiometric(id: StorageID, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<TIMESBiometricLoadResult, TIMEncryptedStorageError> {
    |          |                                                                                                                `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
188 |         Future { promise in
189 |             self.getViaBiometric(id: id, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:194:60: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
192 |
193 |     /// Combine wrapper for `enableBiometric(keyId:secret:completion:)`
194 |     func enableBiometric(keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          |                                                 `- error: 'Future' is only available in macOS 10.15 or newer
    |          `- note: add @available attribute to enclosing instance method
195 |         Future { promise in
196 |             self.enableBiometric(keyId: keyId, secret: secret, completion: { promise($0) })
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:146:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
145 |     func store(id: StorageID, data: Data, keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
146 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
147 |             self.store(id: id, data: data, keyId: keyId, secret: secret, completion: { promise($0) })
148 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:153:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
150 |
151 |     /// Combine wrapper for `store(id:data:keyId:longSecret:completion:)`
152 |     func store(id: StorageID, data: Data, keyId: String, longSecret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
153 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
154 |             self.store(id: id, data: data, keyId: keyId, longSecret: longSecret, completion: { promise($0) })
155 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:160:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
157 |
158 |     /// Combine wrapper for `storeWithNewKey(id:data:secret:completion:)`
159 |     func storeWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
160 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
161 |             self.storeWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
162 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:167:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
164 |
165 |     /// Combine wrapper for `storeViaBiometric(id:data:keyId:willBeginNetworkRequests:completion:)`
166 |     func storeViaBiometric(id: StorageID, data: Data, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
167 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
168 |             self.storeViaBiometric(id: id, data: data, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
169 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:174:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
171 |
172 |     /// Combine wrapper for `storeViaBiometricWithNewKey(id:data:secret:completion:)`
173 |     func storeViaBiometricWithNewKey(id: StorageID, data: Data, secret: String) -> Future<TIMESKeyCreationResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
174 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
175 |             self.storeViaBiometricWithNewKey(id: id, data: data, secret: secret, completion: { promise($0) })
176 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:181:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
178 |
179 |     /// Combine wrapper for `get(id:keyId:secret:completion:)`
180 |     func get(id: StorageID, keyId: String, secret: String) -> Future<Data, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
181 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
182 |             self.get(id: id, keyId: keyId, secret: secret, completion: { promise($0) })
183 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:188:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
185 |
186 |     /// Combine wrapper for `getViaBiometric(id:keyId:willBeginNetworkRequests:completion:)`
187 |     func getViaBiometric(id: StorageID, keyId: String, willBeginNetworkRequests: TIMESWillBeginNetworkRequests? = nil) -> Future<TIMESBiometricLoadResult, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
188 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
189 |             self.getViaBiometric(id: id, keyId: keyId, willBeginNetworkRequests: willBeginNetworkRequests, completion: { promise($0) })
190 |         }
/Users/admin/builder/spi-builder-workspace/Sources/TIMEncryptedStorage/TIM/TIMEncryptedStorage.swift:195:9: error: 'Future' is only available in macOS 10.15 or newer
140 | // MARK: - New Combine wrappers 🥳
141 | @available(iOS 13, *)
142 | public extension TIMEncryptedStorage {
    |        `- note: add @available attribute to enclosing extension
143 |
144 |     /// Combine wrapper for `store(id:data:keyId:secret:completion:)`
    :
192 |
193 |     /// Combine wrapper for `enableBiometric(keyId:secret:completion:)`
194 |     func enableBiometric(keyId: String, secret: String) -> Future<Void, TIMEncryptedStorageError> {
    |          `- note: add @available attribute to enclosing instance method
195 |         Future { promise in
    |         |- error: 'Future' is only available in macOS 10.15 or newer
    |         `- note: add 'if #available' version check
196 |             self.enableBiometric(keyId: keyId, secret: secret, completion: { promise($0) })
197 |         }
BUILD FAILURE 6.1 macosSpm