Build Information
Failed to build Swiftchain, reference main (ab0409
), with Swift 6.0 for Linux on 1 Nov 2024 14:38:59 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-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 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.56.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-4609320-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 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
[3/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)
[4/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.
[5/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 | }
[6/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 | }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[7/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)
[8/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 | }
[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