The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Failed to build IBM Security Verify, reference v3.0.11 (4189b9), with Swift 6.1 for macOS (SPM) on 6 Nov 2025 07:49:40 UTC.

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/IBM-Verify/verify-sdk-ios.git
Reference: v3.0.11
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/IBM-Verify/verify-sdk-ios
 * tag               v3.0.11    -> FETCH_HEAD
HEAD is now at 4189b9c Support for digital credentials (#14)
Cloned https://github.com/IBM-Verify/verify-sdk-ios.git
Revision (git rev-parse @):
4189b9c5ec63b4a53b6de05f26b0de5072ab0989
SUCCESS checkout https://github.com/IBM-Verify/verify-sdk-ios.git at v3.0.11
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/IBM-Verify/verify-sdk-ios.git
https://github.com/IBM-Verify/verify-sdk-ios.git
{
  "default_localization" : "en",
  "dependencies" : [
  ],
  "manifest_display_name" : "IBM Security Verify",
  "name" : "IBM Security Verify",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "15.0"
    }
  ],
  "products" : [
    {
      "name" : "FIDO2",
      "targets" : [
        "FIDO2"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Adaptive",
      "targets" : [
        "Adaptive"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Core",
      "targets" : [
        "Core"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "Authentication",
      "targets" : [
        "Authentication"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "MFA",
      "targets" : [
        "MFA"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "DC",
      "targets" : [
        "DC"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MFATests",
      "module_type" : "SwiftTarget",
      "name" : "MFATests",
      "path" : "Tests/MFATests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/MFATests/Files",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "CloudAuthenticatorServiceTests.swift",
        "CloudAuthenticatorTests.swift",
        "CloudRegistrationProviderTests.swift",
        "MFAAttributeInfoTests.swift",
        "MFARegistrationControllerTests.swift",
        "MFAServiceControllerTests.swift",
        "MockHTTPResponse.swift",
        "OTPAuthenticatorTests.swift",
        "OTPGeneratorTests.swift",
        "OnPremiseAuthenticatorServiceTests.swift",
        "OnPremiseAuthenticatorTests.swift",
        "OnPremiseRegistrationProviderTest.swift",
        "PendingTransactionInfoTest.swift",
        "StringExtensionTests.swift"
      ],
      "target_dependencies" : [
        "MFA",
        "Core",
        "Authentication"
      ],
      "type" : "test"
    },
    {
      "c99name" : "MFA",
      "module_type" : "SwiftTarget",
      "name" : "MFA",
      "path" : "Sources/mfa",
      "product_memberships" : [
        "MFA"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/mfa/README.md",
          "rule" : {
            "copy" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/mfa/Resources/en.lproj/Localizable.strings",
          "rule" : {
            "process" : {
              "localization" : "en"
            }
          }
        }
      ],
      "sources" : [
        "AuthenticatorDescriptor.swift",
        "CloudAuthenticator.swift",
        "CloudAuthenticatorService.swift",
        "CloudRegistrationProvider.swift",
        "EnrollableFactor.swift",
        "FaceFactorInfo.swift",
        "FactorDescriptor.swift",
        "FingerprintFactorInfo.swift",
        "HOTPFactorInfo.swift",
        "MFAAttributeInfo.swift",
        "MFARegistrationController.swift",
        "MFAServiceController.swift",
        "OTPAuthenticator.swift",
        "OTPDescriptor.swift",
        "OnPremiseAuthenticator.swift",
        "OnPremiseAuthenticatorService.swift",
        "OnPremiseRegistrationProvider.swift",
        "PendingTransactionInfo.swift",
        "String+Extension.swift",
        "TOTPFactorInfo.swift",
        "UserPresenceFactorInfo.swift"
      ],
      "target_dependencies" : [
        "Core",
        "Authentication"
      ],
      "type" : "library"
    },
    {
      "c99name" : "FIDO2Tests",
      "module_type" : "SwiftTarget",
      "name" : "FIDO2Tests",
      "path" : "Tests/FIDO2Tests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/FIDO2Tests/Files",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "AttestationStatementProviderTests.swift",
        "CBORTests.swift",
        "COSETests.swift",
        "ExtensionsTests.swift",
        "PublicKeyCredentialCreationOptionsTests.swift",
        "PublicKeyCredentialProviderTests.swift",
        "PublicKeyCredentialRequestOptionsTest.swift",
        "PublicKeyCredentialTests.swift"
      ],
      "target_dependencies" : [
        "FIDO2"
      ],
      "type" : "test"
    },
    {
      "c99name" : "FIDO2",
      "module_type" : "SwiftTarget",
      "name" : "FIDO2",
      "path" : "Sources/fido2",
      "product_memberships" : [
        "FIDO2"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/fido2/README.md",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "AttestationStatementProvider.swift",
        "AuthenticatorExtensions.swift",
        "AuthenticatorSelectionCriteria.swift",
        "CBOR.swift",
        "COSE.swift",
        "Extensions.swift",
        "PublicKeyCredential.swift",
        "PublicKeyCredentialProvider.swift",
        "SecKeyConvertible.swift",
        "SecKeyStore.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "DCTests",
      "module_type" : "SwiftTarget",
      "name" : "DCTests",
      "path" : "Tests/DCTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/DCTests/Files",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "AgentTests.swift",
        "ConnectionTests.swift",
        "IndyCredentialTests.swift",
        "InvitationTests.swift",
        "JSONLDCredentialTests.swift",
        "MDocCredentialTests.swift",
        "MockHTTPResponse.swift",
        "PreviewDescriptorTest.swift",
        "ProofRequestTest.swift",
        "VerificationInfoTest.swift",
        "WalletProviderTest.swift",
        "WalletServiceTest.swift"
      ],
      "target_dependencies" : [
        "DC",
        "Core",
        "Authentication"
      ],
      "type" : "test"
    },
    {
      "c99name" : "DC",
      "module_type" : "SwiftTarget",
      "name" : "DC",
      "path" : "Sources/dc",
      "product_memberships" : [
        "DC"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/dc/README.md",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "AgentInfo.swift",
        "ConnectionInfo.swift",
        "CredentialDescriptor.swift",
        "CredentialPreviewInfo.swift",
        "IndyCredential.swift",
        "InvitationInfo.swift",
        "JSONLDCredential.swift",
        "MDocCredential.swift",
        "PreviewDescriptor.swift",
        "ProofRequest.swift",
        "VerificationInfo.swift",
        "VerificationPreviewInfo.swift",
        "Wallet.swift",
        "WalletDescriptor.swift",
        "WalletProvider.swift",
        "WalletService.swift"
      ],
      "target_dependencies" : [
        "Core",
        "Authentication"
      ],
      "type" : "library"
    },
    {
      "c99name" : "CoreTests",
      "module_type" : "SwiftTarget",
      "name" : "CoreTests",
      "path" : "Tests/CoreTests",
      "sources" : [
        "CryptoKit+ExtensionTests.swift",
        "Data+ExtensionTests.swift",
        "DefaultValueTests.swift",
        "JSONDecoderTest.swift",
        "KeychainServiceTests.swift",
        "KeyedDecodingContainerTest.swift",
        "String+ExtensionTests.swift",
        "Thread+ExtensionTests.swift",
        "URLSession+ExtensionTests.swift",
        "URLSessionDelegateHelperTests.swift"
      ],
      "target_dependencies" : [
        "Core"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Core",
      "module_type" : "SwiftTarget",
      "name" : "Core",
      "path" : "Sources/core",
      "product_memberships" : [
        "Core",
        "Authentication",
        "MFA",
        "DC"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/core/README.md",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Codeable+Extension.swift",
        "CryptoKit+Extension.swift",
        "Data+Extension.swift",
        "DateFormatter+Extension.swift",
        "DefaultValue+Extension.swift",
        "DefaultValuePropertyWrapper.swift",
        "JSONDecoder+Extension.swift",
        "KeychainService.swift",
        "KeyedDecodingContainer+Extension.swift",
        "NSNumber+Extension.swift",
        "String+Extension.swift",
        "Thread+Extension.swift",
        "URLSession+Extension.swift",
        "URLSessionDelegateHelper.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AuthenticationTests",
      "module_type" : "SwiftTarget",
      "name" : "AuthenticationTests",
      "path" : "Tests/AuthenticationTests",
      "sources" : [
        "DPoPHelperTest.swift",
        "MockToken.swift",
        "OAuthProviderTests.swift",
        "PKCEHelperTests.swift",
        "TokenInfoTests.swift"
      ],
      "target_dependencies" : [
        "Authentication",
        "Core"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Authentication",
      "module_type" : "SwiftTarget",
      "name" : "Authentication",
      "path" : "Sources/authentication",
      "product_memberships" : [
        "Authentication",
        "MFA",
        "DC"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/authentication/README.md",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "DPoPHelper.swift",
        "OAuthProvider.swift",
        "OIDCMetadataInfo.swift",
        "PKCEHelper.swift",
        "TokenInfo.swift"
      ],
      "target_dependencies" : [
        "Core"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AdaptiveTests",
      "module_type" : "SwiftTarget",
      "name" : "AdaptiveTests",
      "path" : "Tests/AdaptiveTests",
      "sources" : [
        "AdaptiveContextTests.swift",
        "AdaptiveError.swift",
        "FactorTypeTests.swift",
        "LocalMock.swift",
        "LocalMockAdaptiveTests.swift",
        "MockCollectionService.swift",
        "MockHelpers.swift",
        "RemoteMock.swift",
        "RemoteMockAdaptiveTests.swift",
        "SessionIdTests.swift"
      ],
      "target_dependencies" : [
        "Adaptive"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Adaptive",
      "module_type" : "SwiftTarget",
      "name" : "Adaptive",
      "path" : "Sources/adaptive",
      "product_memberships" : [
        "Adaptive"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/adaptive/README.md",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "AdaptiveContext.swift",
        "AdaptiveResult.swift",
        "AssessmentsFactors.swift",
        "Enums.swift",
        "Evaluation.swift",
        "Helpers.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/20] Write sources
[3/20] Copying Info.plist
[3/20] Copying README.md
[3/20] Write sources
[3/20] Copying README.md
[3/20] Write sources
[9/20] Copying README.md
[9/20] Copying Localizable.strings
[9/20] Copying README.md
[12/20] Copying Info.plist
[13/20] Copying README.md
[14/20] Copying Info.plist
[19/20] Write swift-version-2F0A5646E1D333AE.txt
[21/54] Compiling Core Thread+Extension.swift
[22/55] 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 Security 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:142:24: warning: static property '_default' is not concurrency-safe because non-'Sendable' type 'KeychainService' may have shared mutable state; this is an error in the Swift 6 language mode
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 Security 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: class 'KeychainService' does not conform to the 'Sendable' protocol
138 |     // MARK: Variables
139 |     private let logger: Logger
140 |     private let serviceName = Bundle.main.bundleIdentifier!
141 |
142 |     private static let _default = KeychainService()
    |                        |- warning: static property '_default' is not concurrency-safe because non-'Sendable' type 'KeychainService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property '_default' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
143 |
144 |     /// Returns the default singleton instance.
/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:153: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 Security 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
    :
150 |
151 |     /// Initializes the `KeychainService`.
152 |     public override init() {
    |                     `- note: add @available attribute to enclosing initializer
153 |         logger = Logger(subsystem: serviceName, category: "keychain")
    |                  |- error: 'Logger' is only available in macOS 11.0 or newer
    |                  `- note: add 'if #available' version check
154 |     }
155 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:200: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
201 |             throw KeychainError.invalidKey
202 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:219: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
217 |             guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
218 |                 let message = error!.takeRetainedValue().localizedDescription
219 |                 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
220 |
221 |                 throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:219: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
217 |             guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
218 |                 let message = error!.takeRetainedValue().localizedDescription
219 |                 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
220 |
221 |                 throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
233 |         switch status {
234 |         case errSecSuccess:
235 |             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
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
233 |         switch status {
234 |         case errSecSuccess:
235 |             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
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
233 |         switch status {
234 |         case errSecSuccess:
235 |             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
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 |             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
239 |         default:
240 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 |             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
239 |         default:
240 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 |             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
239 |         default:
240 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:241: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
239 |         default:
240 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
241 |             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
242 |             throw KeychainError.unhandledError(message: message)
243 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:241: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
239 |         default:
240 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
241 |             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
242 |             throw KeychainError.unhandledError(message: message)
243 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:255: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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
256 |             throw KeychainError.invalidKey
257 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265: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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    :
263 |
264 |         let status = SecItemDelete(query as CFDictionary)
265 |         logger.info("Item '\(forKey, privacy: .public)' deleted from keychain: \(status == errSecSuccess, privacy: .public)")
    |                     |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                     `- note: add 'if #available' version check
266 |
267 |         guard status == errSecSuccess || status == errSecItemNotFound else {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265: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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    :
263 |
264 |         let status = SecItemDelete(query as CFDictionary)
265 |         logger.info("Item '\(forKey, privacy: .public)' deleted from 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 |
267 |         guard status == errSecSuccess || status == errSecItemNotFound else {
/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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    :
263 |
264 |         let status = SecItemDelete(query as CFDictionary)
265 |         logger.info("Item '\(forKey, privacy: .public)' deleted from 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 |
267 |         guard status == errSecSuccess || status == errSecItemNotFound else {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:269: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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    :
267 |         guard status == errSecSuccess || status == errSecItemNotFound else {
268 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
269 |             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
270 |             throw KeychainError.unhandledError(message: message)
271 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:269: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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    :
267 |         guard status == errSecSuccess || status == errSecItemNotFound else {
268 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
269 |             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
270 |             throw KeychainError.unhandledError(message: message)
271 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:315: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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
316 |             throw KeychainError.invalidKey
317 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:335: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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
333 |             switch status {
334 |             case errSecUserCanceled:
335 |                 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
336 |                 throw KeychainError.unhandledError(message: message)
337 |             case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:335:76: 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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
333 |             switch status {
334 |             case errSecUserCanceled:
335 |                 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
336 |                 throw KeychainError.unhandledError(message: message)
337 |             case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:338: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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
336 |                 throw KeychainError.unhandledError(message: message)
337 |             case errSecItemNotFound, errSecInvalidItemRef:
338 |                 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
339 |                 throw KeychainError.invalidKey
340 |             default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:338:84: 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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
336 |                 throw KeychainError.unhandledError(message: message)
337 |             case errSecItemNotFound, errSecInvalidItemRef:
338 |                 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
339 |                 throw KeychainError.invalidKey
340 |             default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:341: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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
339 |                 throw KeychainError.invalidKey
340 |             default:
341 |                 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
342 |                 throw KeychainError.unhandledError(message: message)
343 |             }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:341:83: 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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
339 |                 throw KeychainError.invalidKey
340 |             default:
341 |                 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
342 |                 throw KeychainError.unhandledError(message: message)
343 |             }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:348: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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
346 |         // Attempt to decode the value back to it's type.
347 |         guard let result = item as? Data else {
348 |             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
349 |             throw KeychainError.unexpectedData
350 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:348:64: 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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
346 |         // Attempt to decode the value back to it's type.
347 |         guard let result = item as? Data else {
348 |             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
349 |             throw KeychainError.unexpectedData
350 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382: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 Security 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
    :
366 |     /// print(result)
367 |     /// ```
368 |     public func itemExists(_ forKey: String) -> Bool {
    |                 `- note: add @available attribute to enclosing instance method
369 |         // Construct a LAContext to surpress any biometry to access the key.
370 |         let context = LAContext()
    :
380 |         let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 |         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
383 |
384 |         return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382: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 Security 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
    :
366 |     /// print(result)
367 |     /// ```
368 |     public func itemExists(_ forKey: String) -> Bool {
    |                 `- note: add @available attribute to enclosing instance method
369 |         // Construct a LAContext to surpress any biometry to access the key.
370 |         let context = LAContext()
    :
380 |         let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 |         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
383 |
384 |         return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382: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 Security 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
    :
366 |     /// print(result)
367 |     /// ```
368 |     public func itemExists(_ forKey: String) -> Bool {
    |                 `- note: add @available attribute to enclosing instance method
369 |         // Construct a LAContext to surpress any biometry to access the key.
370 |         let context = LAContext()
    :
380 |         let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 |         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
383 |
384 |         return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
445 |
446 |         let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 |         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
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
445 |
446 |         let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 |         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
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
445 |
446 |         let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 |         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
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
445 |
446 |         let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 |         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
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:452: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
450 |         guard status == errSecSuccess else {
451 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
452 |             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
453 |             throw KeychainError.unhandledError(message: message)
454 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:452: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
450 |         guard status == errSecSuccess else {
451 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
452 |             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
453 |             throw KeychainError.unhandledError(message: message)
454 |         }
[23/55] 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 Security 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:142:24: warning: static property '_default' is not concurrency-safe because non-'Sendable' type 'KeychainService' may have shared mutable state; this is an error in the Swift 6 language mode
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 Security 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: class 'KeychainService' does not conform to the 'Sendable' protocol
138 |     // MARK: Variables
139 |     private let logger: Logger
140 |     private let serviceName = Bundle.main.bundleIdentifier!
141 |
142 |     private static let _default = KeychainService()
    |                        |- warning: static property '_default' is not concurrency-safe because non-'Sendable' type 'KeychainService' may have shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: add '@MainActor' to make static property '_default' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
143 |
144 |     /// Returns the default singleton instance.
/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:153: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 Security 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
    :
150 |
151 |     /// Initializes the `KeychainService`.
152 |     public override init() {
    |                     `- note: add @available attribute to enclosing initializer
153 |         logger = Logger(subsystem: serviceName, category: "keychain")
    |                  |- error: 'Logger' is only available in macOS 11.0 or newer
    |                  `- note: add 'if #available' version check
154 |     }
155 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:200: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
201 |             throw KeychainError.invalidKey
202 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:219: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
217 |             guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
218 |                 let message = error!.takeRetainedValue().localizedDescription
219 |                 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
220 |
221 |                 throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:219: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
217 |             guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
218 |                 let message = error!.takeRetainedValue().localizedDescription
219 |                 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
220 |
221 |                 throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
233 |         switch status {
234 |         case errSecSuccess:
235 |             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
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
233 |         switch status {
234 |         case errSecSuccess:
235 |             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
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
233 |         switch status {
234 |         case errSecSuccess:
235 |             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
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 |             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
239 |         default:
240 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 |             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
239 |         default:
240 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
236 |         case errSecDuplicateItem:
237 |             status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 |             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
239 |         default:
240 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:241: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
239 |         default:
240 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
241 |             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
242 |             throw KeychainError.unhandledError(message: message)
243 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:241: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 Security 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
    :
196 |     /// try? KeychainService.default.addItem("account", value: person)
197 |     /// ```
198 |     public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
    |                 `- note: add @available attribute to enclosing instance method
199 |         guard !forKey.isEmpty else {
200 |             logger.error("The forKey argument is invalid.")
    :
239 |         default:
240 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
241 |             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
242 |             throw KeychainError.unhandledError(message: message)
243 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:255: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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
256 |             throw KeychainError.invalidKey
257 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265: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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    :
263 |
264 |         let status = SecItemDelete(query as CFDictionary)
265 |         logger.info("Item '\(forKey, privacy: .public)' deleted from keychain: \(status == errSecSuccess, privacy: .public)")
    |                     |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                     `- note: add 'if #available' version check
266 |
267 |         guard status == errSecSuccess || status == errSecItemNotFound else {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265: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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    :
263 |
264 |         let status = SecItemDelete(query as CFDictionary)
265 |         logger.info("Item '\(forKey, privacy: .public)' deleted from 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 |
267 |         guard status == errSecSuccess || status == errSecItemNotFound else {
/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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    :
263 |
264 |         let status = SecItemDelete(query as CFDictionary)
265 |         logger.info("Item '\(forKey, privacy: .public)' deleted from 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 |
267 |         guard status == errSecSuccess || status == errSecItemNotFound else {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:269: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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    :
267 |         guard status == errSecSuccess || status == errSecItemNotFound else {
268 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
269 |             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
270 |             throw KeychainError.unhandledError(message: message)
271 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:269: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 Security 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
    :
251 |     /// ```
252 |     /// - Remark: No error is thrown when the key is not found.
253 |     public func deleteItem(_ forKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
254 |         guard !forKey.isEmpty else {
255 |             logger.error("The forKey argument is invalid.")
    :
267 |         guard status == errSecSuccess || status == errSecItemNotFound else {
268 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
269 |             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
270 |             throw KeychainError.unhandledError(message: message)
271 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:315: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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
316 |             throw KeychainError.invalidKey
317 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:335: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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
333 |             switch status {
334 |             case errSecUserCanceled:
335 |                 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
336 |                 throw KeychainError.unhandledError(message: message)
337 |             case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:335:76: 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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
333 |             switch status {
334 |             case errSecUserCanceled:
335 |                 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
336 |                 throw KeychainError.unhandledError(message: message)
337 |             case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:338: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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
336 |                 throw KeychainError.unhandledError(message: message)
337 |             case errSecItemNotFound, errSecInvalidItemRef:
338 |                 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
339 |                 throw KeychainError.invalidKey
340 |             default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:338:84: 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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
336 |                 throw KeychainError.unhandledError(message: message)
337 |             case errSecItemNotFound, errSecInvalidItemRef:
338 |                 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
339 |                 throw KeychainError.invalidKey
340 |             default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:341: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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
339 |                 throw KeychainError.invalidKey
340 |             default:
341 |                 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
342 |                 throw KeychainError.unhandledError(message: message)
343 |             }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:341:83: 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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
339 |                 throw KeychainError.invalidKey
340 |             default:
341 |                 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
342 |                 throw KeychainError.unhandledError(message: message)
343 |             }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:348: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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
346 |         // Attempt to decode the value back to it's type.
347 |         guard let result = item as? Data else {
348 |             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
349 |             throw KeychainError.unexpectedData
350 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:348:64: 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 Security 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
    :
311 |     /// print(String(data: result, encoding: .utf8))
312 |     /// ```
313 |     public func readItem(_ forKey: String) throws -> Data {
    |                 `- note: add @available attribute to enclosing instance method
314 |         guard !forKey.isEmpty else {
315 |             logger.error("The forKey argument is invalid.")
    :
346 |         // Attempt to decode the value back to it's type.
347 |         guard let result = item as? Data else {
348 |             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
349 |             throw KeychainError.unexpectedData
350 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382: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 Security 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
    :
366 |     /// print(result)
367 |     /// ```
368 |     public func itemExists(_ forKey: String) -> Bool {
    |                 `- note: add @available attribute to enclosing instance method
369 |         // Construct a LAContext to surpress any biometry to access the key.
370 |         let context = LAContext()
    :
380 |         let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 |         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
383 |
384 |         return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382: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 Security 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
    :
366 |     /// print(result)
367 |     /// ```
368 |     public func itemExists(_ forKey: String) -> Bool {
    |                 `- note: add @available attribute to enclosing instance method
369 |         // Construct a LAContext to surpress any biometry to access the key.
370 |         let context = LAContext()
    :
380 |         let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 |         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
383 |
384 |         return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382: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 Security 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
    :
366 |     /// print(result)
367 |     /// ```
368 |     public func itemExists(_ forKey: String) -> Bool {
    |                 `- note: add @available attribute to enclosing instance method
369 |         // Construct a LAContext to surpress any biometry to access the key.
370 |         let context = LAContext()
    :
380 |         let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 |         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
383 |
384 |         return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
445 |
446 |         let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 |         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
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
445 |
446 |         let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 |         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
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
445 |
446 |         let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 |         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
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
445 |
446 |         let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 |         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
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:452: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
450 |         guard status == errSecSuccess else {
451 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
452 |             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
453 |             throw KeychainError.unhandledError(message: message)
454 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:452: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 Security 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
    :
428 |     /// }
429 |     /// ```
430 |     public func renameItem(_ forKey: String, newKey: String) throws {
    |                 `- note: add @available attribute to enclosing instance method
431 |         // Construct a LAContext to surpress any biometry to access the key.
432 |         let context = LAContext()
    :
450 |         guard status == errSecSuccess else {
451 |             let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
452 |             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
453 |             throw KeychainError.unhandledError(message: message)
454 |         }
[24/55] Compiling Core DefaultValue+Extension.swift
[25/55] Compiling Core DefaultValuePropertyWrapper.swift
[26/55] Compiling Core URLSession+Extension.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:304:53: error: 'data(for:delegate:)' is only available in macOS 12.0 or newer
296 |
297 | // MARK: - URLSession Extension
298 | extension URLSession {
    | `- note: add @available attribute to enclosing extension
299 |     /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
300 |     /// - Parameter resource: The `HTTPResource` containing the request.
301 |     /// - Returns: The new session data task.
302 |     @discardableResult
303 |     public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
    |                 `- note: add @available attribute to enclosing instance method
304 |         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
305 |
306 |         guard let httpResponse = try await response as? HTTPURLResponse else {
[27/55] Compiling Core KeyedDecodingContainer+Extension.swift
[28/55] Compiling Core NSNumber+Extension.swift
[29/55] Compiling Core String+Extension.swift
[30/55] Compiling Core URLSessionDelegateHelper.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:16:25: error: 'Logger' is only available in macOS 11.0 or newer
 12 | /// The `SelfSignedCertificateDelegate` will allow SSL traffic to be transferred using a self signed certificate.
 13 |  /// - Remark: Using this class should **ONLY** be used for testing purposes.
 14 | public final class SelfSignedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 15 |     // MARK: Variables
 16 |     private let logger: Logger
    |                         `- error: 'Logger' is only available in macOS 11.0 or newer
 17 |     private let serviceName = Bundle.main.bundleIdentifier!
 18 |
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:52:25: error: 'Logger' is only available in macOS 11.0 or newer
 48 |
 49 | /// The `PinnedCertificateDelegate` compares certificate provided by the SSL handshake to a certificate presented by the client.
 50 | public final class PinnedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 51 |     // MARK: Variables
 52 |     private let logger: Logger
    |                         `- error: 'Logger' is only available in macOS 11.0 or newer
 53 |     private let serviceName = Bundle.main.bundleIdentifier!
 54 |
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:21:18: error: 'Logger' is only available in macOS 11.0 or newer
 12 | /// The `SelfSignedCertificateDelegate` will allow SSL traffic to be transferred using a self signed certificate.
 13 |  /// - Remark: Using this class should **ONLY** be used for testing purposes.
 14 | public final class SelfSignedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 15 |     // MARK: Variables
 16 |     private let logger: Logger
    :
 18 |
 19 |     /// Initializes the `SelfSignedCertificateDelegate`.
 20 |     public override init() {
    |                     `- note: add @available attribute to enclosing initializer
 21 |         logger = Logger(subsystem: serviceName, category: "networking")
    |                  |- error: 'Logger' is only available in macOS 11.0 or newer
    |                  `- note: add 'if #available' version check
 22 |     }
 23 |
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:32:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
 12 | /// The `SelfSignedCertificateDelegate` will allow SSL traffic to be transferred using a self signed certificate.
 13 |  /// - Remark: Using this class should **ONLY** be used for testing purposes.
 14 | public final class SelfSignedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 15 |     // MARK: Variables
 16 |     private let logger: Logger
    :
 28 |     ///   - completionHandler: A handler that your delegate method must call.
 29 |     /// - Remark: This completion handler uses `credential`.
 30 |     public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                 `- note: add @available attribute to enclosing instance method
 31 |         if let error = challenge.error {
 32 |             logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
 33 |             completionHandler(.cancelAuthenticationChallenge, nil)
 34 |             return
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:32:61: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
 12 | /// The `SelfSignedCertificateDelegate` will allow SSL traffic to be transferred using a self signed certificate.
 13 |  /// - Remark: Using this class should **ONLY** be used for testing purposes.
 14 | public final class SelfSignedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 15 |     // MARK: Variables
 16 |     private let logger: Logger
    :
 28 |     ///   - completionHandler: A handler that your delegate method must call.
 29 |     /// - Remark: This completion handler uses `credential`.
 30 |     public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                 `- note: add @available attribute to enclosing instance method
 31 |         if let error = challenge.error {
 32 |             logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
    |                                                             |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                             `- note: add 'if #available' version check
 33 |             completionHandler(.cancelAuthenticationChallenge, nil)
 34 |             return
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:38:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
 12 | /// The `SelfSignedCertificateDelegate` will allow SSL traffic to be transferred using a self signed certificate.
 13 |  /// - Remark: Using this class should **ONLY** be used for testing purposes.
 14 | public final class SelfSignedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 15 |     // MARK: Variables
 16 |     private let logger: Logger
    :
 28 |     ///   - completionHandler: A handler that your delegate method must call.
 29 |     /// - Remark: This completion handler uses `credential`.
 30 |     public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                 `- note: add @available attribute to enclosing instance method
 31 |         if let error = challenge.error {
 32 |             logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
    :
 36 |
 37 |         guard let serverTrust = challenge.protectionSpace.serverTrust else {
 38 |             logger.info("SSL certificate trust for the challenge protection space was nil.")
    |                         |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                         `- note: add 'if #available' version check
 39 |             completionHandler(.performDefaultHandling, nil)
 40 |             return
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:43:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
 12 | /// The `SelfSignedCertificateDelegate` will allow SSL traffic to be transferred using a self signed certificate.
 13 |  /// - Remark: Using this class should **ONLY** be used for testing purposes.
 14 | public final class SelfSignedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 15 |     // MARK: Variables
 16 |     private let logger: Logger
    :
 28 |     ///   - completionHandler: A handler that your delegate method must call.
 29 |     /// - Remark: This completion handler uses `credential`.
 30 |     public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                 `- note: add @available attribute to enclosing instance method
 31 |         if let error = challenge.error {
 32 |             logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
    :
 41 |         }
 42 |
 43 |         logger.info("Allowing self-signed certificate to be trusted for challenge.")
    |                     |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                     `- note: add 'if #available' version check
 44 |
 45 |         completionHandler(.useCredential, URLCredential(trust: serverTrust))
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:61:18: error: 'Logger' is only available in macOS 11.0 or newer
 48 |
 49 | /// The `PinnedCertificateDelegate` compares certificate provided by the SSL handshake to a certificate presented by the client.
 50 | public final class PinnedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 51 |     // MARK: Variables
 52 |     private let logger: Logger
    :
 58 |     /// Initializes a `PinnedCertificateDelegate` with a certificate represented as a base64 `String`.
 59 |     /// - Parameter certificate: A base64 encoded DER (Distinguished Encoding Rules) representation of an X.509 certificate.
 60 |     public init?(with certificate: String) {
    |            `- note: add @available attribute to enclosing initializer
 61 |         logger = Logger(subsystem: serviceName, category: "networking")
    |                  |- error: 'Logger' is only available in macOS 11.0 or newer
    |                  `- note: add 'if #available' version check
 62 |
 63 |         guard let data = Data(base64Encoded: certificate) else {
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:64:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
 48 |
 49 | /// The `PinnedCertificateDelegate` compares certificate provided by the SSL handshake to a certificate presented by the client.
 50 | public final class PinnedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 51 |     // MARK: Variables
 52 |     private let logger: Logger
    :
 58 |     /// Initializes a `PinnedCertificateDelegate` with a certificate represented as a base64 `String`.
 59 |     /// - Parameter certificate: A base64 encoded DER (Distinguished Encoding Rules) representation of an X.509 certificate.
 60 |     public init?(with certificate: String) {
    |            `- note: add @available attribute to enclosing initializer
 61 |         logger = Logger(subsystem: serviceName, category: "networking")
 62 |
 63 |         guard let data = Data(base64Encoded: certificate) else {
 64 |             logger.error("The base64 encoded certificate was invalid.")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
 65 |             return nil
 66 |         }
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:79:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
 48 |
 49 | /// The `PinnedCertificateDelegate` compares certificate provided by the SSL handshake to a certificate presented by the client.
 50 | public final class PinnedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 51 |     // MARK: Variables
 52 |     private let logger: Logger
    :
 75 |     ///  - challenge: An object that contains the request for authentication.
 76 |     ///   - completionHandler: A handler that your delegate method must call.
 77 |     public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                 `- note: add @available attribute to enclosing instance method
 78 |         if let error = challenge.error {
 79 |             logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
    |                          |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                          `- note: add 'if #available' version check
 80 |             completionHandler(.cancelAuthenticationChallenge, nil)
 81 |             return
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:79:61: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
 48 |
 49 | /// The `PinnedCertificateDelegate` compares certificate provided by the SSL handshake to a certificate presented by the client.
 50 | public final class PinnedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 51 |     // MARK: Variables
 52 |     private let logger: Logger
    :
 75 |     ///  - challenge: An object that contains the request for authentication.
 76 |     ///   - completionHandler: A handler that your delegate method must call.
 77 |     public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                 `- note: add @available attribute to enclosing instance method
 78 |         if let error = challenge.error {
 79 |             logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
    |                                                             |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
    |                                                             `- note: add 'if #available' version check
 80 |             completionHandler(.cancelAuthenticationChallenge, nil)
 81 |             return
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:86:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
 48 |
 49 | /// The `PinnedCertificateDelegate` compares certificate provided by the SSL handshake to a certificate presented by the client.
 50 | public final class PinnedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 51 |     // MARK: Variables
 52 |     private let logger: Logger
    :
 75 |     ///  - challenge: An object that contains the request for authentication.
 76 |     ///   - completionHandler: A handler that your delegate method must call.
 77 |     public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                 `- note: add @available attribute to enclosing instance method
 78 |         if let error = challenge.error {
 79 |             logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
    :
 84 |         guard let serverTrust = challenge.protectionSpace.serverTrust else {
 85 |             // Terminate further processing, no certificate at index 0
 86 |             logger.info("SSL certificate trust chain for the challenge protection space was not found.")
    |                         |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                         `- note: add 'if #available' version check
 87 |             completionHandler(.cancelAuthenticationChallenge, nil)
 88 |             return
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:92:31: error: 'SecTrustCopyCertificateChain' is only available in macOS 12.0 or newer
 48 |
 49 | /// The `PinnedCertificateDelegate` compares certificate provided by the SSL handshake to a certificate presented by the client.
 50 | public final class PinnedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 51 |     // MARK: Variables
 52 |     private let logger: Logger
    :
 75 |     ///  - challenge: An object that contains the request for authentication.
 76 |     ///   - completionHandler: A handler that your delegate method must call.
 77 |     public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                 `- note: add @available attribute to enclosing instance method
 78 |         if let error = challenge.error {
 79 |             logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
    :
 90 |
 91 |         // Compare the presented certificate to the pinned certificate.
 92 |         if let certificates = SecTrustCopyCertificateChain(serverTrust) as? [SecCertificate] {
    |                               |- error: 'SecTrustCopyCertificateChain' is only available in macOS 12.0 or newer
    |                               `- note: add 'if #available' version check
 93 |             let serverCertificatesData = Set(
 94 |                 certificates.map { SecCertificateCopyData($0) as Data }
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:98:29: error: 'OSLogMessage' is only available in macOS 11.0 or newer
 48 |
 49 | /// The `PinnedCertificateDelegate` compares certificate provided by the SSL handshake to a certificate presented by the client.
 50 | public final class PinnedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 51 |     // MARK: Variables
 52 |     private let logger: Logger
    :
 75 |     ///  - challenge: An object that contains the request for authentication.
 76 |     ///   - completionHandler: A handler that your delegate method must call.
 77 |     public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                 `- note: add @available attribute to enclosing instance method
 78 |         if let error = challenge.error {
 79 |             logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
    :
 96 |
 97 |             if serverCertificatesData.contains(certificateData) {
 98 |                 logger.info("SSL certificate presented in challenge matches the pinned certificate.")
    |                             |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                             `- note: add 'if #available' version check
 99 |                 completionHandler(.useCredential, URLCredential(trust: serverTrust))
100 |                 return
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:106:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
 48 |
 49 | /// The `PinnedCertificateDelegate` compares certificate provided by the SSL handshake to a certificate presented by the client.
 50 | public final class PinnedCertificateDelegate: NSObject, URLSessionDelegate {
    |                    `- note: add @available attribute to enclosing class
 51 |     // MARK: Variables
 52 |     private let logger: Logger
    :
 75 |     ///  - challenge: An object that contains the request for authentication.
 76 |     ///   - completionHandler: A handler that your delegate method must call.
 77 |     public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
    |                 `- note: add @available attribute to enclosing instance method
 78 |         if let error = challenge.error {
 79 |             logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
    :
104 |
105 |         // Don't trust the presented certificate by default.
106 |         logger.info("SSL certificate presented in challenge does not match the pinned certificate.")
    |                     |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
    |                     `- note: add 'if #available' version check
107 |         completionHandler(.cancelAuthenticationChallenge, nil)
108 |     }
[31/55] Compiling FIDO2 SecKeyStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/fido2/PublicKeyCredentialProvider.swift:9:8: error: no such module 'UIKit'
  7 | import LocalAuthentication
  8 | import os.log
  9 | import UIKit
    |        `- error: no such module 'UIKit'
 10 |
 11 | /// A type that indicates when Fido2ApiClient encounters an error.
[32/55] Compiling FIDO2 SecKeyConvertible.swift
/Users/admin/builder/spi-builder-workspace/Sources/fido2/PublicKeyCredentialProvider.swift:9:8: error: no such module 'UIKit'
  7 | import LocalAuthentication
  8 | import os.log
  9 | import UIKit
    |        `- error: no such module 'UIKit'
 10 |
 11 | /// A type that indicates when Fido2ApiClient encounters an error.
[33/56] Compiling Core Data+Extension.swift
[34/56] Compiling Core DateFormatter+Extension.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[35/56] 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 |
[36/56] Compiling Adaptive resource_bundle_accessor.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 |
[37/56] Compiling Adaptive Helpers.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 |
[38/56] 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 |
[39/56] 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 |
[40/56] 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 |
[41/56] 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 |
[42/56] 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 |
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/35] 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 |
[3/35] Compiling Adaptive Helpers.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 |
[4/35] 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 |
[5/35] Compiling Adaptive resource_bundle_accessor.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 |
[6/35] 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 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[7/35] 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 |
[8/35] 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 |
[9/35] 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 |
BUILD FAILURE 6.1 macosSpm