The Swift Package Index logo.Swift Package Index

Build Information

Failed to build IBM Verify, reference v3.1.1 (1f800f), with Swift 6.2 for macOS (SPM) on 23 Apr 2026 04:04:26 UTC.

Build Command

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

Build Log

    |                                                                         `- note: add 'if #available' version check
328 |         }
329 |
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:331:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
329 |
330 |         if let data = resource.request.httpBody, let body = String(data: data, encoding: .utf8) {
331 |             logger.debug("➡️ Request [\(requestId.uuidString)] Body: \(body)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
332 |         }
333 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:331:44: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
329 |
330 |         if let data = resource.request.httpBody, let body = String(data: data, encoding: .utf8) {
331 |             logger.debug("➡️ Request [\(requestId.uuidString)] Body: \(body)")
    |                                       |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                       `- note: add 'if #available' version check
332 |         }
333 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:331:75: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
329 |
330 |         if let data = resource.request.httpBody, let body = String(data: data, encoding: .utf8) {
331 |             logger.debug("➡️ Request [\(requestId.uuidString)] Body: \(body)")
    |                                                                      |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                      `- note: add 'if #available' version check
332 |         }
333 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:336:53: error: 'data(for:delegate:)' is only available in macOS 12.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
334 |
335 |         // Perform the actual network request. `async let` allows `data` and `response` to be fetched concurrently if possible, but `try await` will wait for both to complete.
336 |         async let (data, response) = try await self.data(for: resource.request)
    |                                                     |- error: 'data(for:delegate:)' is only available in macOS 12.0 or newer
    |                                                     `- note: add 'if #available' version check
337 |
338 |         let resolvedData: Data
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:347:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
345 |         catch {
346 |             let latency = Date().timeIntervalSince(startTime) // Calculate latency even for errors.
347 |             logger.error("❌ Network Error [\(requestId.uuidString)]: URL: \(resource.request.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s, Error: \(error.localizedDescription)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
348 |
349 |             throw error // Re-throw the original network error.
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:347:47: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
345 |         catch {
346 |             let latency = Date().timeIntervalSince(startTime) // Calculate latency even for errors.
347 |             logger.error("❌ Network Error [\(requestId.uuidString)]: URL: \(resource.request.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s, Error: \(error.localizedDescription)")
    |                                             |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                             `- note: add 'if #available' version check
348 |
349 |             throw error // Re-throw the original network error.
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:347:78: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
345 |         catch {
346 |             let latency = Date().timeIntervalSince(startTime) // Calculate latency even for errors.
347 |             logger.error("❌ Network Error [\(requestId.uuidString)]: URL: \(resource.request.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s, Error: \(error.localizedDescription)")
    |                                                                            |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                            `- note: add 'if #available' version check
348 |
349 |             throw error // Re-throw the original network error.
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:347:137: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
345 |         catch {
346 |             let latency = Date().timeIntervalSince(startTime) // Calculate latency even for errors.
347 |             logger.error("❌ Network Error [\(requestId.uuidString)]: URL: \(resource.request.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s, Error: \(error.localizedDescription)")
    |                                                                                                                                       |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                                                       `- note: add 'if #available' version check
348 |
349 |             throw error // Re-throw the original network error.
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:347:181: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
345 |         catch {
346 |             let latency = Date().timeIntervalSince(startTime) // Calculate latency even for errors.
347 |             logger.error("❌ Network Error [\(requestId.uuidString)]: URL: \(resource.request.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s, Error: \(error.localizedDescription)")
    |                                                                                                                                                                                   |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                                                                                                   `- note: add 'if #available' version check
348 |
349 |             throw error // Re-throw the original network error.
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:355:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
353 |
354 |         guard let httpResponse = resolvedResponse as? HTTPURLResponse else {
355 |             logger.error("❌ Response [\(requestId.uuidString)] Error: Unknown response type for URL: \(resource.request.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
356 |             throw URLSessionError.unknown
357 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:355:42: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
353 |
354 |         guard let httpResponse = resolvedResponse as? HTTPURLResponse else {
355 |             logger.error("❌ Response [\(requestId.uuidString)] Error: Unknown response type for URL: \(resource.request.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s")
    |                                        |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                        `- note: add 'if #available' version check
356 |             throw URLSessionError.unknown
357 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:355:105: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
353 |
354 |         guard let httpResponse = resolvedResponse as? HTTPURLResponse else {
355 |             logger.error("❌ Response [\(requestId.uuidString)] Error: Unknown response type for URL: \(resource.request.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s")
    |                                                                                                       |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                       `- note: add 'if #available' version check
356 |             throw URLSessionError.unknown
357 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:355:164: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
353 |
354 |         guard let httpResponse = resolvedResponse as? HTTPURLResponse else {
355 |             logger.error("❌ Response [\(requestId.uuidString)] Error: Unknown response type for URL: \(resource.request.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s")
    |                                                                                                                                                                  |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                                                                                  `- note: add 'if #available' version check
356 |             throw URLSessionError.unknown
357 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:360:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
358 |
359 |         // Log the basic response information: status code, URL, and latency.
360 |         logger.info("⬇️ Response [\(requestId.uuidString)]: Status: \(httpResponse.statusCode), URL: \(httpResponse.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s")
    |                     |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                     `- note: add 'if #available' version check
361 |
362 |         #if DEBUG
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:360:40: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
358 |
359 |         // Log the basic response information: status code, URL, and latency.
360 |         logger.info("⬇️ Response [\(requestId.uuidString)]: Status: \(httpResponse.statusCode), URL: \(httpResponse.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s")
    |                                   |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                   `- note: add 'if #available' version check
361 |
362 |         #if DEBUG
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:360:74: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
358 |
359 |         // Log the basic response information: status code, URL, and latency.
360 |         logger.info("⬇️ Response [\(requestId.uuidString)]: Status: \(httpResponse.statusCode), URL: \(httpResponse.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s")
    |                                                                     |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                     `- note: add 'if #available' version check
361 |
362 |         #if DEBUG
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:360:107: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
358 |
359 |         // Log the basic response information: status code, URL, and latency.
360 |         logger.info("⬇️ Response [\(requestId.uuidString)]: Status: \(httpResponse.statusCode), URL: \(httpResponse.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s")
    |                                                                                                      |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                      `- note: add 'if #available' version check
361 |
362 |         #if DEBUG
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:360:162: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
358 |
359 |         // Log the basic response information: status code, URL, and latency.
360 |         logger.info("⬇️ Response [\(requestId.uuidString)]: Status: \(httpResponse.statusCode), URL: \(httpResponse.url?.absoluteString ?? "N/A"), Latency: \(String(format: "%.3f", latency))s")
    |                                                                                                                                                             |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                                                                             `- note: add 'if #available' version check
361 |
362 |         #if DEBUG
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:364:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
362 |         #if DEBUG
363 |         if let headers = httpResponse.allHeaderFields as? [String: Any] {
364 |             logger.debug("⬅️ Response [\(requestId.uuidString)] Headers: \(headers)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
365 |         }
366 |
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:364:45: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
362 |         #if DEBUG
363 |         if let headers = httpResponse.allHeaderFields as? [String: Any] {
364 |             logger.debug("⬅️ Response [\(requestId.uuidString)] Headers: \(headers)")
    |                                        |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                        `- note: add 'if #available' version check
365 |         }
366 |
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:364:79: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
362 |         #if DEBUG
363 |         if let headers = httpResponse.allHeaderFields as? [String: Any] {
364 |             logger.debug("⬅️ Response [\(requestId.uuidString)] Headers: \(headers)")
    |                                                                          |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                          `- note: add 'if #available' version check
365 |         }
366 |
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:368:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
366 |
367 |         if let body = String(data: resolvedData, encoding: .utf8) {
368 |             logger.debug("⬅️ Response [\(requestId.uuidString)] Body: \(body)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
369 |         }
370 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:368:45: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
366 |
367 |         if let body = String(data: resolvedData, encoding: .utf8) {
368 |             logger.debug("⬅️ Response [\(requestId.uuidString)] Body: \(body)")
    |                                        |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                        `- note: add 'if #available' version check
369 |         }
370 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:368:76: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
366 |
367 |         if let body = String(data: resolvedData, encoding: .utf8) {
368 |             logger.debug("⬅️ Response [\(requestId.uuidString)] Body: \(body)")
    |                                                                       |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                       `- note: add 'if #available' version check
369 |         }
370 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:375:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
373 |             let description = try await String(decoding: data, as: UTF8.self)
374 |
375 |             logger.error("❌ Response [\(requestId.uuidString)] Error: Unacceptable Status Code: \(httpResponse.statusCode) for URL: \(httpResponse.url?.absoluteString ?? "N/A"), Description: \(description)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
376 |
377 |             if httpResponse.statusCode == 401 {
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:375:42: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
373 |             let description = try await String(decoding: data, as: UTF8.self)
374 |
375 |             logger.error("❌ Response [\(requestId.uuidString)] Error: Unacceptable Status Code: \(httpResponse.statusCode) for URL: \(httpResponse.url?.absoluteString ?? "N/A"), Description: \(description)")
    |                                        |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                        `- note: add 'if #available' version check
376 |
377 |             if httpResponse.statusCode == 401 {
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:375:100: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
373 |             let description = try await String(decoding: data, as: UTF8.self)
374 |
375 |             logger.error("❌ Response [\(requestId.uuidString)] Error: Unacceptable Status Code: \(httpResponse.statusCode) for URL: \(httpResponse.url?.absoluteString ?? "N/A"), Description: \(description)")
    |                                                                                                  |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                  `- note: add 'if #available' version check
376 |
377 |             if httpResponse.statusCode == 401 {
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:375:136: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
373 |             let description = try await String(decoding: data, as: UTF8.self)
374 |
375 |             logger.error("❌ Response [\(requestId.uuidString)] Error: Unacceptable Status Code: \(httpResponse.statusCode) for URL: \(httpResponse.url?.absoluteString ?? "N/A"), Description: \(description)")
    |                                                                                                                                      |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                                                      `- note: add 'if #available' version check
376 |
377 |             if httpResponse.statusCode == 401 {
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:375:195: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
373 |             let description = try await String(decoding: data, as: UTF8.self)
374 |
375 |             logger.error("❌ Response [\(requestId.uuidString)] Error: Unacceptable Status Code: \(httpResponse.statusCode) for URL: \(httpResponse.url?.absoluteString ?? "N/A"), Description: \(description)")
    |                                                                                                                                                                                                 |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                                                                                                                 `- note: add 'if #available' version check
376 |
377 |             if httpResponse.statusCode == 401 {
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:384:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
382 |         }
383 |
384 |         logger.info("✅ Success [\(requestId.uuidString)]: Parsed data for URL: \(resource.request.url?.absoluteString ?? "N/A")")
    |                     |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                     `- note: add 'if #available' version check
385 |
386 |         return try await resource.parse(data, httpResponse).get()
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:384:36: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
382 |         }
383 |
384 |         logger.info("✅ Success [\(requestId.uuidString)]: Parsed data for URL: \(resource.request.url?.absoluteString ?? "N/A")")
    |                                  |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                  `- note: add 'if #available' version check
385 |
386 |         return try await resource.parse(data, httpResponse).get()
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:384:83: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
304 |
305 | // MARK: - URLSession Extension
306 | extension URLSession {
    | `- note: add '@available' attribute to enclosing extension
307 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
308 |     /// - Parameter resource: The `HTTPResource` containing the request.
    :
310 |     /// - Returns: The new session data task.
311 |     @discardableResult
312 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add '@available' attribute to enclosing instance method
313 |         logger.info("URLSession.dataTask - ENTRY")
314 |
    :
382 |         }
383 |
384 |         logger.info("✅ Success [\(requestId.uuidString)]: Parsed data for URL: \(resource.request.url?.absoluteString ?? "N/A")")
    |                                                                                 |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                 `- note: add 'if #available' version check
385 |
386 |         return try await resource.parse(data, httpResponse).get()
[24/52] Compiling Core Data+Extension.swift
[25/52] Compiling Core DateFormatter+Extension.swift
[26/52] Compiling Core DefaultValue+Extension.swift
[27/52] Compiling Core DefaultValuePropertyWrapper.swift
[28/52] Compiling Core JSONDecoder+Extension.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:139:25: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    |                         `- error: 'Logger' is only available in macOS 11.0 or newer
140 |     private let serviceName = Bundle.main.bundleIdentifier!
141 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:59:42: error: 'biometryAny' is only available in macOS 10.13.4 or newer
 26 |
 27 | /// Access control constants that dictate how a keychain item may be used.
 28 | public enum SecAccessControl: RawRepresentable {
    |             `- note: add '@available' attribute to enclosing enum
 29 |     public typealias RawValue = SecAccessControlCreateFlags
 30 |
    :
 53 |     ///
 54 |     /// - Parameter rawValue: The raw value to use for the new instance.
 55 |     public init?(rawValue: SecAccessControlCreateFlags) {
    |            `- note: add '@available' attribute to enclosing initializer
 56 |         switch rawValue {
 57 |         case SecAccessControlCreateFlags.devicePasscode:
 58 |             self = .devicePasscode
 59 |         case SecAccessControlCreateFlags.biometryAny:
    |                                          |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
    |                                          `- note: add 'if #available' version check
 60 |             self = .biometryAny
 61 |         case SecAccessControlCreateFlags.biometryCurrentSet:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:61:42: error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
 26 |
 27 | /// Access control constants that dictate how a keychain item may be used.
 28 | public enum SecAccessControl: RawRepresentable {
    |             `- note: add '@available' attribute to enclosing enum
 29 |     public typealias RawValue = SecAccessControlCreateFlags
 30 |
    :
 53 |     ///
 54 |     /// - Parameter rawValue: The raw value to use for the new instance.
 55 |     public init?(rawValue: SecAccessControlCreateFlags) {
    |            `- note: add '@available' attribute to enclosing initializer
 56 |         switch rawValue {
 57 |         case SecAccessControlCreateFlags.devicePasscode:
    :
 59 |         case SecAccessControlCreateFlags.biometryAny:
 60 |             self = .biometryAny
 61 |         case SecAccessControlCreateFlags.biometryCurrentSet:
    |                                          |- error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
    |                                          `- note: add 'if #available' version check
 62 |             self = .biometryCurrentSet
 63 |         case SecAccessControlCreateFlags.userPresence:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:75:48: error: 'biometryAny' is only available in macOS 10.13.4 or newer
 26 |
 27 | /// Access control constants that dictate how a keychain item may be used.
 28 | public enum SecAccessControl: RawRepresentable {
    |             `- note: add '@available' attribute to enclosing enum
 29 |     public typealias RawValue = SecAccessControlCreateFlags
 30 |
    :
 68 |     }
 69 |
 70 |     public var rawValue: RawValue {
    |                `- note: add '@available' attribute to enclosing property
 71 |         switch self {
 72 |         case .devicePasscode:
 73 |             return SecAccessControlCreateFlags.devicePasscode
 74 |         case .biometryAny:
 75 |             return SecAccessControlCreateFlags.biometryAny
    |                                                |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
    |                                                `- note: add 'if #available' version check
 76 |         case .biometryCurrentSet:
 77 |             return SecAccessControlCreateFlags.biometryCurrentSet
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:77:48: error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
 26 |
 27 | /// Access control constants that dictate how a keychain item may be used.
 28 | public enum SecAccessControl: RawRepresentable {
    |             `- note: add '@available' attribute to enclosing enum
 29 |     public typealias RawValue = SecAccessControlCreateFlags
 30 |
    :
 68 |     }
 69 |
 70 |     public var rawValue: RawValue {
    |                `- note: add '@available' attribute to enclosing property
 71 |         switch self {
 72 |         case .devicePasscode:
    :
 75 |             return SecAccessControlCreateFlags.biometryAny
 76 |         case .biometryCurrentSet:
 77 |             return SecAccessControlCreateFlags.biometryCurrentSet
    |                                                |- error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
    |                                                `- note: add 'if #available' version check
 78 |         case .userPresence:
 79 |             return SecAccessControlCreateFlags.userPresence
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:156:18: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
153 |
154 |     /// Initializes the `KeychainService`.
155 |     public override init() {
    |                     `- note: add '@available' attribute to enclosing initializer
156 |         logger = Logger(subsystem: serviceName, category: "keychain")
    |                  |- error: 'Logger' is only available in macOS 11.0 or newer
    |                  `- note: add 'if #available' version check
157 |     }
158 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:205:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
206 |             throw KeychainError.invalidKey
207 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:249:30: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
247 |             guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 |                 let message = error?.takeRetainedValue().localizedDescription ?? "Unknown access control error."
249 |                 logger.error("Error occurred applying access control. \(message, privacy: .public)")
    |                              |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                              `- note: add 'if #available' version check
250 |
251 |                 throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:249:72: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
247 |             guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 |                 let message = error?.takeRetainedValue().localizedDescription ?? "Unknown access control error."
249 |                 logger.error("Error occurred applying access control. \(message, privacy: .public)")
    |                                                                        |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                        `- note: add 'if #available' version check
250 |
251 |                 throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
263 |         switch status {
264 |         case errSecSuccess:
265 |             logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
    |                         |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                         `- note: add 'if #available' version check
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
263 |         switch status {
264 |         case errSecSuccess:
265 |             logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
    |                                 |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                 `- note: add 'if #available' version check
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:81: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
263 |         switch status {
264 |         case errSecSuccess:
265 |             logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
    |                                                                                 |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                 `- note: add 'if #available' version check
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 |             logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
    |                         |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                         `- note: add 'if #available' version check
269 |         default:
270 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 |             logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
    |                                 |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                 `- note: add 'if #available' version check
269 |         default:
270 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:83: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 |             logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
    |                                                                                   |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                   `- note: add 'if #available' version check
269 |         default:
270 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:271:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
269 |         default:
270 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
271 |             logger.error("Error occured performing the operation. \(message, privacy: .public)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
272 |             throw KeychainError.unhandledError(message: message)
273 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:271:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
269 |         default:
270 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
271 |             logger.error("Error occured performing the operation. \(message, privacy: .public)")
    |                                                                    |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                    `- note: add 'if #available' version check
272 |             throw KeychainError.unhandledError(message: message)
273 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:289:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
290 |             throw KeychainError.invalidKey
291 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:324:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
322 |         switch status {
323 |         case errSecSuccess:
324 |             logger.info("Item '\(forKey, privacy: .public)' was deleted from Keychain.")
    |                         |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                         `- note: add 'if #available' version check
325 |             return
326 |         case errSecItemNotFound:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:324:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
322 |         switch status {
323 |         case errSecSuccess:
324 |             logger.info("Item '\(forKey, privacy: .public)' was deleted from Keychain.")
    |                                 |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                 `- note: add 'if #available' version check
325 |             return
326 |         case errSecItemNotFound:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
325 |             return
326 |         case errSecItemNotFound:
327 |             logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
    |                         |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                         `- note: add 'if #available' version check
328 |             return
329 |         default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:28: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
325 |             return
326 |         case errSecItemNotFound:
327 |             logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
    |                            |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                            `- note: add 'if #available' version check
328 |             return
329 |         default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:88: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
325 |             return
326 |         case errSecItemNotFound:
327 |             logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
    |                                                                                        |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                        `- note: add 'if #available' version check
328 |             return
329 |         default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
329 |         default:
330 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 |             logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
332 |             throw KeychainError.unhandledError(message: message)
333 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
329 |         default:
330 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 |             logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
    |                                                                    |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                    `- note: add 'if #available' version check
332 |             throw KeychainError.unhandledError(message: message)
333 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:106: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
329 |         default:
330 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 |             logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
    |                                                                                                          |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                          `- note: add 'if #available' version check
332 |             throw KeychainError.unhandledError(message: message)
333 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:383:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
384 |             throw KeychainError.invalidKey
385 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:427:32: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
425 |             // Attempt to decode the value back to it's type.
426 |             guard let result = item as? Data else {
427 |                 logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
    |                                |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                                `- note: add 'if #available' version check
428 |                 throw KeychainError.unexpectedData
429 |             }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:427:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
425 |             // Attempt to decode the value back to it's type.
426 |             guard let result = item as? Data else {
427 |                 logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
    |                                                                    |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                    `- note: add 'if #available' version check
428 |                 throw KeychainError.unexpectedData
429 |             }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:433:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
431 |             return result
432 |         case errSecUserCanceled:
433 |             logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
    |                            |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                            `- note: add 'if #available' version check
434 |             throw KeychainError.unhandledError(message: message)
435 |         case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:433:72: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
431 |             return result
432 |         case errSecUserCanceled:
433 |             logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
    |                                                                        |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                        `- note: add 'if #available' version check
434 |             throw KeychainError.unhandledError(message: message)
435 |         case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:436:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
434 |             throw KeychainError.unhandledError(message: message)
435 |         case errSecItemNotFound, errSecInvalidItemRef:
436 |             logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
    |                            |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                            `- note: add 'if #available' version check
437 |             throw KeychainError.invalidKey
438 |         default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:436:80: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
434 |             throw KeychainError.unhandledError(message: message)
435 |         case errSecItemNotFound, errSecInvalidItemRef:
436 |             logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
    |                                                                                |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                `- note: add 'if #available' version check
437 |             throw KeychainError.invalidKey
438 |         default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:439:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
437 |             throw KeychainError.invalidKey
438 |         default:
439 |             logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
    |                            |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                            `- note: add 'if #available' version check
440 |             throw KeychainError.unhandledError(message: message)
441 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:439:79: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
437 |             throw KeychainError.invalidKey
438 |         default:
439 |             logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
    |                                                                               |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                               `- note: add 'if #available' version check
440 |             throw KeychainError.unhandledError(message: message)
441 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
457 |     /// print(result)
458 |     /// ```
459 |     public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
    |                 `- note: add '@available' attribute to enclosing instance method
460 |         // Construct a LAContext to surpress any biometry to access the key.
461 |         let context = LAContext()
    :
496 |         let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 |         logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
    |                     |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                     `- note: add 'if #available' version check
499 |
500 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:29: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
457 |     /// print(result)
458 |     /// ```
459 |     public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
    |                 `- note: add '@available' attribute to enclosing instance method
460 |         // Construct a LAContext to surpress any biometry to access the key.
461 |         let context = LAContext()
    :
496 |         let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 |         logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
    |                             |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                             `- note: add 'if #available' version check
499 |
500 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:78: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
457 |     /// print(result)
458 |     /// ```
459 |     public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
    |                 `- note: add '@available' attribute to enclosing instance method
460 |         // Construct a LAContext to surpress any biometry to access the key.
461 |         let context = LAContext()
    :
496 |         let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 |         logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
    |                                                                              |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
    |                                                                              `- note: add 'if #available' version check
499 |
500 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:505:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
457 |     /// print(result)
458 |     /// ```
459 |     public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
    |                 `- note: add '@available' attribute to enclosing instance method
460 |         // Construct a LAContext to surpress any biometry to access the key.
461 |         let context = LAContext()
    :
503 |         default:
504 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown keychain error"
505 |             logger.error("Keychain existence check error: \(message)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
506 |             return false  // Error occured
507 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:505:60: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
457 |     /// print(result)
458 |     /// ```
459 |     public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
    |                 `- note: add '@available' attribute to enclosing instance method
460 |         // Construct a LAContext to surpress any biometry to access the key.
461 |         let context = LAContext()
    :
503 |         default:
504 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown keychain error"
505 |             logger.error("Keychain existence check error: \(message)")
    |                                                            |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                            `- note: add 'if #available' version check
506 |             return false  // Error occured
507 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
596 |         let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 |         logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
    |                     |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                     `- note: add 'if #available' version check
599 |
600 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:40: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
596 |         let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 |         logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
    |                                        |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                        `- note: add 'if #available' version check
599 |
600 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:73: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
596 |         let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 |         logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
    |                                                                         |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                         `- note: add 'if #available' version check
599 |
600 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:103: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
596 |         let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 |         logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
    |                                                                                                       |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                       `- note: add 'if #available' version check
599 |
600 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:605:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
603 |         default:
604 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
605 |             logger.error("Error occured performing the operation. \(message, privacy: .public)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
606 |             throw KeychainError.unhandledError(message: message)
607 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:605:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
603 |         default:
604 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
605 |             logger.error("Error occured performing the operation. \(message, privacy: .public)")
    |                                                                    |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                    `- note: add 'if #available' version check
606 |             throw KeychainError.unhandledError(message: message)
607 |         }
[29/52] Compiling Core KeychainService.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:139:25: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    |                         `- error: 'Logger' is only available in macOS 11.0 or newer
140 |     private let serviceName = Bundle.main.bundleIdentifier!
141 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:59:42: error: 'biometryAny' is only available in macOS 10.13.4 or newer
 26 |
 27 | /// Access control constants that dictate how a keychain item may be used.
 28 | public enum SecAccessControl: RawRepresentable {
    |             `- note: add '@available' attribute to enclosing enum
 29 |     public typealias RawValue = SecAccessControlCreateFlags
 30 |
    :
 53 |     ///
 54 |     /// - Parameter rawValue: The raw value to use for the new instance.
 55 |     public init?(rawValue: SecAccessControlCreateFlags) {
    |            `- note: add '@available' attribute to enclosing initializer
 56 |         switch rawValue {
 57 |         case SecAccessControlCreateFlags.devicePasscode:
 58 |             self = .devicePasscode
 59 |         case SecAccessControlCreateFlags.biometryAny:
    |                                          |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
    |                                          `- note: add 'if #available' version check
 60 |             self = .biometryAny
 61 |         case SecAccessControlCreateFlags.biometryCurrentSet:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:61:42: error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
 26 |
 27 | /// Access control constants that dictate how a keychain item may be used.
 28 | public enum SecAccessControl: RawRepresentable {
    |             `- note: add '@available' attribute to enclosing enum
 29 |     public typealias RawValue = SecAccessControlCreateFlags
 30 |
    :
 53 |     ///
 54 |     /// - Parameter rawValue: The raw value to use for the new instance.
 55 |     public init?(rawValue: SecAccessControlCreateFlags) {
    |            `- note: add '@available' attribute to enclosing initializer
 56 |         switch rawValue {
 57 |         case SecAccessControlCreateFlags.devicePasscode:
    :
 59 |         case SecAccessControlCreateFlags.biometryAny:
 60 |             self = .biometryAny
 61 |         case SecAccessControlCreateFlags.biometryCurrentSet:
    |                                          |- error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
    |                                          `- note: add 'if #available' version check
 62 |             self = .biometryCurrentSet
 63 |         case SecAccessControlCreateFlags.userPresence:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:75:48: error: 'biometryAny' is only available in macOS 10.13.4 or newer
 26 |
 27 | /// Access control constants that dictate how a keychain item may be used.
 28 | public enum SecAccessControl: RawRepresentable {
    |             `- note: add '@available' attribute to enclosing enum
 29 |     public typealias RawValue = SecAccessControlCreateFlags
 30 |
    :
 68 |     }
 69 |
 70 |     public var rawValue: RawValue {
    |                `- note: add '@available' attribute to enclosing property
 71 |         switch self {
 72 |         case .devicePasscode:
 73 |             return SecAccessControlCreateFlags.devicePasscode
 74 |         case .biometryAny:
 75 |             return SecAccessControlCreateFlags.biometryAny
    |                                                |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
    |                                                `- note: add 'if #available' version check
 76 |         case .biometryCurrentSet:
 77 |             return SecAccessControlCreateFlags.biometryCurrentSet
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:77:48: error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
 26 |
 27 | /// Access control constants that dictate how a keychain item may be used.
 28 | public enum SecAccessControl: RawRepresentable {
    |             `- note: add '@available' attribute to enclosing enum
 29 |     public typealias RawValue = SecAccessControlCreateFlags
 30 |
    :
 68 |     }
 69 |
 70 |     public var rawValue: RawValue {
    |                `- note: add '@available' attribute to enclosing property
 71 |         switch self {
 72 |         case .devicePasscode:
    :
 75 |             return SecAccessControlCreateFlags.biometryAny
 76 |         case .biometryCurrentSet:
 77 |             return SecAccessControlCreateFlags.biometryCurrentSet
    |                                                |- error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
    |                                                `- note: add 'if #available' version check
 78 |         case .userPresence:
 79 |             return SecAccessControlCreateFlags.userPresence
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:156:18: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
153 |
154 |     /// Initializes the `KeychainService`.
155 |     public override init() {
    |                     `- note: add '@available' attribute to enclosing initializer
156 |         logger = Logger(subsystem: serviceName, category: "keychain")
    |                  |- error: 'Logger' is only available in macOS 11.0 or newer
    |                  `- note: add 'if #available' version check
157 |     }
158 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:205:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
206 |             throw KeychainError.invalidKey
207 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:249:30: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
247 |             guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 |                 let message = error?.takeRetainedValue().localizedDescription ?? "Unknown access control error."
249 |                 logger.error("Error occurred applying access control. \(message, privacy: .public)")
    |                              |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                              `- note: add 'if #available' version check
250 |
251 |                 throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:249:72: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
247 |             guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 |                 let message = error?.takeRetainedValue().localizedDescription ?? "Unknown access control error."
249 |                 logger.error("Error occurred applying access control. \(message, privacy: .public)")
    |                                                                        |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                        `- note: add 'if #available' version check
250 |
251 |                 throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
263 |         switch status {
264 |         case errSecSuccess:
265 |             logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
    |                         |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                         `- note: add 'if #available' version check
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
263 |         switch status {
264 |         case errSecSuccess:
265 |             logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
    |                                 |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                 `- note: add 'if #available' version check
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:81: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
263 |         switch status {
264 |         case errSecSuccess:
265 |             logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
    |                                                                                 |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                 `- note: add 'if #available' version check
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 |             logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
    |                         |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                         `- note: add 'if #available' version check
269 |         default:
270 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 |             logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
    |                                 |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                 `- note: add 'if #available' version check
269 |         default:
270 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:83: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
266 |         case errSecDuplicateItem:
267 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 |             logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
    |                                                                                   |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                   `- note: add 'if #available' version check
269 |         default:
270 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:271:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
269 |         default:
270 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
271 |             logger.error("Error occured performing the operation. \(message, privacy: .public)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
272 |             throw KeychainError.unhandledError(message: message)
273 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:271:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
201 |     /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 |     /// ```
203 |     public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
204 |         guard !forKey.isEmpty else {
205 |             logger.error("The forKey argument is invalid.")
    :
269 |         default:
270 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
271 |             logger.error("Error occured performing the operation. \(message, privacy: .public)")
    |                                                                    |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                    `- note: add 'if #available' version check
272 |             throw KeychainError.unhandledError(message: message)
273 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:289:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
290 |             throw KeychainError.invalidKey
291 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:324:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
322 |         switch status {
323 |         case errSecSuccess:
324 |             logger.info("Item '\(forKey, privacy: .public)' was deleted from Keychain.")
    |                         |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                         `- note: add 'if #available' version check
325 |             return
326 |         case errSecItemNotFound:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:324:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
322 |         switch status {
323 |         case errSecSuccess:
324 |             logger.info("Item '\(forKey, privacy: .public)' was deleted from Keychain.")
    |                                 |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                 `- note: add 'if #available' version check
325 |             return
326 |         case errSecItemNotFound:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
325 |             return
326 |         case errSecItemNotFound:
327 |             logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
    |                         |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                         `- note: add 'if #available' version check
328 |             return
329 |         default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:28: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
325 |             return
326 |         case errSecItemNotFound:
327 |             logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
    |                            |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                            `- note: add 'if #available' version check
328 |             return
329 |         default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:88: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
325 |             return
326 |         case errSecItemNotFound:
327 |             logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
    |                                                                                        |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                        `- note: add 'if #available' version check
328 |             return
329 |         default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
329 |         default:
330 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 |             logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
332 |             throw KeychainError.unhandledError(message: message)
333 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
329 |         default:
330 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 |             logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
    |                                                                    |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                    `- note: add 'if #available' version check
332 |             throw KeychainError.unhandledError(message: message)
333 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:106: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
285 |     /// ```
286 |     /// - Remark: No error is thrown when the key is not found.
287 |     public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
288 |         guard !forKey.isEmpty else {
289 |             logger.error("The forKey argument is invalid.")
    :
329 |         default:
330 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 |             logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
    |                                                                                                          |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                          `- note: add 'if #available' version check
332 |             throw KeychainError.unhandledError(message: message)
333 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:383:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
384 |             throw KeychainError.invalidKey
385 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:427:32: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
425 |             // Attempt to decode the value back to it's type.
426 |             guard let result = item as? Data else {
427 |                 logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
    |                                |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                                `- note: add 'if #available' version check
428 |                 throw KeychainError.unexpectedData
429 |             }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:427:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
425 |             // Attempt to decode the value back to it's type.
426 |             guard let result = item as? Data else {
427 |                 logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
    |                                                                    |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                    `- note: add 'if #available' version check
428 |                 throw KeychainError.unexpectedData
429 |             }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:433:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
431 |             return result
432 |         case errSecUserCanceled:
433 |             logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
    |                            |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                            `- note: add 'if #available' version check
434 |             throw KeychainError.unhandledError(message: message)
435 |         case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:433:72: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
431 |             return result
432 |         case errSecUserCanceled:
433 |             logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
    |                                                                        |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                        `- note: add 'if #available' version check
434 |             throw KeychainError.unhandledError(message: message)
435 |         case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:436:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
434 |             throw KeychainError.unhandledError(message: message)
435 |         case errSecItemNotFound, errSecInvalidItemRef:
436 |             logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
    |                            |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                            `- note: add 'if #available' version check
437 |             throw KeychainError.invalidKey
438 |         default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:436:80: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
434 |             throw KeychainError.unhandledError(message: message)
435 |         case errSecItemNotFound, errSecInvalidItemRef:
436 |             logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
    |                                                                                |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                `- note: add 'if #available' version check
437 |             throw KeychainError.invalidKey
438 |         default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:439:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
437 |             throw KeychainError.invalidKey
438 |         default:
439 |             logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
    |                            |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                            `- note: add 'if #available' version check
440 |             throw KeychainError.unhandledError(message: message)
441 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:439:79: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
379 |     /// print(String(data: result, encoding: .utf8))
380 |     /// ```
381 |     public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
    |                 `- note: add '@available' attribute to enclosing instance method
382 |         guard !forKey.isEmpty else {
383 |             logger.error("The forKey argument is invalid.")
    :
437 |             throw KeychainError.invalidKey
438 |         default:
439 |             logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
    |                                                                               |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                               `- note: add 'if #available' version check
440 |             throw KeychainError.unhandledError(message: message)
441 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
457 |     /// print(result)
458 |     /// ```
459 |     public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
    |                 `- note: add '@available' attribute to enclosing instance method
460 |         // Construct a LAContext to surpress any biometry to access the key.
461 |         let context = LAContext()
    :
496 |         let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 |         logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
    |                     |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                     `- note: add 'if #available' version check
499 |
500 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:29: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
457 |     /// print(result)
458 |     /// ```
459 |     public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
    |                 `- note: add '@available' attribute to enclosing instance method
460 |         // Construct a LAContext to surpress any biometry to access the key.
461 |         let context = LAContext()
    :
496 |         let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 |         logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
    |                             |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                             `- note: add 'if #available' version check
499 |
500 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:78: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
457 |     /// print(result)
458 |     /// ```
459 |     public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
    |                 `- note: add '@available' attribute to enclosing instance method
460 |         // Construct a LAContext to surpress any biometry to access the key.
461 |         let context = LAContext()
    :
496 |         let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 |         logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
    |                                                                              |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
    |                                                                              `- note: add 'if #available' version check
499 |
500 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:505:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
457 |     /// print(result)
458 |     /// ```
459 |     public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
    |                 `- note: add '@available' attribute to enclosing instance method
460 |         // Construct a LAContext to surpress any biometry to access the key.
461 |         let context = LAContext()
    :
503 |         default:
504 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown keychain error"
505 |             logger.error("Keychain existence check error: \(message)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
506 |             return false  // Error occured
507 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:505:60: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
457 |     /// print(result)
458 |     /// ```
459 |     public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
    |                 `- note: add '@available' attribute to enclosing instance method
460 |         // Construct a LAContext to surpress any biometry to access the key.
461 |         let context = LAContext()
    :
503 |         default:
504 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown keychain error"
505 |             logger.error("Keychain existence check error: \(message)")
    |                                                            |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                            `- note: add 'if #available' version check
506 |             return false  // Error occured
507 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
596 |         let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 |         logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
    |                     |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                     `- note: add 'if #available' version check
599 |
600 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:40: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
596 |         let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 |         logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
    |                                        |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                        `- note: add 'if #available' version check
599 |
600 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:73: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
596 |         let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 |         logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
    |                                                                         |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                         `- note: add 'if #available' version check
599 |
600 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:103: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
596 |         let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 |         logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
    |                                                                                                       |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
    |                                                                                                       `- note: add 'if #available' version check
599 |
600 |         switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:605:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
603 |         default:
604 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
605 |             logger.error("Error occured performing the operation. \(message, privacy: .public)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
606 |             throw KeychainError.unhandledError(message: message)
607 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:605:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
    |                    `- note: add '@available' attribute to enclosing class
138 |     // MARK: Variables
139 |     private let logger: Logger
    :
557 |     /// }
558 |     /// ```
559 |     public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
    |                 `- note: add '@available' attribute to enclosing instance method
560 |         // Construct a LAContext to surpress any biometry to access the key.
561 |         let context = LAContext()
    :
603 |         default:
604 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
605 |             logger.error("Error occured performing the operation. \(message, privacy: .public)")
    |                                                                    |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                                    `- note: add 'if #available' version check
606 |             throw KeychainError.unhandledError(message: message)
607 |         }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[30/52] Emitting module Adaptive
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
  3 | //
  4 |
  5 | import UIKit
    |        `- error: no such module 'UIKit'
  6 | import os.log
  7 |
[31/52] Compiling Adaptive AdaptiveContext.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
  3 | //
  4 |
  5 | import UIKit
    |        `- error: no such module 'UIKit'
  6 | import os.log
  7 |
[32/52] Compiling Adaptive Enums.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
  3 | //
  4 |
  5 | import UIKit
    |        `- error: no such module 'UIKit'
  6 | import os.log
  7 |
[33/52] Compiling Adaptive AdaptiveResult.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
  3 | //
  4 |
  5 | import UIKit
    |        `- error: no such module 'UIKit'
  6 | import os.log
  7 |
[34/52] Compiling Adaptive AssessmentsFactors.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
  3 | //
  4 |
  5 | import UIKit
    |        `- error: no such module 'UIKit'
  6 | import os.log
  7 |
[35/52] Compiling Adaptive Evaluation.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
  3 | //
  4 |
  5 | import UIKit
    |        `- error: no such module 'UIKit'
  6 | import os.log
  7 |
[36/52] Compiling Core String+Extension.swift
[37/52] Compiling Core Thread+Extension.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
BUILD FAILURE 6.2 macosSpm