The Swift Package Index logo.Swift Package Index

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

Build Information

Failed to build Swiftchain, reference main (ab0409), with Swift 6.0 for Linux on 28 Nov 2024 00:58:13 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.58.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/sbertix/Swiftchain.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/sbertix/Swiftchain
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at ab0409e Update to `1.0.5`
Cloned https://github.com/sbertix/Swiftchain.git
Revision (git rev-parse @):
ab0409e62f1629bc1a153f41dec5856a3c05a548
SUCCESS checkout https://github.com/sbertix/Swiftchain.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/sbertix/Swiftchain.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/9] Emitting module Swiftchain
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:13:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 11 | open class Keychain {
 12 |     /// A shared instance of `Keychain`.
 13 |     public static var `default` = Keychain()
    |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 |
 15 |     /// A shared lock.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:66: error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                                                  `- error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:57:31: error: cannot find type 'CFString' in scope
55 |         ///
56 |         /// - parameter rawValue: A valid `CFString`.
57 |         public init(rawValue: CFString) { self.rawValue = rawValue }
   |                               `- error: cannot find type 'CFString' in scope
58 |     }
59 | }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:14:30: error: cannot find type 'CFString' in scope
12 |     struct Accessibility: Hashable, RawRepresentable {
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                              `- error: cannot find type 'CFString' in scope
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:42: error: no exact matches in call to initializer
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                          |- error: no exact matches in call to initializer
   |                                          `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:21:70: error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
19 |         /// This is recommended for items that need to be accessed by background applications.
20 |         /// Items with this attribute migrate to a new device when using encrypted backups.
21 |         public static let afterFirstUnlock = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlock)
   |                                                                      `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
22 |
23 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:21:46: error: no exact matches in call to initializer
19 |         /// This is recommended for items that need to be accessed by background applications.
20 |         /// Items with this attribute migrate to a new device when using encrypted backups.
21 |         public static let afterFirstUnlock = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlock)
   |                                              |- error: no exact matches in call to initializer
   |                                              `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
22 |
23 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:29:84: error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
27 |         /// Items with this attribute do not migrate to a new device.
28 |         ///  Thus, after restoring from a backup of a different device, these items will not be present.
29 |         public static let afterFirstUnlockThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly)
   |                                                                                    `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
30 |
31 |         /// The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:29:60: error: no exact matches in call to initializer
27 |         /// Items with this attribute do not migrate to a new device.
28 |         ///  Thus, after restoring from a backup of a different device, these items will not be present.
29 |         public static let afterFirstUnlockThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly)
   |                                                            |- error: no exact matches in call to initializer
   |                                                            `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
30 |
31 |         /// The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:38:83: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
36 |         /// No items can be stored in this class on devices without a passcode.
37 |         /// Disabling the device passcode causes all items in this class to be deleted.
38 |         public static let whenPasscodeSetThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly)
   |                                                                                   `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
39 |
40 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:38:59: error: no exact matches in call to initializer
36 |         /// No items can be stored in this class on devices without a passcode.
37 |         /// Disabling the device passcode causes all items in this class to be deleted.
38 |         public static let whenPasscodeSetThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly)
   |                                                           |- error: no exact matches in call to initializer
   |                                                           `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
39 |
40 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:52:80: error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
50 |         /// Items with this attribute do not migrate to a new device.
51 |         /// Thus, after restoring from a backup of a different device, these items will not be present.
52 |         public static let whenUnlockedThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenUnlockedThisDeviceOnly)
   |                                                                                `- error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
53 |
54 |         /// Init.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:52:56: error: no exact matches in call to initializer
50 |         /// Items with this attribute do not migrate to a new device.
51 |         /// Thus, after restoring from a backup of a different device, these items will not be present.
52 |         public static let whenUnlockedThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenUnlockedThisDeviceOnly)
   |                                                        |- error: no exact matches in call to initializer
   |                                                        `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
53 |
54 |         /// Init.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'Hashable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- error: type 'Keychain.Accessibility' does not conform to protocol 'Hashable'
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                    `- note: stored property type '<<error type>>' does not conform to protocol 'Hashable', preventing synthesized conformance of 'Keychain.Accessibility' to 'Hashable'
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
13 |         /// The underlying value.
14 |         public let rawValue: CFString
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'Equatable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- error: type 'Keychain.Accessibility' does not conform to protocol 'Equatable'
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                    `- note: stored property type '<<error type>>' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Keychain.Accessibility' to 'Equatable'
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
Swift.==:1:24: note: candidate would match if 'Keychain.Accessibility.RawValue' conformed to 'Equatable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
  |                        `- note: candidate would match if 'Keychain.Accessibility.RawValue' conformed to 'Equatable'
Swift.FloatingPoint:2:24: note: candidate would match if 'Keychain.Accessibility' conformed to 'FloatingPoint'
1 | extension FloatingPoint {
2 |     public static func == (lhs: Self, rhs: Self) -> Bool
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to 'FloatingPoint'
3 |     public static func < (lhs: Self, rhs: Self) -> Bool
4 |     public static func <= (lhs: Self, rhs: Self) -> Bool
Swift.BinaryInteger:2:24: note: candidate would match if 'Keychain.Accessibility' conformed to 'BinaryInteger'
1 | extension BinaryInteger {
2 |     public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to 'BinaryInteger'
3 |     public static func != <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
4 |     public static func < <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
Swift._Pointer:2:24: note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
1 | extension _Pointer {
2 |     public static func == (lhs: Self, rhs: Self) -> Bool
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
3 |     @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer
  |                                   `- note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
4 |     @inlinable public static func != <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer
5 | }
Swift.Strideable:3:35: note: candidate would match if 'Keychain.Accessibility' conformed to 'Strideable'
1 | extension Strideable {
2 |     @inlinable public static func < (x: Self, y: Self) -> Bool
3 |     @inlinable public static func == (x: Self, y: Self) -> Bool
  |                                   `- note: candidate would match if 'Keychain.Accessibility' conformed to 'Strideable'
4 | }
Swift.StringProtocol:2:35: note: candidate would match if 'Keychain.Accessibility' conformed to 'StringProtocol'
1 | extension StringProtocol {
2 |     @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
  |                                   `- note: candidate would match if 'Keychain.Accessibility' conformed to 'StringProtocol'
3 |     @inlinable public static func != <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
4 |     @inlinable public static func < <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
Swift.SIMD:4:24: note: candidate would match if 'Keychain.Accessibility' conformed to 'SIMD'
 2 |     public var indices: Range<Int> { get }
 3 |     public init(repeating value: Self.Scalar)
 4 |     public static func == (a: Self, b: Self) -> Bool
   |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to 'SIMD'
 5 |     @inlinable public func hash(into hasher: inout Hasher)
 6 |     public func encode(to encoder: any Encoder) throws
Foundation.__BridgedNSError:2:24: note: candidate would match if 'Keychain.Accessibility' conformed to '__BridgedNSError'
1 | extension __BridgedNSError where Self : RawRepresentable, Self.RawValue : FixedWidthInteger {
2 |     public static func == (lhs: Self, rhs: Self) -> Bool
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to '__BridgedNSError'
3 | }
Foundation._BridgedStoredNSError:2:24: note: candidate would match if 'Keychain.Accessibility' conformed to '_BridgedStoredNSError'
1 | extension _BridgedStoredNSError {
2 |     public static func == (lhs: Self, rhs: Self) -> Bool
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to '_BridgedStoredNSError'
3 | }
FoundationEssentials.AttributedStringProtocol:3:24: note: candidate would match if 'Keychain.Accessibility' conformed to 'AttributedStringProtocol'
1 | @available(macOS 12, iOS 15, tvOS 15, watchOS 8, *)
2 | extension AttributedStringProtocol {
3 |     public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to 'AttributedStringProtocol'
4 |     public func hash(into hasher: inout Hasher)
5 | }
Swift.RawRepresentable:2:20: note: protocol requires nested type 'RawValue'; add nested type 'RawValue' for conformance
1 | public protocol RawRepresentable<RawValue> {
2 |     associatedtype RawValue
  |                    `- note: protocol requires nested type 'RawValue'; add nested type 'RawValue' for conformance
3 |     init?(rawValue: Self.RawValue)
4 |     var rawValue: Self.RawValue { get }
Swift.Equatable:2:17: note: protocol requires function '==' with type '(Keychain.Accessibility, Keychain.Accessibility) -> Bool'
1 | public protocol Equatable {
2 |     static func == (lhs: Self, rhs: Self) -> Bool
  |                 `- note: protocol requires function '==' with type '(Keychain.Accessibility, Keychain.Accessibility) -> Bool'
3 | }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:34:27: warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 32 |         /// Constraint to access an item with a passcode.
 33 |         @available(macOS 10.11, *)
 34 |         public static let devicePasscode = Authentication(rawValue: 1 << 0)
    |                           |- warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'devicePasscode' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 |         /// Constraint to access an item with Touch ID for any enrolled fingers, or Face ID.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:41:27: warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 39 |         /// The item is still accessible by Touch ID if fingers are added or removed, or by Face ID if the user is re-enrolled.
 40 |         @available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *)
 41 |         public static let biometryAny = Authentication(rawValue: 1 << 1)
    |                           |- warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'biometryAny' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 |         /// Constraint to access an item with Touch ID for currently enrolled fingers, or from Face ID with the currently enrolled user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:48:27: warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 46 |         /// The item is invalidated if fingers are added or removed for Touch ID, or if the user re-enrolls for Face ID.
 47 |         @available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *)
 48 |         public static let biometryCurrentSet = Authentication(rawValue: 1 << 2)
    |                           |- warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'biometryCurrentSet' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 49 |
 50 |         /// Constraint to access an item with a watch.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:57:27: warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 55 |         @available(tvOS, unavailable)
 56 |         @available(watchOS, unavailable)
 57 |         public static let watch = Authentication(rawValue: 1 << 3)
    |                           |- warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'watch' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 58 |
 59 |         /// Constraint to access an item with either biometry or passcode.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:103:20: error: cannot find type 'SecAccessControlCreateFlags' in scope
101 |         ///
102 |         /// - returns: Some `SecAccessControlCreateFlags`.
103 |         var flags: SecAccessControlCreateFlags {
    |                    `- error: cannot find type 'SecAccessControlCreateFlags' in scope
104 |             var set: SecAccessControlCreateFlags = []
105 |             // Prepare set.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:14:21: error: cannot find type 'OSStatus' in scope
12 |     enum Error: LocalizedError {
13 |         /// A keychain specific error.
14 |         case status(OSStatus)
   |                     `- error: cannot find type 'OSStatus' in scope
15 |         /// Invalid downcast.
16 |         case invalidCasting
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:54:22: error: cannot find type 'CFString' in scope
 52 |     ///
 53 |     /// - returns: A dictionary.
 54 |     func query() -> [CFString: Any] {
    |                      `- error: cannot find type 'CFString' in scope
 55 |         // Prepare the query.
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:73:51: error: cannot find type 'CFString' in scope
 71 |     /// - throws: Some `CFError`.
 72 |     /// - returns: A dictionary.
 73 |     func query(for keychain: Keychain) throws -> [CFString: Any] {
    |                                                   `- error: cannot find type 'CFString' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:102:87: error: cannot find type 'CFString' in scope
100 |     /// - throws: Some `CFError`.
101 |     /// - returns: A dictionary.
102 |     func query(for container: Keychain.Container, with value: Data? = nil) throws -> [CFString: Any] {
    |                                                                                       `- error: cannot find type 'CFString' in scope
103 |         // Prepare the query.
104 |         var query = try self.query(for: container.keychain)
[4/9] Compiling Swiftchain KeychainError.swift
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:14:21: error: cannot find type 'OSStatus' in scope
12 |     enum Error: LocalizedError {
13 |         /// A keychain specific error.
14 |         case status(OSStatus)
   |                     `- error: cannot find type 'OSStatus' in scope
15 |         /// Invalid downcast.
16 |         case invalidCasting
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:23:28: error: cannot find 'SecCopyErrorMessageString' in scope
21 |             case .status(let status):
22 |                 if #available(iOS 11.3, tvOS 11.3, watchOS 4.3, *) {
23 |                     return SecCopyErrorMessageString(status, nil) as String? ?? String(describing: status)
   |                            `- error: cannot find 'SecCopyErrorMessageString' in scope
24 |                 } else {
25 |                     return String(describing: status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:23:62: error: 'nil' requires a contextual type
21 |             case .status(let status):
22 |                 if #available(iOS 11.3, tvOS 11.3, watchOS 4.3, *) {
23 |                     return SecCopyErrorMessageString(status, nil) as String? ?? String(describing: status)
   |                                                              `- error: 'nil' requires a contextual type
24 |                 } else {
25 |                     return String(describing: status)
[5/9] Compiling Swiftchain SecurityConstants.swift
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:54:22: error: cannot find type 'CFString' in scope
 52 |     ///
 53 |     /// - returns: A dictionary.
 54 |     func query() -> [CFString: Any] {
    |                      `- error: cannot find type 'CFString' in scope
 55 |         // Prepare the query.
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:73:51: error: cannot find type 'CFString' in scope
 71 |     /// - throws: Some `CFError`.
 72 |     /// - returns: A dictionary.
 73 |     func query(for keychain: Keychain) throws -> [CFString: Any] {
    |                                                   `- error: cannot find type 'CFString' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:102:87: error: cannot find type 'CFString' in scope
100 |     /// - throws: Some `CFError`.
101 |     /// - returns: A dictionary.
102 |     func query(for container: Keychain.Container, with value: Data? = nil) throws -> [CFString: Any] {
    |                                                                                       `- error: cannot find type 'CFString' in scope
103 |         // Prepare the query.
104 |         var query = try self.query(for: container.keychain)
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:56:21: error: cannot find type 'CFString' in scope
 54 |     func query() -> [CFString: Any] {
 55 |         // Prepare the query.
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
    |                     `- error: cannot find type 'CFString' in scope
 57 |         if contains(.one) {
 58 |             query[kSecMatchLimit] = kSecMatchLimitOne
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:58:19: error: cannot find 'kSecMatchLimit' in scope
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
 57 |         if contains(.one) {
 58 |             query[kSecMatchLimit] = kSecMatchLimitOne
    |                   `- error: cannot find 'kSecMatchLimit' in scope
 59 |         } else if contains(.all) {
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:58:37: error: cannot find 'kSecMatchLimitOne' in scope
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
 57 |         if contains(.one) {
 58 |             query[kSecMatchLimit] = kSecMatchLimitOne
    |                                     `- error: cannot find 'kSecMatchLimitOne' in scope
 59 |         } else if contains(.all) {
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:60:19: error: cannot find 'kSecMatchLimit' in scope
 58 |             query[kSecMatchLimit] = kSecMatchLimitOne
 59 |         } else if contains(.all) {
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
    |                   `- error: cannot find 'kSecMatchLimit' in scope
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:60:37: error: cannot find 'kSecMatchLimitAll' in scope
 58 |             query[kSecMatchLimit] = kSecMatchLimitOne
 59 |         } else if contains(.all) {
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
    |                                     `- error: cannot find 'kSecMatchLimitAll' in scope
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:62:42: error: cannot find 'kSecReturnAttributes' in scope
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
    |                                          `- error: cannot find 'kSecReturnAttributes' in scope
 63 |         if contains(.data) { query[kSecReturnData] = kCFBooleanTrue! }
 64 |         // Return query.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:62:66: error: cannot find 'kCFBooleanTrue' in scope
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
    |                                                                  `- error: cannot find 'kCFBooleanTrue' in scope
 63 |         if contains(.data) { query[kSecReturnData] = kCFBooleanTrue! }
 64 |         // Return query.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:63:36: error: cannot find 'kSecReturnData' in scope
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
 63 |         if contains(.data) { query[kSecReturnData] = kCFBooleanTrue! }
    |                                    `- error: cannot find 'kSecReturnData' in scope
 64 |         // Return query.
 65 |         return query
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:63:54: error: cannot find 'kCFBooleanTrue' in scope
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
 63 |         if contains(.data) { query[kSecReturnData] = kCFBooleanTrue! }
    |                                                      `- error: cannot find 'kCFBooleanTrue' in scope
 64 |         // Return query.
 65 |         return query
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:76:71: error: cannot find 'kSecAttrService' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
 76 |         if let service = keychain.service, contains(.service) { query[kSecAttrService] = service as CFString }
    |                                                                       `- error: cannot find 'kSecAttrService' in scope
 77 |         if let group = keychain.group, contains(.group) { query[kSecAttrAccessGroup] = group as CFString }
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:76:101: error: cannot find type 'CFString' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
 76 |         if let service = keychain.service, contains(.service) { query[kSecAttrService] = service as CFString }
    |                                                                                                     `- error: cannot find type 'CFString' in scope
 77 |         if let group = keychain.group, contains(.group) { query[kSecAttrAccessGroup] = group as CFString }
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:77:65: error: cannot find 'kSecAttrAccessGroup' in scope
 75 |         var query = self.query()
 76 |         if let service = keychain.service, contains(.service) { query[kSecAttrService] = service as CFString }
 77 |         if let group = keychain.group, contains(.group) { query[kSecAttrAccessGroup] = group as CFString }
    |                                                                 `- error: cannot find 'kSecAttrAccessGroup' in scope
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
 79 |         if !keychain.authentication.isEmpty, contains(.authentication) {
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:77:97: error: cannot find type 'CFString' in scope
 75 |         var query = self.query()
 76 |         if let service = keychain.service, contains(.service) { query[kSecAttrService] = service as CFString }
 77 |         if let group = keychain.group, contains(.group) { query[kSecAttrAccessGroup] = group as CFString }
    |                                                                                                 `- error: cannot find type 'CFString' in scope
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
 79 |         if !keychain.authentication.isEmpty, contains(.authentication) {
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:78:78: error: cannot find 'kSecAttrAccessible' in scope
 76 |         if let service = keychain.service, contains(.service) { query[kSecAttrService] = service as CFString }
 77 |         if let group = keychain.group, contains(.group) { query[kSecAttrAccessGroup] = group as CFString }
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
    |                                                                              `- error: cannot find 'kSecAttrAccessible' in scope
 79 |         if !keychain.authentication.isEmpty, contains(.authentication) {
 80 |             var error: Unmanaged<CFError>?
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:57:31: error: cannot find type 'CFString' in scope
55 |         ///
56 |         /// - parameter rawValue: A valid `CFString`.
57 |         public init(rawValue: CFString) { self.rawValue = rawValue }
   |                               `- error: cannot find type 'CFString' in scope
58 |     }
59 | }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:14:30: error: cannot find type 'CFString' in scope
12 |     struct Accessibility: Hashable, RawRepresentable {
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                              `- error: cannot find type 'CFString' in scope
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:73:10: error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
 71 |     /// - throws: Some `CFError`.
 72 |     /// - returns: A dictionary.
 73 |     func query(for keychain: Keychain) throws -> [CFString: Any] {
    |          `- error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
 74 |         // Prepare the query.
 75 |         var query = self.query()
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:80:34: error: cannot find type 'CFError' in scope
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
 79 |         if !keychain.authentication.isEmpty, contains(.authentication) {
 80 |             var error: Unmanaged<CFError>?
    |                                  `- error: cannot find type 'CFError' in scope
 81 |             query[kSecAttrAccessControl] = withUnsafeMutablePointer(to: &error) {
 82 |                 SecAccessControlCreateWithFlags(nil,
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:81:19: error: cannot find 'kSecAttrAccessControl' in scope
 79 |         if !keychain.authentication.isEmpty, contains(.authentication) {
 80 |             var error: Unmanaged<CFError>?
 81 |             query[kSecAttrAccessControl] = withUnsafeMutablePointer(to: &error) {
    |                   `- error: cannot find 'kSecAttrAccessControl' in scope
 82 |                 SecAccessControlCreateWithFlags(nil,
 83 |                                                 keychain.accessibility.rawValue,
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:82:17: error: cannot find 'SecAccessControlCreateWithFlags' in scope
 80 |             var error: Unmanaged<CFError>?
 81 |             query[kSecAttrAccessControl] = withUnsafeMutablePointer(to: &error) {
 82 |                 SecAccessControlCreateWithFlags(nil,
    |                 `- error: cannot find 'SecAccessControlCreateWithFlags' in scope
 83 |                                                 keychain.accessibility.rawValue,
 84 |                                                 keychain.authentication.flags,
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:103:20: error: cannot find type 'SecAccessControlCreateFlags' in scope
101 |         ///
102 |         /// - returns: Some `SecAccessControlCreateFlags`.
103 |         var flags: SecAccessControlCreateFlags {
    |                    `- error: cannot find type 'SecAccessControlCreateFlags' in scope
104 |             var set: SecAccessControlCreateFlags = []
105 |             // Prepare set.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:82:49: error: 'nil' requires a contextual type
 80 |             var error: Unmanaged<CFError>?
 81 |             query[kSecAttrAccessControl] = withUnsafeMutablePointer(to: &error) {
 82 |                 SecAccessControlCreateWithFlags(nil,
    |                                                 `- error: 'nil' requires a contextual type
 83 |                                                 keychain.accessibility.rawValue,
 84 |                                                 keychain.authentication.flags,
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:90:74: error: cannot find 'kSecAttrSynchronizable' in scope
 88 |             if let error = error?.takeUnretainedValue() { throw error }
 89 |         }
 90 |         if keychain.isSynchronizable, contains(.synchronization) { query[kSecAttrSynchronizable] = kSecAttrSynchronizableAny }
    |                                                                          `- error: cannot find 'kSecAttrSynchronizable' in scope
 91 |         // Return query.
 92 |         return query
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:90:100: error: cannot find 'kSecAttrSynchronizableAny' in scope
 88 |             if let error = error?.takeUnretainedValue() { throw error }
 89 |         }
 90 |         if keychain.isSynchronizable, contains(.synchronization) { query[kSecAttrSynchronizable] = kSecAttrSynchronizableAny }
    |                                                                                                    `- error: cannot find 'kSecAttrSynchronizableAny' in scope
 91 |         // Return query.
 92 |         return query
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:105:35: error: cannot find 'kSecAttrAccount' in scope
103 |         // Prepare the query.
104 |         var query = try self.query(for: container.keychain)
105 |         if contains(.key) { query[kSecAttrAccount] = container.key }
    |                                   `- error: cannot find 'kSecAttrAccount' in scope
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:107:19: error: cannot find 'kSecValueData' in scope
105 |         if contains(.key) { query[kSecAttrAccount] = container.key }
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
    |                   `- error: cannot find 'kSecValueData' in scope
108 |             if query[kSecAttrSynchronizable] != nil { query[kSecAttrSynchronizable] = kCFBooleanTrue! }
109 |         }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:107:45: error: cannot find type 'CFData' in scope
105 |         if contains(.key) { query[kSecAttrAccount] = container.key }
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
    |                                             `- error: cannot find type 'CFData' in scope
108 |             if query[kSecAttrSynchronizable] != nil { query[kSecAttrSynchronizable] = kCFBooleanTrue! }
109 |         }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:108:22: error: cannot find 'kSecAttrSynchronizable' in scope
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
108 |             if query[kSecAttrSynchronizable] != nil { query[kSecAttrSynchronizable] = kCFBooleanTrue! }
    |                      `- error: cannot find 'kSecAttrSynchronizable' in scope
109 |         }
110 |         // Return query.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:108:61: error: cannot find 'kSecAttrSynchronizable' in scope
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
108 |             if query[kSecAttrSynchronizable] != nil { query[kSecAttrSynchronizable] = kCFBooleanTrue! }
    |                                                             `- error: cannot find 'kSecAttrSynchronizable' in scope
109 |         }
110 |         // Return query.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:108:87: error: cannot find 'kCFBooleanTrue' in scope
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
108 |             if query[kSecAttrSynchronizable] != nil { query[kSecAttrSynchronizable] = kCFBooleanTrue! }
    |                                                                                       `- error: cannot find 'kCFBooleanTrue' in scope
109 |         }
110 |         // Return query.
[6/9] Compiling Swiftchain KeychainAccessibility.swift
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:14:30: error: cannot find type 'CFString' in scope
12 |     struct Accessibility: Hashable, RawRepresentable {
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                              `- error: cannot find type 'CFString' in scope
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:21:70: error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
19 |         /// This is recommended for items that need to be accessed by background applications.
20 |         /// Items with this attribute migrate to a new device when using encrypted backups.
21 |         public static let afterFirstUnlock = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlock)
   |                                                                      `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
22 |
23 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:57:31: error: cannot find type 'CFString' in scope
55 |         ///
56 |         /// - parameter rawValue: A valid `CFString`.
57 |         public init(rawValue: CFString) { self.rawValue = rawValue }
   |                               `- error: cannot find type 'CFString' in scope
58 |     }
59 | }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:21:46: error: no exact matches in call to initializer
19 |         /// This is recommended for items that need to be accessed by background applications.
20 |         /// Items with this attribute migrate to a new device when using encrypted backups.
21 |         public static let afterFirstUnlock = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlock)
   |                                              |- error: no exact matches in call to initializer
   |                                              `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
22 |
23 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:29:84: error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
27 |         /// Items with this attribute do not migrate to a new device.
28 |         ///  Thus, after restoring from a backup of a different device, these items will not be present.
29 |         public static let afterFirstUnlockThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly)
   |                                                                                    `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
30 |
31 |         /// The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:29:60: error: no exact matches in call to initializer
27 |         /// Items with this attribute do not migrate to a new device.
28 |         ///  Thus, after restoring from a backup of a different device, these items will not be present.
29 |         public static let afterFirstUnlockThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly)
   |                                                            |- error: no exact matches in call to initializer
   |                                                            `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
30 |
31 |         /// The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:38:83: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
36 |         /// No items can be stored in this class on devices without a passcode.
37 |         /// Disabling the device passcode causes all items in this class to be deleted.
38 |         public static let whenPasscodeSetThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly)
   |                                                                                   `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
39 |
40 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:38:59: error: no exact matches in call to initializer
36 |         /// No items can be stored in this class on devices without a passcode.
37 |         /// Disabling the device passcode causes all items in this class to be deleted.
38 |         public static let whenPasscodeSetThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly)
   |                                                           |- error: no exact matches in call to initializer
   |                                                           `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
39 |
40 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:66: error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                                                  `- error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:42: error: no exact matches in call to initializer
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                          |- error: no exact matches in call to initializer
   |                                          `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:52:80: error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
50 |         /// Items with this attribute do not migrate to a new device.
51 |         /// Thus, after restoring from a backup of a different device, these items will not be present.
52 |         public static let whenUnlockedThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenUnlockedThisDeviceOnly)
   |                                                                                `- error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
53 |
54 |         /// Init.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:52:56: error: no exact matches in call to initializer
50 |         /// Items with this attribute do not migrate to a new device.
51 |         /// Thus, after restoring from a backup of a different device, these items will not be present.
52 |         public static let whenUnlockedThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenUnlockedThisDeviceOnly)
   |                                                        |- error: no exact matches in call to initializer
   |                                                        `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
53 |
54 |         /// Init.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'Hashable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- error: type 'Keychain.Accessibility' does not conform to protocol 'Hashable'
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                    `- note: stored property type '<<error type>>' does not conform to protocol 'Hashable', preventing synthesized conformance of 'Keychain.Accessibility' to 'Hashable'
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
13 |         /// The underlying value.
14 |         public let rawValue: CFString
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'Equatable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- error: type 'Keychain.Accessibility' does not conform to protocol 'Equatable'
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                    `- note: stored property type '<<error type>>' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Keychain.Accessibility' to 'Equatable'
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
Swift.==:1:24: note: candidate would match if 'Keychain.Accessibility.RawValue' conformed to 'Equatable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
  |                        `- note: candidate would match if 'Keychain.Accessibility.RawValue' conformed to 'Equatable'
Swift.FloatingPoint:2:24: note: candidate would match if 'Keychain.Accessibility' conformed to 'FloatingPoint'
1 | extension FloatingPoint {
2 |     public static func == (lhs: Self, rhs: Self) -> Bool
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to 'FloatingPoint'
3 |     public static func < (lhs: Self, rhs: Self) -> Bool
4 |     public static func <= (lhs: Self, rhs: Self) -> Bool
Swift.BinaryInteger:2:24: note: candidate would match if 'Keychain.Accessibility' conformed to 'BinaryInteger'
1 | extension BinaryInteger {
2 |     public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to 'BinaryInteger'
3 |     public static func != <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
4 |     public static func < <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger
Swift._Pointer:2:24: note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
1 | extension _Pointer {
2 |     public static func == (lhs: Self, rhs: Self) -> Bool
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
3 |     @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer
  |                                   `- note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
4 |     @inlinable public static func != <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer
5 | }
Swift.Strideable:3:35: note: candidate would match if 'Keychain.Accessibility' conformed to 'Strideable'
1 | extension Strideable {
2 |     @inlinable public static func < (x: Self, y: Self) -> Bool
3 |     @inlinable public static func == (x: Self, y: Self) -> Bool
  |                                   `- note: candidate would match if 'Keychain.Accessibility' conformed to 'Strideable'
4 | }
Swift.StringProtocol:2:35: note: candidate would match if 'Keychain.Accessibility' conformed to 'StringProtocol'
1 | extension StringProtocol {
2 |     @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
  |                                   `- note: candidate would match if 'Keychain.Accessibility' conformed to 'StringProtocol'
3 |     @inlinable public static func != <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
4 |     @inlinable public static func < <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol
Swift.SIMD:4:24: note: candidate would match if 'Keychain.Accessibility' conformed to 'SIMD'
 2 |     public var indices: Range<Int> { get }
 3 |     public init(repeating value: Self.Scalar)
 4 |     public static func == (a: Self, b: Self) -> Bool
   |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to 'SIMD'
 5 |     @inlinable public func hash(into hasher: inout Hasher)
 6 |     public func encode(to encoder: any Encoder) throws
Foundation.__BridgedNSError:2:24: note: candidate would match if 'Keychain.Accessibility' conformed to '__BridgedNSError'
1 | extension __BridgedNSError where Self : RawRepresentable, Self.RawValue : FixedWidthInteger {
2 |     public static func == (lhs: Self, rhs: Self) -> Bool
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to '__BridgedNSError'
3 | }
Foundation._BridgedStoredNSError:2:24: note: candidate would match if 'Keychain.Accessibility' conformed to '_BridgedStoredNSError'
1 | extension _BridgedStoredNSError {
2 |     public static func == (lhs: Self, rhs: Self) -> Bool
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to '_BridgedStoredNSError'
3 | }
FoundationEssentials.AttributedStringProtocol:3:24: note: candidate would match if 'Keychain.Accessibility' conformed to 'AttributedStringProtocol'
1 | @available(macOS 12, iOS 15, tvOS 15, watchOS 8, *)
2 | extension AttributedStringProtocol {
3 |     public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol
  |                        `- note: candidate would match if 'Keychain.Accessibility' conformed to 'AttributedStringProtocol'
4 |     public func hash(into hasher: inout Hasher)
5 | }
Swift.RawRepresentable:2:20: note: protocol requires nested type 'RawValue'; add nested type 'RawValue' for conformance
1 | public protocol RawRepresentable<RawValue> {
2 |     associatedtype RawValue
  |                    `- note: protocol requires nested type 'RawValue'; add nested type 'RawValue' for conformance
3 |     init?(rawValue: Self.RawValue)
4 |     var rawValue: Self.RawValue { get }
Swift.Equatable:2:17: note: protocol requires function '==' with type '(Keychain.Accessibility, Keychain.Accessibility) -> Bool'
1 | public protocol Equatable {
2 |     static func == (lhs: Self, rhs: Self) -> Bool
  |                 `- note: protocol requires function '==' with type '(Keychain.Accessibility, Keychain.Accessibility) -> Bool'
3 | }
[7/9] Compiling Swiftchain KeychainAuthentication.swift
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:34:27: warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 32 |         /// Constraint to access an item with a passcode.
 33 |         @available(macOS 10.11, *)
 34 |         public static let devicePasscode = Authentication(rawValue: 1 << 0)
    |                           |- warning: static property 'devicePasscode' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'devicePasscode' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 35 |
 36 |         /// Constraint to access an item with Touch ID for any enrolled fingers, or Face ID.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:41:27: warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 39 |         /// The item is still accessible by Touch ID if fingers are added or removed, or by Face ID if the user is re-enrolled.
 40 |         @available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *)
 41 |         public static let biometryAny = Authentication(rawValue: 1 << 1)
    |                           |- warning: static property 'biometryAny' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'biometryAny' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 |         /// Constraint to access an item with Touch ID for currently enrolled fingers, or from Face ID with the currently enrolled user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:48:27: warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 46 |         /// The item is invalidated if fingers are added or removed for Touch ID, or if the user re-enrolls for Face ID.
 47 |         @available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *)
 48 |         public static let biometryCurrentSet = Authentication(rawValue: 1 << 2)
    |                           |- warning: static property 'biometryCurrentSet' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'biometryCurrentSet' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 49 |
 50 |         /// Constraint to access an item with a watch.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:57:27: warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
 14 |     ///         If you were looking for the **intersection** of all its elements,
 15 |     ///         just use `.and()` instead.
 16 |     struct Authentication: OptionSet {
    |            `- note: consider making struct 'Authentication' conform to the 'Sendable' protocol
 17 |         /// An `enum` representing the binary operator used to consider all options set.
 18 |         public enum Operator {
    :
 55 |         @available(tvOS, unavailable)
 56 |         @available(watchOS, unavailable)
 57 |         public static let watch = Authentication(rawValue: 1 << 3)
    |                           |- warning: static property 'watch' is not concurrency-safe because non-'Sendable' type 'Keychain.Authentication' may have shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: annotate 'watch' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 58 |
 59 |         /// Constraint to access an item with either biometry or passcode.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:103:20: error: cannot find type 'SecAccessControlCreateFlags' in scope
101 |         ///
102 |         /// - returns: Some `SecAccessControlCreateFlags`.
103 |         var flags: SecAccessControlCreateFlags {
    |                    `- error: cannot find type 'SecAccessControlCreateFlags' in scope
104 |             var set: SecAccessControlCreateFlags = []
105 |             // Prepare set.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:104:22: error: cannot find type 'SecAccessControlCreateFlags' in scope
102 |         /// - returns: Some `SecAccessControlCreateFlags`.
103 |         var flags: SecAccessControlCreateFlags {
104 |             var set: SecAccessControlCreateFlags = []
    |                      `- error: cannot find type 'SecAccessControlCreateFlags' in scope
105 |             // Prepare set.
106 |             if #available(macOS 10.11, *), contains(.devicePasscode) {
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:107:29: error: cannot infer contextual base in reference to member 'devicePasscode'
105 |             // Prepare set.
106 |             if #available(macOS 10.11, *), contains(.devicePasscode) {
107 |                 set.insert(.devicePasscode)
    |                             `- error: cannot infer contextual base in reference to member 'devicePasscode'
108 |             }
109 |             if #available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *),
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:111:29: error: cannot infer contextual base in reference to member 'biometryAny'
109 |             if #available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *),
110 |                contains(.biometryAny) {
111 |                 set.insert(.biometryAny)
    |                             `- error: cannot infer contextual base in reference to member 'biometryAny'
112 |             }
113 |             if #available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *),
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:115:29: error: cannot infer contextual base in reference to member 'biometryCurrentSet'
113 |             if #available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *),
114 |                contains(.biometryCurrentSet) {
115 |                 set.insert(.biometryCurrentSet)
    |                             `- error: cannot infer contextual base in reference to member 'biometryCurrentSet'
116 |             }
117 |             #if os(macOS)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:123:33: error: cannot infer contextual base in reference to member 'and'
121 |             if #available(macOS 10.12.1, *) {
122 |                 if self.operator == .and {
123 |                     set.insert(.and)
    |                                 `- error: cannot infer contextual base in reference to member 'and'
124 |                 } else {
125 |                     set.insert(.or)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:125:33: error: cannot infer contextual base in reference to member 'or'
123 |                     set.insert(.and)
124 |                 } else {
125 |                     set.insert(.or)
    |                                 `- error: cannot infer contextual base in reference to member 'or'
126 |                 }
127 |             }
[8/9] Compiling Swiftchain Keychain.swift
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:13:23: warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 11 | open class Keychain {
 12 |     /// A shared instance of `Keychain`.
 13 |     public static var `default` = Keychain()
    |                       |- warning: static property 'default' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'default' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'default' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 14 |
 15 |     /// A shared lock.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:66: error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                                                  `- error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:57:31: error: cannot find type 'CFString' in scope
55 |         ///
56 |         /// - parameter rawValue: A valid `CFString`.
57 |         public init(rawValue: CFString) { self.rawValue = rawValue }
   |                               `- error: cannot find type 'CFString' in scope
58 |     }
59 | }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:14:30: error: cannot find type 'CFString' in scope
12 |     struct Accessibility: Hashable, RawRepresentable {
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                              `- error: cannot find type 'CFString' in scope
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:49:26: error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
 47 |     public required init(service: String? = Bundle.main.bundleIdentifier ?? "Swiftchain",
 48 |                          group: String? = nil,
 49 |                          accessibility: Accessibility = .whenUnlocked,
    |                          `- error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
 50 |                          authentication: Authentication = [],
 51 |                          isSynchronizable: Bool = false) {
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:42: error: no exact matches in call to initializer
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                          |- error: no exact matches in call to initializer
   |                                          `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:54:22: error: cannot find type 'CFString' in scope
 52 |     ///
 53 |     /// - returns: A dictionary.
 54 |     func query() -> [CFString: Any] {
    |                      `- error: cannot find type 'CFString' in scope
 55 |         // Prepare the query.
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:73:51: error: cannot find type 'CFString' in scope
 71 |     /// - throws: Some `CFError`.
 72 |     /// - returns: A dictionary.
 73 |     func query(for keychain: Keychain) throws -> [CFString: Any] {
    |                                                   `- error: cannot find type 'CFString' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:102:87: error: cannot find type 'CFString' in scope
100 |     /// - throws: Some `CFError`.
101 |     /// - returns: A dictionary.
102 |     func query(for container: Keychain.Container, with value: Data? = nil) throws -> [CFString: Any] {
    |                                                                                       `- error: cannot find type 'CFString' in scope
103 |         // Prepare the query.
104 |         var query = try self.query(for: container.keychain)
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:75:35: error: cannot find 'SecItemDelete' in scope
 73 |         let query = try constants.query(for: self)
 74 |         // Remove items.
 75 |         switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
    |                                   `- error: cannot find 'SecItemDelete' in scope
 76 |         case errSecSuccess, errSecItemNotFound: break
 77 |         case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:75:58: error: cannot find type 'CFDictionary' in scope
 73 |         let query = try constants.query(for: self)
 74 |         // Remove items.
 75 |         switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
    |                                                          `- error: cannot find type 'CFDictionary' in scope
 76 |         case errSecSuccess, errSecItemNotFound: break
 77 |         case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:76:14: error: cannot find 'errSecSuccess' in scope
 74 |         // Remove items.
 75 |         switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
 76 |         case errSecSuccess, errSecItemNotFound: break
    |              `- error: cannot find 'errSecSuccess' in scope
 77 |         case let status: throw Error.status(status)
 78 |         }
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:76:29: error: cannot find 'errSecItemNotFound' in scope
 74 |         // Remove items.
 75 |         switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
 76 |         case errSecSuccess, errSecItemNotFound: break
    |                             `- error: cannot find 'errSecItemNotFound' in scope
 77 |         case let status: throw Error.status(status)
 78 |         }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:14:21: error: cannot find type 'OSStatus' in scope
12 |     enum Error: LocalizedError {
13 |         /// A keychain specific error.
14 |         case status(OSStatus)
   |                     `- error: cannot find type 'OSStatus' in scope
15 |         /// Invalid downcast.
16 |         case invalidCasting
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:91:75: error: cannot find 'SecItemCopyMatching' in scope
 89 |         // Fetch results.
 90 |         var result: AnyObject?
 91 |         switch Keychain.locking({ withUnsafeMutablePointer(to: &result) { SecItemCopyMatching(query as CFDictionary, $0) }}) {
    |                                                                           `- error: cannot find 'SecItemCopyMatching' in scope
 92 |         case errSecSuccess: break
 93 |         case errSecItemNotFound: return []
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:91:104: error: cannot find type 'CFDictionary' in scope
 89 |         // Fetch results.
 90 |         var result: AnyObject?
 91 |         switch Keychain.locking({ withUnsafeMutablePointer(to: &result) { SecItemCopyMatching(query as CFDictionary, $0) }}) {
    |                                                                                                        `- error: cannot find type 'CFDictionary' in scope
 92 |         case errSecSuccess: break
 93 |         case errSecItemNotFound: return []
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:92:14: error: cannot find 'errSecSuccess' in scope
 90 |         var result: AnyObject?
 91 |         switch Keychain.locking({ withUnsafeMutablePointer(to: &result) { SecItemCopyMatching(query as CFDictionary, $0) }}) {
 92 |         case errSecSuccess: break
    |              `- error: cannot find 'errSecSuccess' in scope
 93 |         case errSecItemNotFound: return []
 94 |         case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:93:14: error: cannot find 'errSecItemNotFound' in scope
 91 |         switch Keychain.locking({ withUnsafeMutablePointer(to: &result) { SecItemCopyMatching(query as CFDictionary, $0) }}) {
 92 |         case errSecSuccess: break
 93 |         case errSecItemNotFound: return []
    |              `- error: cannot find 'errSecItemNotFound' in scope
 94 |         case let status: throw Error.status(status)
 95 |         }
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:99:40: error: cannot find 'kSecAttrAccount' in scope
 97 |         // Return results.
 98 |         return results.reduce(into: Set<String>()) { set, attributes in
 99 |             guard let key = attributes[kSecAttrAccount] as? String else { return }
    |                                        `- error: cannot find 'kSecAttrAccount' in scope
100 |             set.insert(key as String)
101 |         }
[9/9] Compiling Swiftchain KeychainContainer.swift
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:54:22: error: cannot find type 'CFString' in scope
 52 |     ///
 53 |     /// - returns: A dictionary.
 54 |     func query() -> [CFString: Any] {
    |                      `- error: cannot find type 'CFString' in scope
 55 |         // Prepare the query.
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:73:51: error: cannot find type 'CFString' in scope
 71 |     /// - throws: Some `CFError`.
 72 |     /// - returns: A dictionary.
 73 |     func query(for keychain: Keychain) throws -> [CFString: Any] {
    |                                                   `- error: cannot find type 'CFString' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:102:87: error: cannot find type 'CFString' in scope
100 |     /// - throws: Some `CFError`.
101 |     /// - returns: A dictionary.
102 |     func query(for container: Keychain.Container, with value: Data? = nil) throws -> [CFString: Any] {
    |                                                                                       `- error: cannot find type 'CFString' in scope
103 |         // Prepare the query.
104 |         var query = try self.query(for: container.keychain)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:56:43: error: cannot find 'SecItemAdd' in scope
 54 |                 let query = try constants.query(for: self, with: data)
 55 |                 // Store results.
 56 |                 switch Keychain.locking({ SecItemAdd(query as CFDictionary, nil) }) {
    |                                           `- error: cannot find 'SecItemAdd' in scope
 57 |                 case errSecSuccess: break
 58 |                 case errSecDuplicateItem:
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:56:63: error: cannot find type 'CFDictionary' in scope
 54 |                 let query = try constants.query(for: self, with: data)
 55 |                 // Store results.
 56 |                 switch Keychain.locking({ SecItemAdd(query as CFDictionary, nil) }) {
    |                                                               `- error: cannot find type 'CFDictionary' in scope
 57 |                 case errSecSuccess: break
 58 |                 case errSecDuplicateItem:
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:56:77: error: 'nil' requires a contextual type
 54 |                 let query = try constants.query(for: self, with: data)
 55 |                 // Store results.
 56 |                 switch Keychain.locking({ SecItemAdd(query as CFDictionary, nil) }) {
    |                                                                             `- error: 'nil' requires a contextual type
 57 |                 case errSecSuccess: break
 58 |                 case errSecDuplicateItem:
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:57:22: error: cannot find 'errSecSuccess' in scope
 55 |                 // Store results.
 56 |                 switch Keychain.locking({ SecItemAdd(query as CFDictionary, nil) }) {
 57 |                 case errSecSuccess: break
    |                      `- error: cannot find 'errSecSuccess' in scope
 58 |                 case errSecDuplicateItem:
 59 |                     // Update attributes.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:58:22: error: cannot find 'errSecDuplicateItem' in scope
 56 |                 switch Keychain.locking({ SecItemAdd(query as CFDictionary, nil) }) {
 57 |                 case errSecSuccess: break
 58 |                 case errSecDuplicateItem:
    |                      `- error: cannot find 'errSecDuplicateItem' in scope
 59 |                     // Update attributes.
 60 |                     let initialConstants: SecurityConstants = [.service, .group, .key]
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:61:84: error: 'nil' requires a contextual type
 59 |                     // Update attributes.
 60 |                     let initialConstants: SecurityConstants = [.service, .group, .key]
 61 |                     let initialQuery = try initialConstants.query(for: self, with: nil)
    |                                                                                    `- error: 'nil' requires a contextual type
 62 |                     let updateQuery = try SecurityConstants.value.query(for: self, with: data)
 63 |                     switch Keychain.locking({ SecItemUpdate(initialQuery as CFDictionary, updateQuery as CFDictionary) }) {
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:63:47: error: cannot find 'SecItemUpdate' in scope
 61 |                     let initialQuery = try initialConstants.query(for: self, with: nil)
 62 |                     let updateQuery = try SecurityConstants.value.query(for: self, with: data)
 63 |                     switch Keychain.locking({ SecItemUpdate(initialQuery as CFDictionary, updateQuery as CFDictionary) }) {
    |                                               `- error: cannot find 'SecItemUpdate' in scope
 64 |                     case errSecSuccess: break
 65 |                     case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:63:77: error: cannot find type 'CFDictionary' in scope
 61 |                     let initialQuery = try initialConstants.query(for: self, with: nil)
 62 |                     let updateQuery = try SecurityConstants.value.query(for: self, with: data)
 63 |                     switch Keychain.locking({ SecItemUpdate(initialQuery as CFDictionary, updateQuery as CFDictionary) }) {
    |                                                                             `- error: cannot find type 'CFDictionary' in scope
 64 |                     case errSecSuccess: break
 65 |                     case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:63:106: error: cannot find type 'CFDictionary' in scope
 61 |                     let initialQuery = try initialConstants.query(for: self, with: nil)
 62 |                     let updateQuery = try SecurityConstants.value.query(for: self, with: data)
 63 |                     switch Keychain.locking({ SecItemUpdate(initialQuery as CFDictionary, updateQuery as CFDictionary) }) {
    |                                                                                                          `- error: cannot find type 'CFDictionary' in scope
 64 |                     case errSecSuccess: break
 65 |                     case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:64:26: error: cannot find 'errSecSuccess' in scope
 62 |                     let updateQuery = try SecurityConstants.value.query(for: self, with: data)
 63 |                     switch Keychain.locking({ SecItemUpdate(initialQuery as CFDictionary, updateQuery as CFDictionary) }) {
 64 |                     case errSecSuccess: break
    |                          `- error: cannot find 'errSecSuccess' in scope
 65 |                     case let status: throw Error.status(status)
 66 |                     }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:14:21: error: cannot find type 'OSStatus' in scope
12 |     enum Error: LocalizedError {
13 |         /// A keychain specific error.
14 |         case status(OSStatus)
   |                     `- error: cannot find type 'OSStatus' in scope
15 |         /// Invalid downcast.
16 |         case invalidCasting
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:124:39: error: cannot find 'SecItemDelete' in scope
122 |             let query = try constants.query(for: self)
123 |             // Delete.
124 |             switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
    |                                       `- error: cannot find 'SecItemDelete' in scope
125 |             case errSecSuccess, errSecItemNotFound: break
126 |             case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:124:62: error: cannot find type 'CFDictionary' in scope
122 |             let query = try constants.query(for: self)
123 |             // Delete.
124 |             switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
    |                                                              `- error: cannot find type 'CFDictionary' in scope
125 |             case errSecSuccess, errSecItemNotFound: break
126 |             case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:125:18: error: cannot find 'errSecSuccess' in scope
123 |             // Delete.
124 |             switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
125 |             case errSecSuccess, errSecItemNotFound: break
    |                  `- error: cannot find 'errSecSuccess' in scope
126 |             case let status: throw Error.status(status)
127 |             }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:125:33: error: cannot find 'errSecItemNotFound' in scope
123 |             // Delete.
124 |             switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
125 |             case errSecSuccess, errSecItemNotFound: break
    |                                 `- error: cannot find 'errSecItemNotFound' in scope
126 |             case let status: throw Error.status(status)
127 |             }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:163:39: error: cannot find 'SecItemCopyMatching' in scope
161 |             // Fetch results.
162 |             var result: AnyObject?
163 |             switch Keychain.locking({ SecItemCopyMatching(query as CFDictionary, &result) }) {
    |                                       `- error: cannot find 'SecItemCopyMatching' in scope
164 |             case errSecItemNotFound: return nil
165 |             case noErr: break
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:163:68: error: cannot find type 'CFDictionary' in scope
161 |             // Fetch results.
162 |             var result: AnyObject?
163 |             switch Keychain.locking({ SecItemCopyMatching(query as CFDictionary, &result) }) {
    |                                                                    `- error: cannot find type 'CFDictionary' in scope
164 |             case errSecItemNotFound: return nil
165 |             case noErr: break
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:164:18: error: cannot find 'errSecItemNotFound' in scope
162 |             var result: AnyObject?
163 |             switch Keychain.locking({ SecItemCopyMatching(query as CFDictionary, &result) }) {
164 |             case errSecItemNotFound: return nil
    |                  `- error: cannot find 'errSecItemNotFound' in scope
165 |             case noErr: break
166 |             case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:165:18: error: cannot find 'noErr' in scope
163 |             switch Keychain.locking({ SecItemCopyMatching(query as CFDictionary, &result) }) {
164 |             case errSecItemNotFound: return nil
165 |             case noErr: break
    |                  `- error: cannot find 'noErr' in scope
166 |             case let status: throw Error.status(status)
167 |             }
BUILD FAILURE 6.0 linux