Build Information
Failed to build IBM Verify, reference main (abae1d), with Swift 6.1 for macOS (SPM) on 26 Sep 2026 09:54:05 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64Build Log
85 | 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
86 | completionHandler(.cancelAuthenticationChallenge, nil)
87 | return
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:91: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
:
74 | /// - challenge: An object that contains the request for authentication.
75 | /// - completionHandler: A handler that your delegate method must call.
76 | public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
| `- note: add @available attribute to enclosing instance method
77 | if let error = challenge.error {
78 | logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
:
89 |
90 | // Compare the presented certificate to the pinned certificate.
91 | if let certificates = SecTrustCopyCertificateChain(serverTrust) as? [SecCertificate] {
| |- error: 'SecTrustCopyCertificateChain' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
92 | let serverCertificatesData = Set(
93 | certificates.map { SecCertificateCopyData($0) as Data }
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:97: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
:
74 | /// - challenge: An object that contains the request for authentication.
75 | /// - completionHandler: A handler that your delegate method must call.
76 | public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
| `- note: add @available attribute to enclosing instance method
77 | if let error = challenge.error {
78 | logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
:
95 |
96 | if serverCertificatesData.contains(certificateData) {
97 | 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
98 | completionHandler(.useCredential, URLCredential(trust: serverTrust))
99 | return
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:105: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
:
74 | /// - challenge: An object that contains the request for authentication.
75 | /// - completionHandler: A handler that your delegate method must call.
76 | public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
| `- note: add @available attribute to enclosing instance method
77 | if let error = challenge.error {
78 | logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
:
103 |
104 | // Don't trust the presented certificate by default.
105 | 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
106 | completionHandler(.cancelAuthenticationChallenge, nil)
107 | }
[23/54] Compiling Core DefaultValue+Extension.swift
[24/54] Compiling Core DefaultValuePropertyWrapper.swift
[25/54] Compiling Core JSONDecoder+Extension.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/JailbreakDetector.swift:137:33: error: 'Logger' is only available in macOS 11.0 or newer
47 | /// is reported explicitly through `Environment.simulator` rather than being
48 | /// represented as a falsely "clean" physical-device result.
49 | public enum JailbreakDetector {
| `- note: add @available attribute to enclosing enum
50 |
51 | // MARK: - Result
:
135 | ///
136 | /// Production builds do not include the logger or diagnostic statements.
137 | private static let logger = Logger(
| | `- error: 'Logger' is only available in macOS 11.0 or newer
| `- note: add @available attribute to enclosing static property
138 | subsystem: Bundle.main.bundleIdentifier
139 | ?? "JailbreakDetector",
/Users/admin/builder/spi-builder-workspace/Sources/core/JailbreakDetector.swift:176:13: error: 'OSLogMessage' is only available in macOS 11.0 or newer
47 | /// is reported explicitly through `Environment.simulator` rather than being
48 | /// represented as a falsely "clean" physical-device result.
49 | public enum JailbreakDetector {
| `- note: add @available attribute to enclosing enum
50 |
51 | // MARK: - Result
:
156 | /// - Returns: A `Result` containing the execution environment and the
157 | /// heuristic indicators collected during the check.
158 | public static func check() -> Result {
| `- note: add @available attribute to enclosing static method
159 | #if targetEnvironment(simulator)
160 |
:
174 | #if DEBUG
175 | logger.debug(
176 | "Jailbreak image check completed. Unexpected images: \(unexpectedImageCount)"
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
177 | )
178 | #endif
/Users/admin/builder/spi-builder-workspace/Sources/core/JailbreakDetector.swift:176:67: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
47 | /// is reported explicitly through `Environment.simulator` rather than being
48 | /// represented as a falsely "clean" physical-device result.
49 | public enum JailbreakDetector {
| `- note: add @available attribute to enclosing enum
50 |
51 | // MARK: - Result
:
156 | /// - Returns: A `Result` containing the execution environment and the
157 | /// heuristic indicators collected during the check.
158 | public static func check() -> Result {
| `- note: add @available attribute to enclosing static method
159 | #if targetEnvironment(simulator)
160 |
:
174 | #if DEBUG
175 | logger.debug(
176 | "Jailbreak image check completed. Unexpected images: \(unexpectedImageCount)"
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
177 | )
178 | #endif
[26/54] Compiling Core JailbreakDetector.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/JailbreakDetector.swift:137:33: error: 'Logger' is only available in macOS 11.0 or newer
47 | /// is reported explicitly through `Environment.simulator` rather than being
48 | /// represented as a falsely "clean" physical-device result.
49 | public enum JailbreakDetector {
| `- note: add @available attribute to enclosing enum
50 |
51 | // MARK: - Result
:
135 | ///
136 | /// Production builds do not include the logger or diagnostic statements.
137 | private static let logger = Logger(
| | `- error: 'Logger' is only available in macOS 11.0 or newer
| `- note: add @available attribute to enclosing static property
138 | subsystem: Bundle.main.bundleIdentifier
139 | ?? "JailbreakDetector",
/Users/admin/builder/spi-builder-workspace/Sources/core/JailbreakDetector.swift:176:13: error: 'OSLogMessage' is only available in macOS 11.0 or newer
47 | /// is reported explicitly through `Environment.simulator` rather than being
48 | /// represented as a falsely "clean" physical-device result.
49 | public enum JailbreakDetector {
| `- note: add @available attribute to enclosing enum
50 |
51 | // MARK: - Result
:
156 | /// - Returns: A `Result` containing the execution environment and the
157 | /// heuristic indicators collected during the check.
158 | public static func check() -> Result {
| `- note: add @available attribute to enclosing static method
159 | #if targetEnvironment(simulator)
160 |
:
174 | #if DEBUG
175 | logger.debug(
176 | "Jailbreak image check completed. Unexpected images: \(unexpectedImageCount)"
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
177 | )
178 | #endif
/Users/admin/builder/spi-builder-workspace/Sources/core/JailbreakDetector.swift:176:67: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
47 | /// is reported explicitly through `Environment.simulator` rather than being
48 | /// represented as a falsely "clean" physical-device result.
49 | public enum JailbreakDetector {
| `- note: add @available attribute to enclosing enum
50 |
51 | // MARK: - Result
:
156 | /// - Returns: A `Result` containing the execution environment and the
157 | /// heuristic indicators collected during the check.
158 | public static func check() -> Result {
| `- note: add @available attribute to enclosing static method
159 | #if targetEnvironment(simulator)
160 |
:
174 | #if DEBUG
175 | logger.debug(
176 | "Jailbreak image check completed. Unexpected images: \(unexpectedImageCount)"
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
177 | )
178 | #endif
[27/54] Compiling Core Data+Extension.swift
[28/54] Compiling Core DateFormatter+Extension.swift
[29/54] Compiling Core NSNumber+Extension.swift
[30/54] Compiling Core String+Extension.swift
[31/54] Compiling Core KeychainService.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:139:25: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
| `- error: 'Logger' is only available in macOS 11.0 or newer
140 | private let serviceName = Bundle.main.bundleIdentifier!
141 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift: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 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:156:18: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
153 |
154 | /// Initializes the `KeychainService`.
155 | public override init() {
| `- note: add @available attribute to enclosing initializer
156 | logger = Logger(subsystem: serviceName, category: "keychain")
| |- error: 'Logger' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
157 | }
158 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:205:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
206 | throw KeychainError.invalidKey
207 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:248:82: error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
246 |
247 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 | let message = error?.takeRetainedValue().localizedDescription ?? String(localized: "Unknown access control error.")
| |- error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
249 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
250 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:248:100: error: 'LocalizationValue' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
246 |
247 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 | let message = error?.takeRetainedValue().localizedDescription ?? String(localized: "Unknown access control error.")
| |- error: 'LocalizationValue' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
249 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
250 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:249:30: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
247 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 | let message = error?.takeRetainedValue().localizedDescription ?? String(localized: "Unknown access control error.")
249 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
250 |
251 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:249:72: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
247 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 | let message = error?.takeRetainedValue().localizedDescription ?? String(localized: "Unknown access control error.")
249 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
250 |
251 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
263 | switch status {
264 | case errSecSuccess:
265 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
263 | switch status {
264 | case errSecSuccess:
265 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:81: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
263 | switch status {
264 | case errSecSuccess:
265 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
269 | default:
270 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
269 | default:
270 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:83: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
269 | default:
270 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:271:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
269 | default:
270 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
271 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
272 | throw KeychainError.unhandledError(message: message)
273 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:271:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
269 | default:
270 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
271 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
272 | throw KeychainError.unhandledError(message: message)
273 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:289:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
290 | throw KeychainError.invalidKey
291 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:324:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
322 | switch status {
323 | case errSecSuccess:
324 | logger.info("Item '\(forKey, privacy: .public)' was deleted from Keychain.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
325 | return
326 | case errSecItemNotFound:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:324:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
322 | switch status {
323 | case errSecSuccess:
324 | logger.info("Item '\(forKey, privacy: .public)' was deleted from Keychain.")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
325 | return
326 | case errSecItemNotFound:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
325 | return
326 | case errSecItemNotFound:
327 | logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
328 | return
329 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:28: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
325 | return
326 | case errSecItemNotFound:
327 | logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
328 | return
329 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:88: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
325 | return
326 | case errSecItemNotFound:
327 | logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
328 | return
329 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
329 | default:
330 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 | logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
332 | throw KeychainError.unhandledError(message: message)
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
329 | default:
330 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 | logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
332 | throw KeychainError.unhandledError(message: message)
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:106: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
329 | default:
330 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 | logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
332 | throw KeychainError.unhandledError(message: message)
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:383:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
384 | throw KeychainError.invalidKey
385 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:420:76: error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
418 |
419 | // Handle lookup results
420 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
| |- error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
421 |
422 | // Check the status for an error.
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:420:94: error: 'LocalizationValue' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
418 |
419 | // Handle lookup results
420 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
| |- error: 'LocalizationValue' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
421 |
422 | // Check the status for an error.
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:427:32: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
425 | // Attempt to decode the value back to it's type.
426 | guard let result = item as? Data else {
427 | logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
428 | throw KeychainError.unexpectedData
429 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:427:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
425 | // Attempt to decode the value back to it's type.
426 | guard let result = item as? Data else {
427 | logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
428 | throw KeychainError.unexpectedData
429 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:433:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
431 | return result
432 | case errSecUserCanceled:
433 | logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
434 | throw KeychainError.unhandledError(message: message)
435 | case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:433:72: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
431 | return result
432 | case errSecUserCanceled:
433 | logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
434 | throw KeychainError.unhandledError(message: message)
435 | case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:436:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
434 | throw KeychainError.unhandledError(message: message)
435 | case errSecItemNotFound, errSecInvalidItemRef:
436 | logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
437 | throw KeychainError.invalidKey
438 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:436:80: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
434 | throw KeychainError.unhandledError(message: message)
435 | case errSecItemNotFound, errSecInvalidItemRef:
436 | logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
437 | throw KeychainError.invalidKey
438 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:439:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
437 | throw KeychainError.invalidKey
438 | default:
439 | logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
440 | throw KeychainError.unhandledError(message: message)
441 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:439:79: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
437 | throw KeychainError.invalidKey
438 | default:
439 | logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
440 | throw KeychainError.unhandledError(message: message)
441 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
457 | /// print(result)
458 | /// ```
459 | public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
| `- note: add @available attribute to enclosing instance method
460 | // Construct a LAContext to surpress any biometry to access the key.
461 | let context = LAContext()
:
496 | let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 | logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
499 |
500 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:29: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
457 | /// print(result)
458 | /// ```
459 | public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
| `- note: add @available attribute to enclosing instance method
460 | // Construct a LAContext to surpress any biometry to access the key.
461 | let context = LAContext()
:
496 | let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 | logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
499 |
500 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:78: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
457 | /// print(result)
458 | /// ```
459 | public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
| `- note: add @available attribute to enclosing instance method
460 | // Construct a LAContext to surpress any biometry to access the key.
461 | let context = LAContext()
:
496 | let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 | logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
499 |
500 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:505:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
457 | /// print(result)
458 | /// ```
459 | public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
| `- note: add @available attribute to enclosing instance method
460 | // Construct a LAContext to surpress any biometry to access the key.
461 | let context = LAContext()
:
503 | default:
504 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown keychain error"
505 | logger.error("Keychain existence check error: \(message)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
506 | return false // Error occured
507 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:505:60: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
457 | /// print(result)
458 | /// ```
459 | public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
| `- note: add @available attribute to enclosing instance method
460 | // Construct a LAContext to surpress any biometry to access the key.
461 | let context = LAContext()
:
503 | default:
504 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown keychain error"
505 | logger.error("Keychain existence check error: \(message)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
506 | return false // Error occured
507 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
596 | let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
599 |
600 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:40: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
596 | let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
599 |
600 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:73: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
596 | let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
599 |
600 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:103: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
596 | let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
599 |
600 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:604:80: error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
602 | return
603 | default:
604 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
| |- error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
605 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
606 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:604:98: error: 'LocalizationValue' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
602 | return
603 | default:
604 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
| |- error: 'LocalizationValue' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
605 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
606 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:605:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
603 | default:
604 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
605 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
606 | throw KeychainError.unhandledError(message: message)
607 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:605:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
603 | default:
604 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
605 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
606 | throw KeychainError.unhandledError(message: message)
607 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeyedDecodingContainer+Extension.swift:29:119: error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
5 | import Foundation
6 |
7 | extension KeyedDecodingContainer {
| `- note: add @available attribute to enclosing extension
8 | /// Decodes a value of the given type for the given key.
9 | /// - Parameters:
:
20 | /// - forKeys: The array of keys that the decoded value is associated with.
21 | /// - Returns: A value of the requested type, if present for the given key and convertible to the requested type.
22 | public func decode<T>(_ type: T.Type, forKeys keys: [K]) throws -> T where T: Decodable {
| `- note: add @available attribute to enclosing instance method
23 | for key in keys {
24 | if let value = try? self.decode(type, forKey: key) {
:
27 | }
28 |
29 | throw DecodingError.typeMismatch(T.self, DecodingError.Context(codingPath: self.codingPath, debugDescription: String(localized: "Invalid key for CodingKeys")))
| |- error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
30 | }
31 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeyedDecodingContainer+Extension.swift:29:137: error: 'LocalizationValue' is only available in macOS 12 or newer
5 | import Foundation
6 |
7 | extension KeyedDecodingContainer {
| `- note: add @available attribute to enclosing extension
8 | /// Decodes a value of the given type for the given key.
9 | /// - Parameters:
:
20 | /// - forKeys: The array of keys that the decoded value is associated with.
21 | /// - Returns: A value of the requested type, if present for the given key and convertible to the requested type.
22 | public func decode<T>(_ type: T.Type, forKeys keys: [K]) throws -> T where T: Decodable {
| `- note: add @available attribute to enclosing instance method
23 | for key in keys {
24 | if let value = try? self.decode(type, forKey: key) {
:
27 | }
28 |
29 | throw DecodingError.typeMismatch(T.self, DecodingError.Context(codingPath: self.codingPath, debugDescription: String(localized: "Invalid key for CodingKeys")))
| |- error: 'LocalizationValue' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
30 | }
31 |
[32/54] Compiling Core KeyedDecodingContainer+Extension.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:139:25: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
| `- error: 'Logger' is only available in macOS 11.0 or newer
140 | private let serviceName = Bundle.main.bundleIdentifier!
141 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift: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 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:156:18: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
153 |
154 | /// Initializes the `KeychainService`.
155 | public override init() {
| `- note: add @available attribute to enclosing initializer
156 | logger = Logger(subsystem: serviceName, category: "keychain")
| |- error: 'Logger' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
157 | }
158 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:205:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
206 | throw KeychainError.invalidKey
207 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:248:82: error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
246 |
247 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 | let message = error?.takeRetainedValue().localizedDescription ?? String(localized: "Unknown access control error.")
| |- error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
249 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
250 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:248:100: error: 'LocalizationValue' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
246 |
247 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 | let message = error?.takeRetainedValue().localizedDescription ?? String(localized: "Unknown access control error.")
| |- error: 'LocalizationValue' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
249 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
250 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:249:30: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
247 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 | let message = error?.takeRetainedValue().localizedDescription ?? String(localized: "Unknown access control error.")
249 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
250 |
251 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:249:72: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
247 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
248 | let message = error?.takeRetainedValue().localizedDescription ?? String(localized: "Unknown access control error.")
249 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
250 |
251 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
263 | switch status {
264 | case errSecSuccess:
265 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
263 | switch status {
264 | case errSecSuccess:
265 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:81: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
263 | switch status {
264 | case errSecSuccess:
265 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
269 | default:
270 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
269 | default:
270 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:268:83: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
266 | case errSecDuplicateItem:
267 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
268 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
269 | default:
270 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:271:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
269 | default:
270 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
271 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
272 | throw KeychainError.unhandledError(message: message)
273 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:271:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
201 | /// try? KeychainService.default.addItem("private-key", value: info, allowSync: true)
202 | /// ```
203 | public func addItem(_ forKey: String, value: SecKeyAddType, allowSync: Bool = false, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
204 | guard !forKey.isEmpty else {
205 | logger.error("The forKey argument is invalid.")
:
269 | default:
270 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
271 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
272 | throw KeychainError.unhandledError(message: message)
273 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:289:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
290 | throw KeychainError.invalidKey
291 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:324:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
322 | switch status {
323 | case errSecSuccess:
324 | logger.info("Item '\(forKey, privacy: .public)' was deleted from Keychain.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
325 | return
326 | case errSecItemNotFound:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:324:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
322 | switch status {
323 | case errSecSuccess:
324 | logger.info("Item '\(forKey, privacy: .public)' was deleted from Keychain.")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
325 | return
326 | case errSecItemNotFound:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
325 | return
326 | case errSecItemNotFound:
327 | logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
328 | return
329 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:28: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
325 | return
326 | case errSecItemNotFound:
327 | logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
328 | return
329 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:327:88: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
325 | return
326 | case errSecItemNotFound:
327 | logger.info("'\(forKey, privacy: .public)' not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
328 | return
329 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
329 | default:
330 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 | logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
332 | throw KeychainError.unhandledError(message: message)
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
329 | default:
330 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 | logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
332 | throw KeychainError.unhandledError(message: message)
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:331:106: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
285 | /// ```
286 | /// - Remark: No error is thrown when the key is not found.
287 | public func deleteItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
288 | guard !forKey.isEmpty else {
289 | logger.error("The forKey argument is invalid.")
:
329 | default:
330 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
331 | logger.error("Error occured performing the operation. \(message, privacy: .public). Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
332 | throw KeychainError.unhandledError(message: message)
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:383:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
384 | throw KeychainError.invalidKey
385 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:420:76: error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
418 |
419 | // Handle lookup results
420 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
| |- error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
421 |
422 | // Check the status for an error.
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:420:94: error: 'LocalizationValue' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
418 |
419 | // Handle lookup results
420 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
| |- error: 'LocalizationValue' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
421 |
422 | // Check the status for an error.
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:427:32: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
425 | // Attempt to decode the value back to it's type.
426 | guard let result = item as? Data else {
427 | logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
428 | throw KeychainError.unexpectedData
429 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:427:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
425 | // Attempt to decode the value back to it's type.
426 | guard let result = item as? Data else {
427 | logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
428 | throw KeychainError.unexpectedData
429 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:433:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
431 | return result
432 | case errSecUserCanceled:
433 | logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
434 | throw KeychainError.unhandledError(message: message)
435 | case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:433:72: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
431 | return result
432 | case errSecUserCanceled:
433 | logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
434 | throw KeychainError.unhandledError(message: message)
435 | case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:436:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
434 | throw KeychainError.unhandledError(message: message)
435 | case errSecItemNotFound, errSecInvalidItemRef:
436 | logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
437 | throw KeychainError.invalidKey
438 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:436:80: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
434 | throw KeychainError.unhandledError(message: message)
435 | case errSecItemNotFound, errSecInvalidItemRef:
436 | logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
437 | throw KeychainError.invalidKey
438 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:439:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
437 | throw KeychainError.invalidKey
438 | default:
439 | logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
440 | throw KeychainError.unhandledError(message: message)
441 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:439:79: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
379 | /// print(String(data: result, encoding: .utf8))
380 | /// ```
381 | public func readItem(_ forKey: String, searchType: SecKeySearchType = .generic) throws -> Data {
| `- note: add @available attribute to enclosing instance method
382 | guard !forKey.isEmpty else {
383 | logger.error("The forKey argument is invalid.")
:
437 | throw KeychainError.invalidKey
438 | default:
439 | logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
440 | throw KeychainError.unhandledError(message: message)
441 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
457 | /// print(result)
458 | /// ```
459 | public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
| `- note: add @available attribute to enclosing instance method
460 | // Construct a LAContext to surpress any biometry to access the key.
461 | let context = LAContext()
:
496 | let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 | logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
499 |
500 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:29: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
457 | /// print(result)
458 | /// ```
459 | public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
| `- note: add @available attribute to enclosing instance method
460 | // Construct a LAContext to surpress any biometry to access the key.
461 | let context = LAContext()
:
496 | let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 | logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
499 |
500 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:498:78: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
457 | /// print(result)
458 | /// ```
459 | public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
| `- note: add @available attribute to enclosing instance method
460 | // Construct a LAContext to surpress any biometry to access the key.
461 | let context = LAContext()
:
496 | let status = SecItemCopyMatching(query as CFDictionary,nil)
497 |
498 | logger.info("Item '\(forKey, privacy: .public)' exists in Keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
499 |
500 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:505:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
457 | /// print(result)
458 | /// ```
459 | public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
| `- note: add @available attribute to enclosing instance method
460 | // Construct a LAContext to surpress any biometry to access the key.
461 | let context = LAContext()
:
503 | default:
504 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown keychain error"
505 | logger.error("Keychain existence check error: \(message)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
506 | return false // Error occured
507 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:505:60: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
457 | /// print(result)
458 | /// ```
459 | public func itemExists(_ forKey: String, searchType: SecKeySearchType = .generic) -> Bool {
| `- note: add @available attribute to enclosing instance method
460 | // Construct a LAContext to surpress any biometry to access the key.
461 | let context = LAContext()
:
503 | default:
504 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown keychain error"
505 | logger.error("Keychain existence check error: \(message)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
506 | return false // Error occured
507 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
596 | let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
599 |
600 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:40: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
596 | let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
599 |
600 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:73: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
596 | let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
599 |
600 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:598:103: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
596 | let status = SecItemUpdate(query as CFDictionary, updateAttributes as CFDictionary)
597 |
598 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
599 |
600 | switch status {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:604:80: error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
602 | return
603 | default:
604 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
| |- error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
605 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
606 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:604:98: error: 'LocalizationValue' is only available in macOS 12 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
602 | return
603 | default:
604 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
| |- error: 'LocalizationValue' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
605 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
606 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:605:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
603 | default:
604 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
605 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
606 | throw KeychainError.unhandledError(message: message)
607 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:605:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
557 | /// }
558 | /// ```
559 | public func renameItem(_ forKey: String, newKey: String, searchType: SecKeySearchType = .generic) throws {
| `- note: add @available attribute to enclosing instance method
560 | // Construct a LAContext to surpress any biometry to access the key.
561 | let context = LAContext()
:
603 | default:
604 | let message = SecCopyErrorMessageString(status, nil) as String? ?? String(localized: "Unknown error")
605 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
606 | throw KeychainError.unhandledError(message: message)
607 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeyedDecodingContainer+Extension.swift:29:119: error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
5 | import Foundation
6 |
7 | extension KeyedDecodingContainer {
| `- note: add @available attribute to enclosing extension
8 | /// Decodes a value of the given type for the given key.
9 | /// - Parameters:
:
20 | /// - forKeys: The array of keys that the decoded value is associated with.
21 | /// - Returns: A value of the requested type, if present for the given key and convertible to the requested type.
22 | public func decode<T>(_ type: T.Type, forKeys keys: [K]) throws -> T where T: Decodable {
| `- note: add @available attribute to enclosing instance method
23 | for key in keys {
24 | if let value = try? self.decode(type, forKey: key) {
:
27 | }
28 |
29 | throw DecodingError.typeMismatch(T.self, DecodingError.Context(codingPath: self.codingPath, debugDescription: String(localized: "Invalid key for CodingKeys")))
| |- error: 'init(localized:table:bundle:locale:comment:)' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
30 | }
31 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeyedDecodingContainer+Extension.swift:29:137: error: 'LocalizationValue' is only available in macOS 12 or newer
5 | import Foundation
6 |
7 | extension KeyedDecodingContainer {
| `- note: add @available attribute to enclosing extension
8 | /// Decodes a value of the given type for the given key.
9 | /// - Parameters:
:
20 | /// - forKeys: The array of keys that the decoded value is associated with.
21 | /// - Returns: A value of the requested type, if present for the given key and convertible to the requested type.
22 | public func decode<T>(_ type: T.Type, forKeys keys: [K]) throws -> T where T: Decodable {
| `- note: add @available attribute to enclosing instance method
23 | for key in keys {
24 | if let value = try? self.decode(type, forKey: key) {
:
27 | }
28 |
29 | throw DecodingError.typeMismatch(T.self, DecodingError.Context(codingPath: self.codingPath, debugDescription: String(localized: "Invalid key for CodingKeys")))
| |- error: 'LocalizationValue' is only available in macOS 12 or newer
| `- note: add 'if #available' version check
30 | }
31 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[33/54] 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 |
[34/54] 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 |
[35/54] 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 |
[36/54] 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 |
[37/54] 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 |
[38/54] 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 |
[39/54] 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 |
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/36] 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 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/36] 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 |
[4/36] 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 |
[5/36] 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 |
[6/36] 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 |
[7/36] 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 |
[8/36] 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/36] 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 |
BUILD FAILURE 6.1 macosSpm