Build Information
Failed to build IBM Security Verify, reference main (4189b9
), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 04:29:06 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
Build Log
100 | return
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:106:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
48 |
49 | /// The `PinnedCertificateDelegate` compares certificate provided by the SSL handshake to a certificate presented by the client.
50 | public final class PinnedCertificateDelegate: NSObject, URLSessionDelegate {
| `- note: add @available attribute to enclosing class
51 | // MARK: Variables
52 | private let logger: Logger
:
75 | /// - challenge: An object that contains the request for authentication.
76 | /// - completionHandler: A handler that your delegate method must call.
77 | public func urlSession(_: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
| `- note: add @available attribute to enclosing instance method
78 | if let error = challenge.error {
79 | logger.error("Cancel authentication challenge. \(error.localizedDescription, privacy: .public)")
:
104 |
105 | // Don't trust the presented certificate by default.
106 | logger.info("SSL certificate presented in challenge does not match the pinned certificate.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
107 | completionHandler(.cancelAuthenticationChallenge, nil)
108 | }
[23/55] Compiling Core Thread+Extension.swift
[24/55] Compiling Core URLSession+Extension.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSession+Extension.swift:304:53: error: 'data(for:delegate:)' is only available in macOS 12.0 or newer
296 |
297 | // MARK: - URLSession Extension
298 | extension URLSession {
| `- note: add @available attribute to enclosing extension
299 | /// Creates a task that retrieves the contents of the specified URL, then calls a handler upon completion.
300 | /// - Parameter resource: The `HTTPResource` containing the request.
301 | /// - Returns: The new session data task.
302 | @discardableResult
303 | public func dataTask<T>(for resource: HTTPResource<T>) async throws -> T {
| `- note: add @available attribute to enclosing instance method
304 | async let (data, response) = try await self.data(for: resource.request)
| |- error: 'data(for:delegate:)' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
305 |
306 | guard let httpResponse = try await response as? HTTPURLResponse else {
[25/55] Compiling FIDO2 PublicKeyCredentialProvider.swift
/Users/admin/builder/spi-builder-workspace/Sources/fido2/PublicKeyCredentialProvider.swift:9:8: error: no such module 'UIKit'
7 | import LocalAuthentication
8 | import os.log
9 | import UIKit
| `- error: no such module 'UIKit'
10 |
11 | /// A type that indicates when Fido2ApiClient encounters an error.
[26/55] Compiling FIDO2 PublicKeyCredential.swift
/Users/admin/builder/spi-builder-workspace/Sources/fido2/PublicKeyCredentialProvider.swift:9:8: error: no such module 'UIKit'
7 | import LocalAuthentication
8 | import os.log
9 | import UIKit
| `- error: no such module 'UIKit'
10 |
11 | /// A type that indicates when Fido2ApiClient encounters an error.
[27/56] Compiling Adaptive AdaptiveResult.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
[28/56] Compiling Adaptive Enums.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
[29/56] Compiling Adaptive Evaluation.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
[30/56] Compiling Adaptive Helpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
[31/56] Compiling Core KeyedDecodingContainer+Extension.swift
[32/56] Compiling Core NSNumber+Extension.swift
[33/56] Compiling Core String+Extension.swift
[34/56] Compiling FIDO2 COSE.swift
/Users/admin/builder/spi-builder-workspace/Sources/fido2/PublicKeyCredentialProvider.swift:9:8: error: no such module 'UIKit'
7 | import LocalAuthentication
8 | import os.log
9 | import UIKit
| `- error: no such module 'UIKit'
10 |
11 | /// A type that indicates when Fido2ApiClient encounters an error.
[35/56] Compiling FIDO2 Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/fido2/PublicKeyCredentialProvider.swift:9:8: error: no such module 'UIKit'
7 | import LocalAuthentication
8 | import os.log
9 | import UIKit
| `- error: no such module 'UIKit'
10 |
11 | /// A type that indicates when Fido2ApiClient encounters an error.
[36/56] Compiling Core DefaultValue+Extension.swift
[37/56] Compiling Core DefaultValuePropertyWrapper.swift
[38/56] Compiling Core Data+Extension.swift
[39/56] Compiling Core DateFormatter+Extension.swift
[40/56] Compiling Core JSONDecoder+Extension.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:139:25: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
| `- error: 'Logger' is only available in macOS 11.0 or newer
140 | private let serviceName = Bundle.main.bundleIdentifier!
141 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:142:24: warning: static property '_default' is not concurrency-safe because non-'Sendable' type 'KeychainService' may have shared mutable state; this is an error in the Swift 6 language mode
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: class 'KeychainService' does not conform to the 'Sendable' protocol
138 | // MARK: Variables
139 | private let logger: Logger
140 | private let serviceName = Bundle.main.bundleIdentifier!
141 |
142 | private static let _default = KeychainService()
| |- warning: static property '_default' is not concurrency-safe because non-'Sendable' type 'KeychainService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property '_default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
143 |
144 | /// Returns the default singleton instance.
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:59:42: error: 'biometryAny' is only available in macOS 10.13.4 or newer
26 |
27 | /// Access control constants that dictate how a keychain item may be used.
28 | public enum SecAccessControl: RawRepresentable {
| `- note: add @available attribute to enclosing enum
29 | public typealias RawValue = SecAccessControlCreateFlags
30 |
:
53 | ///
54 | /// - Parameter rawValue: The raw value to use for the new instance.
55 | public init?(rawValue: SecAccessControlCreateFlags) {
| `- note: add @available attribute to enclosing initializer
56 | switch rawValue {
57 | case SecAccessControlCreateFlags.devicePasscode:
58 | self = .devicePasscode
59 | case SecAccessControlCreateFlags.biometryAny:
| |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
| `- note: add 'if #available' version check
60 | self = .biometryAny
61 | case SecAccessControlCreateFlags.biometryCurrentSet:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:61:42: error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
26 |
27 | /// Access control constants that dictate how a keychain item may be used.
28 | public enum SecAccessControl: RawRepresentable {
| `- note: add @available attribute to enclosing enum
29 | public typealias RawValue = SecAccessControlCreateFlags
30 |
:
53 | ///
54 | /// - Parameter rawValue: The raw value to use for the new instance.
55 | public init?(rawValue: SecAccessControlCreateFlags) {
| `- note: add @available attribute to enclosing initializer
56 | switch rawValue {
57 | case SecAccessControlCreateFlags.devicePasscode:
:
59 | case SecAccessControlCreateFlags.biometryAny:
60 | self = .biometryAny
61 | case SecAccessControlCreateFlags.biometryCurrentSet:
| |- error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
| `- note: add 'if #available' version check
62 | self = .biometryCurrentSet
63 | case SecAccessControlCreateFlags.userPresence:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:75:48: error: 'biometryAny' is only available in macOS 10.13.4 or newer
26 |
27 | /// Access control constants that dictate how a keychain item may be used.
28 | public enum SecAccessControl: RawRepresentable {
| `- note: add @available attribute to enclosing enum
29 | public typealias RawValue = SecAccessControlCreateFlags
30 |
:
68 | }
69 |
70 | public var rawValue: RawValue {
| `- note: add @available attribute to enclosing property
71 | switch self {
72 | case .devicePasscode:
73 | return SecAccessControlCreateFlags.devicePasscode
74 | case .biometryAny:
75 | return SecAccessControlCreateFlags.biometryAny
| |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
| `- note: add 'if #available' version check
76 | case .biometryCurrentSet:
77 | return SecAccessControlCreateFlags.biometryCurrentSet
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:77:48: error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
26 |
27 | /// Access control constants that dictate how a keychain item may be used.
28 | public enum SecAccessControl: RawRepresentable {
| `- note: add @available attribute to enclosing enum
29 | public typealias RawValue = SecAccessControlCreateFlags
30 |
:
68 | }
69 |
70 | public var rawValue: RawValue {
| `- note: add @available attribute to enclosing property
71 | switch self {
72 | case .devicePasscode:
:
75 | return SecAccessControlCreateFlags.biometryAny
76 | case .biometryCurrentSet:
77 | return SecAccessControlCreateFlags.biometryCurrentSet
| |- error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
| `- note: add 'if #available' version check
78 | case .userPresence:
79 | return SecAccessControlCreateFlags.userPresence
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:153:18: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
150 |
151 | /// Initializes the `KeychainService`.
152 | public override init() {
| `- note: add @available attribute to enclosing initializer
153 | logger = Logger(subsystem: serviceName, category: "keychain")
| |- error: 'Logger' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
154 | }
155 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:200:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
201 | throw KeychainError.invalidKey
202 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:219:30: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
217 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
218 | let message = error!.takeRetainedValue().localizedDescription
219 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
220 |
221 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:219:72: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
217 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
218 | let message = error!.takeRetainedValue().localizedDescription
219 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
220 |
221 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
233 | switch status {
234 | case errSecSuccess:
235 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
233 | switch status {
234 | case errSecSuccess:
235 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235:81: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
233 | switch status {
234 | case errSecSuccess:
235 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
239 | default:
240 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
239 | default:
240 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238:83: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
239 | default:
240 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:241:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
239 | default:
240 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
241 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
242 | throw KeychainError.unhandledError(message: message)
243 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:241:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
239 | default:
240 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
241 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
242 | throw KeychainError.unhandledError(message: message)
243 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:255:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
256 | throw KeychainError.invalidKey
257 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
:
263 |
264 | let status = SecItemDelete(query as CFDictionary)
265 | logger.info("Item '\(forKey, privacy: .public)' deleted from keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 |
267 | guard status == errSecSuccess || status == errSecItemNotFound else {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:29: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
:
263 |
264 | let status = SecItemDelete(query as CFDictionary)
265 | logger.info("Item '\(forKey, privacy: .public)' deleted from keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 |
267 | guard status == errSecSuccess || status == errSecItemNotFound else {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:81: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
:
263 |
264 | let status = SecItemDelete(query as CFDictionary)
265 | logger.info("Item '\(forKey, privacy: .public)' deleted from keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 |
267 | guard status == errSecSuccess || status == errSecItemNotFound else {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:269:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
:
267 | guard status == errSecSuccess || status == errSecItemNotFound else {
268 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
269 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
270 | throw KeychainError.unhandledError(message: message)
271 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:269:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
:
267 | guard status == errSecSuccess || status == errSecItemNotFound else {
268 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
269 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
270 | throw KeychainError.unhandledError(message: message)
271 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:315:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
316 | throw KeychainError.invalidKey
317 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:335:32: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
333 | switch status {
334 | case errSecUserCanceled:
335 | logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
336 | throw KeychainError.unhandledError(message: message)
337 | case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:335:76: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
333 | switch status {
334 | case errSecUserCanceled:
335 | logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
336 | throw KeychainError.unhandledError(message: message)
337 | case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:338:32: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
336 | throw KeychainError.unhandledError(message: message)
337 | case errSecItemNotFound, errSecInvalidItemRef:
338 | logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
339 | throw KeychainError.invalidKey
340 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:338:84: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
336 | throw KeychainError.unhandledError(message: message)
337 | case errSecItemNotFound, errSecInvalidItemRef:
338 | logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
339 | throw KeychainError.invalidKey
340 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:341:32: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
339 | throw KeychainError.invalidKey
340 | default:
341 | logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
342 | throw KeychainError.unhandledError(message: message)
343 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:341:83: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
339 | throw KeychainError.invalidKey
340 | default:
341 | logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
342 | throw KeychainError.unhandledError(message: message)
343 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:348:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
346 | // Attempt to decode the value back to it's type.
347 | guard let result = item as? Data else {
348 | logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
349 | throw KeychainError.unexpectedData
350 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:348:64: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
346 | // Attempt to decode the value back to it's type.
347 | guard let result = item as? Data else {
348 | logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
349 | throw KeychainError.unexpectedData
350 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
366 | /// print(result)
367 | /// ```
368 | public func itemExists(_ forKey: String) -> Bool {
| `- note: add @available attribute to enclosing instance method
369 | // Construct a LAContext to surpress any biometry to access the key.
370 | let context = LAContext()
:
380 | let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 | logger.info("Item '\(forKey, privacy: .public)' exists in keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
383 |
384 | return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382:29: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
366 | /// print(result)
367 | /// ```
368 | public func itemExists(_ forKey: String) -> Bool {
| `- note: add @available attribute to enclosing instance method
369 | // Construct a LAContext to surpress any biometry to access the key.
370 | let context = LAContext()
:
380 | let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 | logger.info("Item '\(forKey, privacy: .public)' exists in keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
383 |
384 | return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382:78: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
366 | /// print(result)
367 | /// ```
368 | public func itemExists(_ forKey: String) -> Bool {
| `- note: add @available attribute to enclosing instance method
369 | // Construct a LAContext to surpress any biometry to access the key.
370 | let context = LAContext()
:
380 | let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 | logger.info("Item '\(forKey, privacy: .public)' exists in keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
383 |
384 | return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
445 |
446 | let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447:40: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
445 |
446 | let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447:73: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
445 |
446 | let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447:103: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
445 |
446 | let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:452:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
450 | guard status == errSecSuccess else {
451 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
452 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
453 | throw KeychainError.unhandledError(message: message)
454 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:452:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
450 | guard status == errSecSuccess else {
451 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
452 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
453 | throw KeychainError.unhandledError(message: message)
454 | }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[41/56] Emitting module FIDO2
/Users/admin/builder/spi-builder-workspace/Sources/fido2/PublicKeyCredentialProvider.swift:9:8: error: no such module 'UIKit'
7 | import LocalAuthentication
8 | import os.log
9 | import UIKit
| `- error: no such module 'UIKit'
10 |
11 | /// A type that indicates when Fido2ApiClient encounters an error.
[42/56] Compiling Core KeychainService.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:139:25: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
| `- error: 'Logger' is only available in macOS 11.0 or newer
140 | private let serviceName = Bundle.main.bundleIdentifier!
141 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:142:24: warning: static property '_default' is not concurrency-safe because non-'Sendable' type 'KeychainService' may have shared mutable state; this is an error in the Swift 6 language mode
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: class 'KeychainService' does not conform to the 'Sendable' protocol
138 | // MARK: Variables
139 | private let logger: Logger
140 | private let serviceName = Bundle.main.bundleIdentifier!
141 |
142 | private static let _default = KeychainService()
| |- warning: static property '_default' is not concurrency-safe because non-'Sendable' type 'KeychainService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property '_default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
143 |
144 | /// Returns the default singleton instance.
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:59:42: error: 'biometryAny' is only available in macOS 10.13.4 or newer
26 |
27 | /// Access control constants that dictate how a keychain item may be used.
28 | public enum SecAccessControl: RawRepresentable {
| `- note: add @available attribute to enclosing enum
29 | public typealias RawValue = SecAccessControlCreateFlags
30 |
:
53 | ///
54 | /// - Parameter rawValue: The raw value to use for the new instance.
55 | public init?(rawValue: SecAccessControlCreateFlags) {
| `- note: add @available attribute to enclosing initializer
56 | switch rawValue {
57 | case SecAccessControlCreateFlags.devicePasscode:
58 | self = .devicePasscode
59 | case SecAccessControlCreateFlags.biometryAny:
| |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
| `- note: add 'if #available' version check
60 | self = .biometryAny
61 | case SecAccessControlCreateFlags.biometryCurrentSet:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:61:42: error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
26 |
27 | /// Access control constants that dictate how a keychain item may be used.
28 | public enum SecAccessControl: RawRepresentable {
| `- note: add @available attribute to enclosing enum
29 | public typealias RawValue = SecAccessControlCreateFlags
30 |
:
53 | ///
54 | /// - Parameter rawValue: The raw value to use for the new instance.
55 | public init?(rawValue: SecAccessControlCreateFlags) {
| `- note: add @available attribute to enclosing initializer
56 | switch rawValue {
57 | case SecAccessControlCreateFlags.devicePasscode:
:
59 | case SecAccessControlCreateFlags.biometryAny:
60 | self = .biometryAny
61 | case SecAccessControlCreateFlags.biometryCurrentSet:
| |- error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
| `- note: add 'if #available' version check
62 | self = .biometryCurrentSet
63 | case SecAccessControlCreateFlags.userPresence:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:75:48: error: 'biometryAny' is only available in macOS 10.13.4 or newer
26 |
27 | /// Access control constants that dictate how a keychain item may be used.
28 | public enum SecAccessControl: RawRepresentable {
| `- note: add @available attribute to enclosing enum
29 | public typealias RawValue = SecAccessControlCreateFlags
30 |
:
68 | }
69 |
70 | public var rawValue: RawValue {
| `- note: add @available attribute to enclosing property
71 | switch self {
72 | case .devicePasscode:
73 | return SecAccessControlCreateFlags.devicePasscode
74 | case .biometryAny:
75 | return SecAccessControlCreateFlags.biometryAny
| |- error: 'biometryAny' is only available in macOS 10.13.4 or newer
| `- note: add 'if #available' version check
76 | case .biometryCurrentSet:
77 | return SecAccessControlCreateFlags.biometryCurrentSet
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:77:48: error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
26 |
27 | /// Access control constants that dictate how a keychain item may be used.
28 | public enum SecAccessControl: RawRepresentable {
| `- note: add @available attribute to enclosing enum
29 | public typealias RawValue = SecAccessControlCreateFlags
30 |
:
68 | }
69 |
70 | public var rawValue: RawValue {
| `- note: add @available attribute to enclosing property
71 | switch self {
72 | case .devicePasscode:
:
75 | return SecAccessControlCreateFlags.biometryAny
76 | case .biometryCurrentSet:
77 | return SecAccessControlCreateFlags.biometryCurrentSet
| |- error: 'biometryCurrentSet' is only available in macOS 10.13.4 or newer
| `- note: add 'if #available' version check
78 | case .userPresence:
79 | return SecAccessControlCreateFlags.userPresence
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:153:18: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
150 |
151 | /// Initializes the `KeychainService`.
152 | public override init() {
| `- note: add @available attribute to enclosing initializer
153 | logger = Logger(subsystem: serviceName, category: "keychain")
| |- error: 'Logger' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
154 | }
155 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:200:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
201 | throw KeychainError.invalidKey
202 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:219:30: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
217 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
218 | let message = error!.takeRetainedValue().localizedDescription
219 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
220 |
221 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:219:72: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
217 | guard let accessControlFlags = SecAccessControlCreateWithFlags(kCFAllocatorDefault, accessibility.rawValue, accessControl.rawValue, &error) else {
218 | let message = error!.takeRetainedValue().localizedDescription
219 | logger.error("Error occurred applying access control. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
220 |
221 | throw KeychainError.unhandledError(message: message)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
233 | switch status {
234 | case errSecSuccess:
235 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
233 | switch status {
234 | case errSecSuccess:
235 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:235:81: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
233 | switch status {
234 | case errSecSuccess:
235 | logger.info("Item '\(forKey, privacy: .public)' added to keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238:25: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
239 | default:
240 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238:33: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
239 | default:
240 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:238:83: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
236 | case errSecDuplicateItem:
237 | status = SecItemUpdate(query as CFDictionary, values as CFDictionary)
238 | logger.info("Item '\(forKey, privacy: .public)' updated in keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
239 | default:
240 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:241:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
239 | default:
240 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
241 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
242 | throw KeychainError.unhandledError(message: message)
243 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:241:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
196 | /// try? KeychainService.default.addItem("account", value: person)
197 | /// ```
198 | public func addItem(_ forKey: String, value: Data, accessControl: SecAccessControl? = nil, accessibility: SecAccessible = .afterFirstUnlock) throws {
| `- note: add @available attribute to enclosing instance method
199 | guard !forKey.isEmpty else {
200 | logger.error("The forKey argument is invalid.")
:
239 | default:
240 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
241 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
242 | throw KeychainError.unhandledError(message: message)
243 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:255:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
256 | throw KeychainError.invalidKey
257 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
:
263 |
264 | let status = SecItemDelete(query as CFDictionary)
265 | logger.info("Item '\(forKey, privacy: .public)' deleted from keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 |
267 | guard status == errSecSuccess || status == errSecItemNotFound else {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:29: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
:
263 |
264 | let status = SecItemDelete(query as CFDictionary)
265 | logger.info("Item '\(forKey, privacy: .public)' deleted from keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 |
267 | guard status == errSecSuccess || status == errSecItemNotFound else {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:265:81: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
:
263 |
264 | let status = SecItemDelete(query as CFDictionary)
265 | logger.info("Item '\(forKey, privacy: .public)' deleted from keychain: \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
266 |
267 | guard status == errSecSuccess || status == errSecItemNotFound else {
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:269:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
:
267 | guard status == errSecSuccess || status == errSecItemNotFound else {
268 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
269 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
270 | throw KeychainError.unhandledError(message: message)
271 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:269:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
251 | /// ```
252 | /// - Remark: No error is thrown when the key is not found.
253 | public func deleteItem(_ forKey: String) throws {
| `- note: add @available attribute to enclosing instance method
254 | guard !forKey.isEmpty else {
255 | logger.error("The forKey argument is invalid.")
:
267 | guard status == errSecSuccess || status == errSecItemNotFound else {
268 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
269 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
270 | throw KeychainError.unhandledError(message: message)
271 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:315:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
316 | throw KeychainError.invalidKey
317 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:335:32: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
333 | switch status {
334 | case errSecUserCanceled:
335 | logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
336 | throw KeychainError.unhandledError(message: message)
337 | case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:335:76: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
333 | switch status {
334 | case errSecUserCanceled:
335 | logger.warning("The user cancelled the operation. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
336 | throw KeychainError.unhandledError(message: message)
337 | case errSecItemNotFound, errSecInvalidItemRef:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:338:32: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
336 | throw KeychainError.unhandledError(message: message)
337 | case errSecItemNotFound, errSecInvalidItemRef:
338 | logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
339 | throw KeychainError.invalidKey
340 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:338:84: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
336 | throw KeychainError.unhandledError(message: message)
337 | case errSecItemNotFound, errSecInvalidItemRef:
338 | logger.warning("The specified item not found in Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
339 | throw KeychainError.invalidKey
340 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:341:32: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
339 | throw KeychainError.invalidKey
340 | default:
341 | logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
342 | throw KeychainError.unhandledError(message: message)
343 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:341:83: error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
339 | throw KeychainError.invalidKey
340 | default:
341 | logger.warning("An error occured accessing the Keychain. Status: \(status, privacy: .public)")
| |- error: 'appendInterpolation(_:format:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
342 | throw KeychainError.unhandledError(message: message)
343 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:348:28: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
346 | // Attempt to decode the value back to it's type.
347 | guard let result = item as? Data else {
348 | logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
349 | throw KeychainError.unexpectedData
350 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:348:64: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
311 | /// print(String(data: result, encoding: .utf8))
312 | /// ```
313 | public func readItem(_ forKey: String) throws -> Data {
| `- note: add @available attribute to enclosing instance method
314 | guard !forKey.isEmpty else {
315 | logger.error("The forKey argument is invalid.")
:
346 | // Attempt to decode the value back to it's type.
347 | guard let result = item as? Data else {
348 | logger.warning("Invalid data associated with key '\(forKey, privacy: .public)'")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
349 | throw KeychainError.unexpectedData
350 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
366 | /// print(result)
367 | /// ```
368 | public func itemExists(_ forKey: String) -> Bool {
| `- note: add @available attribute to enclosing instance method
369 | // Construct a LAContext to surpress any biometry to access the key.
370 | let context = LAContext()
:
380 | let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 | logger.info("Item '\(forKey, privacy: .public)' exists in keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
383 |
384 | return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382:29: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
366 | /// print(result)
367 | /// ```
368 | public func itemExists(_ forKey: String) -> Bool {
| `- note: add @available attribute to enclosing instance method
369 | // Construct a LAContext to surpress any biometry to access the key.
370 | let context = LAContext()
:
380 | let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 | logger.info("Item '\(forKey, privacy: .public)' exists in keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
383 |
384 | return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:382:78: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
366 | /// print(result)
367 | /// ```
368 | public func itemExists(_ forKey: String) -> Bool {
| `- note: add @available attribute to enclosing instance method
369 | // Construct a LAContext to surpress any biometry to access the key.
370 | let context = LAContext()
:
380 | let status = SecItemCopyMatching(query as CFDictionary, nil)
381 |
382 | logger.info("Item '\(forKey, privacy: .public)' exists in keychain: \(status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
383 |
384 | return status == errSecSuccess || status == errSecInteractionNotAllowed || status == errSecAuthFailed
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447:21: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
445 |
446 | let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447:40: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
445 |
446 | let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447:73: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
445 |
446 | let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:447:103: error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
445 |
446 | let status = SecItemUpdate(findQuery as CFDictionary, updateQuery as CFDictionary)
447 | logger.info("Rename key from '\(forKey, privacy: .public)' to '\(newKey, privacy: .public)': \(status == errSecSuccess, privacy: .public)")
| |- error: 'appendInterpolation(_:format:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
448 |
449 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:452:26: error: 'OSLogMessage' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
450 | guard status == errSecSuccess else {
451 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
452 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'OSLogMessage' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
453 | throw KeychainError.unhandledError(message: message)
454 | }
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:452:68: error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
:
428 | /// }
429 | /// ```
430 | public func renameItem(_ forKey: String, newKey: String) throws {
| `- note: add @available attribute to enclosing instance method
431 | // Construct a LAContext to surpress any biometry to access the key.
432 | let context = LAContext()
:
450 | guard status == errSecSuccess else {
451 | let message = SecCopyErrorMessageString(status, nil) as String? ?? "Unknown error"
452 | logger.error("Error occured performing the operation. \(message, privacy: .public)")
| |- error: 'appendInterpolation(_:align:privacy:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
453 | throw KeychainError.unhandledError(message: message)
454 | }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[43/56] Emitting module Adaptive
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[44/56] Compiling Adaptive AdaptiveContext.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
[45/56] Compiling Adaptive AssessmentsFactors.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
[46/56] Emitting module Core
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:332:90: error: 'Digest' is only available in macOS 10.15 or newer
292 | }
293 |
294 | extension RSA.Signing.PrivateKey {
| `- note: add @available attribute to enclosing extension
295 | /// Creates the cryptographic signature for a block of data. SHA512 is used as the hash function.
296 | ///
:
330 | /// - Returns: The digital signature.
331 | /// - Throws: If there is a failure producing the signature.
332 | public func signature<D>(for digest: D) throws -> RSA.Signing.RSASignature where D : Digest {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
333 | let algorithm = try SecKeyAlgorithm(digestType: D.self)
334 | let dataToSign = Data(digest)
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:389:109: error: 'Digest' is only available in macOS 10.15 or newer
347 | }
348 |
349 | extension RSA.Signing.PublicKey {
| `- note: add @available attribute to enclosing extension
350 | /// Verifies the cryptographic signature of a block of data using a public key. SHA512 is used as the hash function.
351 | ///
:
387 | /// ```
388 | /// - Returns: A Boolean value that’s `true` if the signature is valid for the given data.
389 | public func isValidSignature<D>(_ signature: RSA.Signing.RSASignature, for digest: D) -> Bool where D : Digest {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
390 | do {
391 | let algorithm = try SecKeyAlgorithm(digestType: D.self)
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:413:27: warning: static property 'bits2048' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
407 | extension RSA.Signing {
408 | /// A key whose value indicates the number of bits in a cryptographic key.
409 | public struct KeySize {
| `- note: consider making struct 'KeySize' conform to the 'Sendable' protocol
410 | public let bitLength: Int
411 |
412 | /// RSA key size of 2048 bits.
413 | public static let bits2048 = RSA.Signing.KeySize(bitLength: 2048)
| |- warning: static property 'bits2048' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bits2048' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
414 |
415 | /// RSA key size of 3072 bits.
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:416:27: warning: static property 'bits3072' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
407 | extension RSA.Signing {
408 | /// A key whose value indicates the number of bits in a cryptographic key.
409 | public struct KeySize {
| `- note: consider making struct 'KeySize' conform to the 'Sendable' protocol
410 | public let bitLength: Int
411 |
:
414 |
415 | /// RSA key size of 3072 bits.
416 | public static let bits3072 = RSA.Signing.KeySize(bitLength: 3072)
| |- warning: static property 'bits3072' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bits3072' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
417 |
418 | /// RSA key size of 4096 bits.
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:419:27: warning: static property 'bits4096' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
407 | extension RSA.Signing {
408 | /// A key whose value indicates the number of bits in a cryptographic key.
409 | public struct KeySize {
| `- note: consider making struct 'KeySize' conform to the 'Sendable' protocol
410 | public let bitLength: Int
411 |
:
417 |
418 | /// RSA key size of 4096 bits.
419 | public static let bits4096 = RSA.Signing.KeySize(bitLength: 4096)
| |- warning: static property 'bits4096' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bits4096' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
420 |
421 | /// RSA key size with a custom number of bits.
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:451:25: error: 'Digest' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:471:13: error: 'Digest' is only available in macOS 10.15 or newer
465 | }
466 |
467 | extension Data {
| `- note: add @available attribute to enclosing extension
468 | /// Initializes a Data from a Digest.
469 | /// - Parameters:
470 | /// - digest: The digest that was signed.
471 | init<D: Digest>(_ digest: D) {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing initializer
472 | self = digest.withUnsafeBytes {
473 | Data($0)
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:139:25: error: 'Logger' is only available in macOS 11.0 or newer
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: add @available attribute to enclosing class
138 | // MARK: Variables
139 | private let logger: Logger
| `- error: 'Logger' is only available in macOS 11.0 or newer
140 | private let serviceName = Bundle.main.bundleIdentifier!
141 |
/Users/admin/builder/spi-builder-workspace/Sources/core/KeychainService.swift:142:24: warning: static property '_default' is not concurrency-safe because non-'Sendable' type 'KeychainService' may have shared mutable state; this is an error in the Swift 6 language mode
135 | /// The keychain is the best place to store small secrets, like passwords and cryptographic keys. Use the functions of the keychain services API to add, retrieve, delete, or modify keychain items.
136 | /// - Note: The keychain service is specific to the IBM Security Verify in that, the keychain is not synchronized with Apple iCloud and access to the items in the keychain occurs after the first device unlock operation.
137 | public final class KeychainService: NSObject {
| `- note: class 'KeychainService' does not conform to the 'Sendable' protocol
138 | // MARK: Variables
139 | private let logger: Logger
140 | private let serviceName = Bundle.main.bundleIdentifier!
141 |
142 | private static let _default = KeychainService()
| |- warning: static property '_default' is not concurrency-safe because non-'Sendable' type 'KeychainService' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property '_default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
143 |
144 | /// Returns the default singleton instance.
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:16:25: error: 'Logger' is only available in macOS 11.0 or newer
12 | /// The `SelfSignedCertificateDelegate` will allow SSL traffic to be transferred using a self signed certificate.
13 | /// - Remark: Using this class should **ONLY** be used for testing purposes.
14 | public final class SelfSignedCertificateDelegate: NSObject, URLSessionDelegate {
| `- note: add @available attribute to enclosing class
15 | // MARK: Variables
16 | private let logger: Logger
| `- error: 'Logger' is only available in macOS 11.0 or newer
17 | private let serviceName = Bundle.main.bundleIdentifier!
18 |
/Users/admin/builder/spi-builder-workspace/Sources/core/URLSessionDelegateHelper.swift:52:25: error: 'Logger' is only available in macOS 11.0 or newer
48 |
49 | /// The `PinnedCertificateDelegate` compares certificate provided by the SSL handshake to a certificate presented by the client.
50 | public final class PinnedCertificateDelegate: NSObject, URLSessionDelegate {
| `- note: add @available attribute to enclosing class
51 | // MARK: Variables
52 | private let logger: Logger
| `- error: 'Logger' is only available in macOS 11.0 or newer
53 | private let serviceName = Bundle.main.bundleIdentifier!
54 |
[47/56] Compiling Core Codeable+Extension.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:332:90: error: 'Digest' is only available in macOS 10.15 or newer
292 | }
293 |
294 | extension RSA.Signing.PrivateKey {
| `- note: add @available attribute to enclosing extension
295 | /// Creates the cryptographic signature for a block of data. SHA512 is used as the hash function.
296 | ///
:
330 | /// - Returns: The digital signature.
331 | /// - Throws: If there is a failure producing the signature.
332 | public func signature<D>(for digest: D) throws -> RSA.Signing.RSASignature where D : Digest {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
333 | let algorithm = try SecKeyAlgorithm(digestType: D.self)
334 | let dataToSign = Data(digest)
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:389:109: error: 'Digest' is only available in macOS 10.15 or newer
347 | }
348 |
349 | extension RSA.Signing.PublicKey {
| `- note: add @available attribute to enclosing extension
350 | /// Verifies the cryptographic signature of a block of data using a public key. SHA512 is used as the hash function.
351 | ///
:
387 | /// ```
388 | /// - Returns: A Boolean value that’s `true` if the signature is valid for the given data.
389 | public func isValidSignature<D>(_ signature: RSA.Signing.RSASignature, for digest: D) -> Bool where D : Digest {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
390 | do {
391 | let algorithm = try SecKeyAlgorithm(digestType: D.self)
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:413:27: warning: static property 'bits2048' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
407 | extension RSA.Signing {
408 | /// A key whose value indicates the number of bits in a cryptographic key.
409 | public struct KeySize {
| `- note: consider making struct 'KeySize' conform to the 'Sendable' protocol
410 | public let bitLength: Int
411 |
412 | /// RSA key size of 2048 bits.
413 | public static let bits2048 = RSA.Signing.KeySize(bitLength: 2048)
| |- warning: static property 'bits2048' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bits2048' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
414 |
415 | /// RSA key size of 3072 bits.
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:416:27: warning: static property 'bits3072' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
407 | extension RSA.Signing {
408 | /// A key whose value indicates the number of bits in a cryptographic key.
409 | public struct KeySize {
| `- note: consider making struct 'KeySize' conform to the 'Sendable' protocol
410 | public let bitLength: Int
411 |
:
414 |
415 | /// RSA key size of 3072 bits.
416 | public static let bits3072 = RSA.Signing.KeySize(bitLength: 3072)
| |- warning: static property 'bits3072' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bits3072' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
417 |
418 | /// RSA key size of 4096 bits.
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:419:27: warning: static property 'bits4096' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
407 | extension RSA.Signing {
408 | /// A key whose value indicates the number of bits in a cryptographic key.
409 | public struct KeySize {
| `- note: consider making struct 'KeySize' conform to the 'Sendable' protocol
410 | public let bitLength: Int
411 |
:
417 |
418 | /// RSA key size of 4096 bits.
419 | public static let bits4096 = RSA.Signing.KeySize(bitLength: 4096)
| |- warning: static property 'bits4096' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bits4096' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
420 |
421 | /// RSA key size with a custom number of bits.
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:451:25: error: 'Digest' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:471:13: error: 'Digest' is only available in macOS 10.15 or newer
465 | }
466 |
467 | extension Data {
| `- note: add @available attribute to enclosing extension
468 | /// Initializes a Data from a Digest.
469 | /// - Parameters:
470 | /// - digest: The digest that was signed.
471 | init<D: Digest>(_ digest: D) {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing initializer
472 | self = digest.withUnsafeBytes {
473 | Data($0)
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:313:25: warning: conformance of 'SHA512Digest' to 'Digest' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
292 | }
293 |
294 | extension RSA.Signing.PrivateKey {
| `- note: add @available attribute to enclosing extension
295 | /// Creates the cryptographic signature for a block of data. SHA512 is used as the hash function.
296 | ///
:
310 | /// - Returns: The digital signature.
311 | /// - Throws: If there is a failure producing the signature.
312 | public func signature<D>(for data: D) throws -> RSA.Signing.RSASignature where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
313 | return try self.signature(for: SHA512.hash(data: data))
| |- warning: conformance of 'SHA512Digest' to 'Digest' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
314 | }
315 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:313:40: error: 'SHA512' is only available in macOS 10.15 or newer
292 | }
293 |
294 | extension RSA.Signing.PrivateKey {
| `- note: add @available attribute to enclosing extension
295 | /// Creates the cryptographic signature for a block of data. SHA512 is used as the hash function.
296 | ///
:
310 | /// - Returns: The digital signature.
311 | /// - Throws: If there is a failure producing the signature.
312 | public func signature<D>(for data: D) throws -> RSA.Signing.RSASignature where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
313 | return try self.signature(for: SHA512.hash(data: data))
| |- error: 'SHA512' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
314 | }
315 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:313:47: error: 'hash(data:)' is only available in macOS 10.15 or newer
292 | }
293 |
294 | extension RSA.Signing.PrivateKey {
| `- note: add @available attribute to enclosing extension
295 | /// Creates the cryptographic signature for a block of data. SHA512 is used as the hash function.
296 | ///
:
310 | /// - Returns: The digital signature.
311 | /// - Throws: If there is a failure producing the signature.
312 | public func signature<D>(for data: D) throws -> RSA.Signing.RSASignature where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
313 | return try self.signature(for: SHA512.hash(data: data))
| |- error: 'hash(data:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
314 | }
315 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:369:21: warning: conformance of 'SHA512Digest' to 'Digest' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
347 | }
348 |
349 | extension RSA.Signing.PublicKey {
| `- note: add @available attribute to enclosing extension
350 | /// Verifies the cryptographic signature of a block of data using a public key. SHA512 is used as the hash function.
351 | ///
:
366 | /// ```
367 | /// - Returns: A Boolean value that’s `true` if the signature is valid for the given data.
368 | public func isValidSignature<D>(_ signature: RSA.Signing.RSASignature, for data: D) -> Bool where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
369 | return self.isValidSignature(signature, for: SHA512.hash(data: data))
| |- warning: conformance of 'SHA512Digest' to 'Digest' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
370 | }
371 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:369:54: error: 'SHA512' is only available in macOS 10.15 or newer
347 | }
348 |
349 | extension RSA.Signing.PublicKey {
| `- note: add @available attribute to enclosing extension
350 | /// Verifies the cryptographic signature of a block of data using a public key. SHA512 is used as the hash function.
351 | ///
:
366 | /// ```
367 | /// - Returns: A Boolean value that’s `true` if the signature is valid for the given data.
368 | public func isValidSignature<D>(_ signature: RSA.Signing.RSASignature, for data: D) -> Bool where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
369 | return self.isValidSignature(signature, for: SHA512.hash(data: data))
| |- error: 'SHA512' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
370 | }
371 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:369:61: error: 'hash(data:)' is only available in macOS 10.15 or newer
347 | }
348 |
349 | extension RSA.Signing.PublicKey {
| `- note: add @available attribute to enclosing extension
350 | /// Verifies the cryptographic signature of a block of data using a public key. SHA512 is used as the hash function.
351 | ///
:
366 | /// ```
367 | /// - Returns: A Boolean value that’s `true` if the signature is valid for the given data.
368 | public func isValidSignature<D>(_ signature: RSA.Signing.RSASignature, for data: D) -> Bool where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
369 | return self.isValidSignature(signature, for: SHA512.hash(data: data))
| |- error: 'hash(data:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
370 | }
371 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:453:17: error: 'Insecure' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
| |- error: 'Insecure' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
454 | self = .rsaSignatureDigestPKCS1v15SHA1
455 | case is SHA256.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:453:17: error: 'Insecure' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
| |- error: 'Insecure' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
454 | self = .rsaSignatureDigestPKCS1v15SHA1
455 | case is SHA256.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:455:17: error: 'SHA256' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
454 | self = .rsaSignatureDigestPKCS1v15SHA1
455 | case is SHA256.Digest.Type:
| |- error: 'SHA256' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
456 | self = .rsaSignatureDigestPKCS1v15SHA256
457 | case is SHA384.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:455:17: error: 'SHA256' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
454 | self = .rsaSignatureDigestPKCS1v15SHA1
455 | case is SHA256.Digest.Type:
| |- error: 'SHA256' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
456 | self = .rsaSignatureDigestPKCS1v15SHA256
457 | case is SHA384.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:457:17: error: 'SHA384' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
:
455 | case is SHA256.Digest.Type:
456 | self = .rsaSignatureDigestPKCS1v15SHA256
457 | case is SHA384.Digest.Type:
| |- error: 'SHA384' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
458 | self = .rsaSignatureDigestPKCS1v15SHA384
459 | case is SHA512.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:457:17: error: 'SHA384' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
:
455 | case is SHA256.Digest.Type:
456 | self = .rsaSignatureDigestPKCS1v15SHA256
457 | case is SHA384.Digest.Type:
| |- error: 'SHA384' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
458 | self = .rsaSignatureDigestPKCS1v15SHA384
459 | case is SHA512.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:459:17: error: 'SHA512' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
:
457 | case is SHA384.Digest.Type:
458 | self = .rsaSignatureDigestPKCS1v15SHA384
459 | case is SHA512.Digest.Type:
| |- error: 'SHA512' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
460 | self = .rsaSignatureDigestPKCS1v15SHA512
461 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:459:17: error: 'SHA512' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
:
457 | case is SHA384.Digest.Type:
458 | self = .rsaSignatureDigestPKCS1v15SHA384
459 | case is SHA512.Digest.Type:
| |- error: 'SHA512' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
460 | self = .rsaSignatureDigestPKCS1v15SHA512
461 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:462:19: error: 'CryptoKitError' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
:
460 | self = .rsaSignatureDigestPKCS1v15SHA512
461 | default:
462 | throw CryptoKitError.incorrectParameterSize
| |- error: 'CryptoKitError' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
463 | }
464 | }
[48/56] Compiling Core CryptoKit+Extension.swift
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:332:90: error: 'Digest' is only available in macOS 10.15 or newer
292 | }
293 |
294 | extension RSA.Signing.PrivateKey {
| `- note: add @available attribute to enclosing extension
295 | /// Creates the cryptographic signature for a block of data. SHA512 is used as the hash function.
296 | ///
:
330 | /// - Returns: The digital signature.
331 | /// - Throws: If there is a failure producing the signature.
332 | public func signature<D>(for digest: D) throws -> RSA.Signing.RSASignature where D : Digest {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
333 | let algorithm = try SecKeyAlgorithm(digestType: D.self)
334 | let dataToSign = Data(digest)
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:389:109: error: 'Digest' is only available in macOS 10.15 or newer
347 | }
348 |
349 | extension RSA.Signing.PublicKey {
| `- note: add @available attribute to enclosing extension
350 | /// Verifies the cryptographic signature of a block of data using a public key. SHA512 is used as the hash function.
351 | ///
:
387 | /// ```
388 | /// - Returns: A Boolean value that’s `true` if the signature is valid for the given data.
389 | public func isValidSignature<D>(_ signature: RSA.Signing.RSASignature, for digest: D) -> Bool where D : Digest {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
390 | do {
391 | let algorithm = try SecKeyAlgorithm(digestType: D.self)
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:413:27: warning: static property 'bits2048' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
407 | extension RSA.Signing {
408 | /// A key whose value indicates the number of bits in a cryptographic key.
409 | public struct KeySize {
| `- note: consider making struct 'KeySize' conform to the 'Sendable' protocol
410 | public let bitLength: Int
411 |
412 | /// RSA key size of 2048 bits.
413 | public static let bits2048 = RSA.Signing.KeySize(bitLength: 2048)
| |- warning: static property 'bits2048' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bits2048' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
414 |
415 | /// RSA key size of 3072 bits.
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:416:27: warning: static property 'bits3072' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
407 | extension RSA.Signing {
408 | /// A key whose value indicates the number of bits in a cryptographic key.
409 | public struct KeySize {
| `- note: consider making struct 'KeySize' conform to the 'Sendable' protocol
410 | public let bitLength: Int
411 |
:
414 |
415 | /// RSA key size of 3072 bits.
416 | public static let bits3072 = RSA.Signing.KeySize(bitLength: 3072)
| |- warning: static property 'bits3072' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bits3072' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
417 |
418 | /// RSA key size of 4096 bits.
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:419:27: warning: static property 'bits4096' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
407 | extension RSA.Signing {
408 | /// A key whose value indicates the number of bits in a cryptographic key.
409 | public struct KeySize {
| `- note: consider making struct 'KeySize' conform to the 'Sendable' protocol
410 | public let bitLength: Int
411 |
:
417 |
418 | /// RSA key size of 4096 bits.
419 | public static let bits4096 = RSA.Signing.KeySize(bitLength: 4096)
| |- warning: static property 'bits4096' is not concurrency-safe because non-'Sendable' type 'RSA.Signing.KeySize' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'bits4096' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
420 |
421 | /// RSA key size with a custom number of bits.
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:451:25: error: 'Digest' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:471:13: error: 'Digest' is only available in macOS 10.15 or newer
465 | }
466 |
467 | extension Data {
| `- note: add @available attribute to enclosing extension
468 | /// Initializes a Data from a Digest.
469 | /// - Parameters:
470 | /// - digest: The digest that was signed.
471 | init<D: Digest>(_ digest: D) {
| | `- error: 'Digest' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing initializer
472 | self = digest.withUnsafeBytes {
473 | Data($0)
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:313:25: warning: conformance of 'SHA512Digest' to 'Digest' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
292 | }
293 |
294 | extension RSA.Signing.PrivateKey {
| `- note: add @available attribute to enclosing extension
295 | /// Creates the cryptographic signature for a block of data. SHA512 is used as the hash function.
296 | ///
:
310 | /// - Returns: The digital signature.
311 | /// - Throws: If there is a failure producing the signature.
312 | public func signature<D>(for data: D) throws -> RSA.Signing.RSASignature where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
313 | return try self.signature(for: SHA512.hash(data: data))
| |- warning: conformance of 'SHA512Digest' to 'Digest' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
314 | }
315 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:313:40: error: 'SHA512' is only available in macOS 10.15 or newer
292 | }
293 |
294 | extension RSA.Signing.PrivateKey {
| `- note: add @available attribute to enclosing extension
295 | /// Creates the cryptographic signature for a block of data. SHA512 is used as the hash function.
296 | ///
:
310 | /// - Returns: The digital signature.
311 | /// - Throws: If there is a failure producing the signature.
312 | public func signature<D>(for data: D) throws -> RSA.Signing.RSASignature where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
313 | return try self.signature(for: SHA512.hash(data: data))
| |- error: 'SHA512' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
314 | }
315 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:313:47: error: 'hash(data:)' is only available in macOS 10.15 or newer
292 | }
293 |
294 | extension RSA.Signing.PrivateKey {
| `- note: add @available attribute to enclosing extension
295 | /// Creates the cryptographic signature for a block of data. SHA512 is used as the hash function.
296 | ///
:
310 | /// - Returns: The digital signature.
311 | /// - Throws: If there is a failure producing the signature.
312 | public func signature<D>(for data: D) throws -> RSA.Signing.RSASignature where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
313 | return try self.signature(for: SHA512.hash(data: data))
| |- error: 'hash(data:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
314 | }
315 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:369:21: warning: conformance of 'SHA512Digest' to 'Digest' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
347 | }
348 |
349 | extension RSA.Signing.PublicKey {
| `- note: add @available attribute to enclosing extension
350 | /// Verifies the cryptographic signature of a block of data using a public key. SHA512 is used as the hash function.
351 | ///
:
366 | /// ```
367 | /// - Returns: A Boolean value that’s `true` if the signature is valid for the given data.
368 | public func isValidSignature<D>(_ signature: RSA.Signing.RSASignature, for data: D) -> Bool where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
369 | return self.isValidSignature(signature, for: SHA512.hash(data: data))
| |- warning: conformance of 'SHA512Digest' to 'Digest' is only available in macOS 10.15 or newer; this is an error in the Swift 6 language mode
| `- note: add 'if #available' version check
370 | }
371 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:369:54: error: 'SHA512' is only available in macOS 10.15 or newer
347 | }
348 |
349 | extension RSA.Signing.PublicKey {
| `- note: add @available attribute to enclosing extension
350 | /// Verifies the cryptographic signature of a block of data using a public key. SHA512 is used as the hash function.
351 | ///
:
366 | /// ```
367 | /// - Returns: A Boolean value that’s `true` if the signature is valid for the given data.
368 | public func isValidSignature<D>(_ signature: RSA.Signing.RSASignature, for data: D) -> Bool where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
369 | return self.isValidSignature(signature, for: SHA512.hash(data: data))
| |- error: 'SHA512' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
370 | }
371 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:369:61: error: 'hash(data:)' is only available in macOS 10.15 or newer
347 | }
348 |
349 | extension RSA.Signing.PublicKey {
| `- note: add @available attribute to enclosing extension
350 | /// Verifies the cryptographic signature of a block of data using a public key. SHA512 is used as the hash function.
351 | ///
:
366 | /// ```
367 | /// - Returns: A Boolean value that’s `true` if the signature is valid for the given data.
368 | public func isValidSignature<D>(_ signature: RSA.Signing.RSASignature, for data: D) -> Bool where D : DataProtocol {
| `- note: add @available attribute to enclosing instance method
369 | return self.isValidSignature(signature, for: SHA512.hash(data: data))
| |- error: 'hash(data:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
370 | }
371 |
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:453:17: error: 'Insecure' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
| |- error: 'Insecure' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
454 | self = .rsaSignatureDigestPKCS1v15SHA1
455 | case is SHA256.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:453:17: error: 'Insecure' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
| |- error: 'Insecure' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
454 | self = .rsaSignatureDigestPKCS1v15SHA1
455 | case is SHA256.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:455:17: error: 'SHA256' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
454 | self = .rsaSignatureDigestPKCS1v15SHA1
455 | case is SHA256.Digest.Type:
| |- error: 'SHA256' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
456 | self = .rsaSignatureDigestPKCS1v15SHA256
457 | case is SHA384.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:455:17: error: 'SHA256' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
454 | self = .rsaSignatureDigestPKCS1v15SHA1
455 | case is SHA256.Digest.Type:
| |- error: 'SHA256' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
456 | self = .rsaSignatureDigestPKCS1v15SHA256
457 | case is SHA384.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:457:17: error: 'SHA384' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
:
455 | case is SHA256.Digest.Type:
456 | self = .rsaSignatureDigestPKCS1v15SHA256
457 | case is SHA384.Digest.Type:
| |- error: 'SHA384' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
458 | self = .rsaSignatureDigestPKCS1v15SHA384
459 | case is SHA512.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:457:17: error: 'SHA384' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
:
455 | case is SHA256.Digest.Type:
456 | self = .rsaSignatureDigestPKCS1v15SHA256
457 | case is SHA384.Digest.Type:
| |- error: 'SHA384' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
458 | self = .rsaSignatureDigestPKCS1v15SHA384
459 | case is SHA512.Digest.Type:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:459:17: error: 'SHA512' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
:
457 | case is SHA384.Digest.Type:
458 | self = .rsaSignatureDigestPKCS1v15SHA384
459 | case is SHA512.Digest.Type:
| |- error: 'SHA512' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
460 | self = .rsaSignatureDigestPKCS1v15SHA512
461 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:459:17: error: 'SHA512' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
:
457 | case is SHA384.Digest.Type:
458 | self = .rsaSignatureDigestPKCS1v15SHA384
459 | case is SHA512.Digest.Type:
| |- error: 'SHA512' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
460 | self = .rsaSignatureDigestPKCS1v15SHA512
461 | default:
/Users/admin/builder/spi-builder-workspace/Sources/core/CryptoKit+Extension.swift:462:19: error: 'CryptoKitError' is only available in macOS 10.15 or newer
448 | }
449 |
450 | extension SecKeyAlgorithm {
| `- note: add @available attribute to enclosing extension
451 | fileprivate init<D: Digest>(digestType: D.Type = D.self) throws {
| `- note: add @available attribute to enclosing initializer
452 | switch digestType {
453 | case is Insecure.SHA1.Digest.Type:
:
460 | self = .rsaSignatureDigestPKCS1v15SHA512
461 | default:
462 | throw CryptoKitError.incorrectParameterSize
| |- error: 'CryptoKitError' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
463 | }
464 | }
[49/56] Compiling FIDO2 SecKeyStore.swift
/Users/admin/builder/spi-builder-workspace/Sources/fido2/PublicKeyCredentialProvider.swift:9:8: error: no such module 'UIKit'
7 | import LocalAuthentication
8 | import os.log
9 | import UIKit
| `- error: no such module 'UIKit'
10 |
11 | /// A type that indicates when Fido2ApiClient encounters an error.
[50/56] Compiling FIDO2 SecKeyConvertible.swift
/Users/admin/builder/spi-builder-workspace/Sources/fido2/PublicKeyCredentialProvider.swift:9:8: error: no such module 'UIKit'
7 | import LocalAuthentication
8 | import os.log
9 | import UIKit
| `- error: no such module 'UIKit'
10 |
11 | /// A type that indicates when Fido2ApiClient encounters an error.
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-2F0A5646E1D333AE.txt
[2/35] Compiling Adaptive 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 |
[3/35] Compiling Adaptive Evaluation.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/35] Compiling Adaptive AssessmentsFactors.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
[5/35] Emitting module Adaptive
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
[6/35] Compiling Adaptive AdaptiveContext.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
[7/35] Compiling Adaptive resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
[8/35] Compiling Adaptive Enums.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
[9/35] Compiling Adaptive AdaptiveResult.swift
/Users/admin/builder/spi-builder-workspace/Sources/adaptive/AdaptiveContext.swift:5:8: error: no such module 'UIKit'
3 | //
4 |
5 | import UIKit
| `- error: no such module 'UIKit'
6 | import os.log
7 |
BUILD FAILURE 6.1 macosSpm