Build Information
Failed to build DevKeychain, reference 1.0.0 (7763d6
), with Swift 6.2 (beta) for Linux on 2 Sep 2025 21:49:25 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:basic-6.2-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.67.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/DevKitOrganization/DevKeychain.git
Reference: 1.0.0
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/DevKitOrganization/DevKeychain
* tag 1.0.0 -> FETCH_HEAD
HEAD is now at 7763d6b Final changes before 1.0.0 release
Cloned https://github.com/DevKitOrganization/DevKeychain.git
Revision (git rev-parse @):
7763d6bfffdda479cb854bc138a7f1cabb68062b
SUCCESS checkout https://github.com/DevKitOrganization/DevKeychain.git at 1.0.0
========================================
Build
========================================
Selected platform: linux
Swift version: 6.2
Building package at path: $PWD
https://github.com/DevKitOrganization/DevKeychain.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:basic-6.2-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:c6c8e08ea30bca759adf847aac87887750120fe9b6eaea09f5af37036a41e81a
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.2-latest
Fetching https://github.com/DevKitOrganization/DevTesting
[3/292] Fetching devtesting
Fetched https://github.com/DevKitOrganization/DevTesting from cache (0.40s)
Computing version for https://github.com/DevKitOrganization/DevTesting
Computed https://github.com/DevKitOrganization/DevTesting at 1.0.0 (1.17s)
Creating working copy for https://github.com/DevKitOrganization/DevTesting
Working copy of https://github.com/DevKitOrganization/DevTesting resolved at 1.0.0
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/11] Emitting module DevKeychain
/host/spi-builder-workspace/Sources/DevKeychain/Core/Keychain.swift:107:32: error: cannot find type 'CFString' in scope
105 |
106 | /// A dictionary-representation of the options to pass to the keychain services API.
107 | var optionDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
108 | return [
109 | kSecMatchCaseInsensitive: isCaseInsensitive,
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemAdditionAttributes.swift:16:32: error: cannot find type 'CFString' in scope
14 |
15 | /// A dictionary-representation of the new item to pass to the keychain services API.
16 | var attributesDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
17 |
18 | /// Maps the raw return value from the keychain services API into the instance’s `Item` type.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:20:32: error: cannot find type 'CFString' in scope
18 | /// `kSecMatchCaseInsensitive` or `kSecMatchLimit`, or item return result keys like `kSecReturnAttributes` or
19 | /// `kSecReturnData`.
20 | var attributesDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
21 |
22 | /// A dictionary describing how query results should be returned from the keychain services API.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:26:28: error: cannot find type 'CFString' in scope
24 | /// This dictionary is combined with ``attributesDictionary`` when finding items. It is not used to delete items. It
25 | /// should only contain item return result keys like `kSecReturnAttributes` or `kSecReturnData`.
26 | var returnDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
27 |
28 | /// Maps the raw return value from the keychain services API into an array of the instance’s `Item` type.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:18:46: error: cannot find type 'CFString' in scope
16 | /// - Parameter attributes: The new keychain item’s attributes.
17 | /// - Returns: The newly added item.
18 | func addItem(withAttributes attributes: [CFString: Any]) throws -> AnyObject?
| `- error: cannot find type 'CFString' in scope
19 |
20 | /// Returns keychain items matching the specified query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:23:38: error: cannot find type 'CFString' in scope
21 | ///
22 | /// - Parameter query: A dictionary containing attributes of items to match as well as search options.
23 | func items(matchingQuery query: [CFString: Any]) throws -> AnyObject?
| `- error: cannot find type 'CFString' in scope
24 |
25 | /// Deletes keychain items matching the specified query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:28:49: error: cannot find type 'CFString' in scope
26 | ///
27 | /// - Parameter query: A dictionary containing attributes of items to match as well as search options.
28 | func deleteItems(matchingQuery attributes: [CFString: Any]) throws
| `- error: cannot find type 'CFString' in scope
29 | }
30 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:29: error: cannot find type 'CFDictionary' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'CFDictionary' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:64: error: cannot find type 'CFTypeRef' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'CFTypeRef' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:81: error: cannot find type 'OSStatus' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'OSStatus' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:39: error: cannot find type 'CFDictionary' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'CFDictionary' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:74: error: cannot find type 'CFTypeRef' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'CFTypeRef' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:91: error: cannot find type 'OSStatus' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'OSStatus' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:50:33: error: cannot find type 'CFDictionary' in scope
48 | ///
49 | /// By default, this is `SecItemDelete(_:)`. It is provided for dependency injection purposes.
50 | var deleteItems: @Sendable (CFDictionary) -> OSStatus = SecItemDelete
| `- error: cannot find type 'CFDictionary' in scope
51 |
52 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:50:50: error: cannot find type 'OSStatus' in scope
48 | ///
49 | /// By default, this is `SecItemDelete(_:)`. It is provided for dependency injection purposes.
50 | var deleteItems: @Sendable (CFDictionary) -> OSStatus = SecItemDelete
| `- error: cannot find type 'OSStatus' in scope
51 |
52 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:53:46: error: cannot find type 'CFString' in scope
51 |
52 |
53 | func addItem(withAttributes attributes: [CFString: Any]) throws -> AnyObject? {
| `- error: cannot find type 'CFString' in scope
54 | var result: AnyObject?
55 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:65:38: error: cannot find type 'CFString' in scope
63 |
64 |
65 | func items(matchingQuery query: [CFString: Any]) throws -> AnyObject? {
| `- error: cannot find type 'CFString' in scope
66 | var result: AnyObject?
67 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:80:44: error: cannot find type 'CFString' in scope
78 |
79 |
80 | func deleteItems(matchingQuery query: [CFString: Any]) throws {
| `- error: cannot find type 'CFString' in scope
81 | let osStatus = deleteItems(query as CFDictionary)
82 | if osStatus != errSecSuccess && osStatus != errSecItemNotFound {
/host/spi-builder-workspace/Sources/DevKeychain/Errors/KeychainServicesError.swift:13:19: error: cannot find type 'OSStatus' in scope
11 | struct KeychainServicesError: CustomStringConvertible, Error, Hashable {
12 | /// The underlying `OSStatus` that describes the error.
13 | let osStatus: OSStatus
| `- error: cannot find type 'OSStatus' in scope
14 |
15 |
/host/spi-builder-workspace/Sources/DevKeychain/Errors/KeychainServicesError.swift:11:8: error: type 'KeychainServicesError' does not conform to protocol 'Hashable'
9 |
10 | /// An error from the keychain services API.
11 | struct KeychainServicesError: CustomStringConvertible, Error, Hashable {
| `- error: type 'KeychainServicesError' does not conform to protocol 'Hashable'
12 | /// The underlying `OSStatus` that describes the error.
13 | let osStatus: OSStatus
| `- note: stored property type '<<error type>>' does not conform to protocol 'Hashable', preventing synthesized conformance of 'KeychainServicesError' to 'Hashable'
14 |
15 |
/host/spi-builder-workspace/Sources/DevKeychain/Errors/KeychainServicesError.swift:11:8: error: type 'KeychainServicesError' does not conform to protocol 'Equatable'
9 |
10 | /// An error from the keychain services API.
11 | struct KeychainServicesError: CustomStringConvertible, Error, Hashable {
| |- error: type 'KeychainServicesError' does not conform to protocol 'Equatable'
| `- note: add stubs for conformance
12 | /// The underlying `OSStatus` that describes the error.
13 | let osStatus: OSStatus
| `- note: stored property type '<<error type>>' does not conform to protocol 'Equatable', preventing synthesized conformance of 'KeychainServicesError' to 'Equatable'
14 |
15 |
Swift.==:1:24: note: candidate would match if 'KeychainServicesError' conformed to 'RawRepresentable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
| `- note: candidate would match if 'KeychainServicesError' conformed to 'RawRepresentable'
Swift.FloatingPoint.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to 'FloatingPoint'
1 | protocol FloatingPoint {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'FloatingPoint'
3 |
Swift.BinaryInteger.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to 'BinaryInteger'
1 | protocol BinaryInteger {
2 | public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'BinaryInteger'
3 |
Swift._Pointer.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to '_Pointer'
1 | protocol _Pointer {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to '_Pointer'
3 |
Swift._Pointer.==:2:31: note: candidate would match if 'KeychainServicesError' conformed to '_Pointer'
1 | protocol _Pointer {
2 | @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer}
| `- note: candidate would match if 'KeychainServicesError' conformed to '_Pointer'
3 |
Swift.Strideable.==:2:31: note: candidate would match if 'KeychainServicesError' conformed to 'Strideable'
1 | protocol Strideable {
2 | @inlinable public static func == (x: Self, y: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'Strideable'
3 |
Swift.StringProtocol.==:2:31: note: candidate would match if 'KeychainServicesError' conformed to 'StringProtocol'
1 | protocol StringProtocol {
2 | @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'StringProtocol'
3 |
Swift.SIMD.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to 'SIMD'
1 | protocol SIMD {
2 | public static func == (a: Self, b: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'SIMD'
3 |
Foundation.__BridgedNSError.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to '__BridgedNSError'
1 | protocol __BridgedNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to '__BridgedNSError'
3 |
Foundation._BridgedStoredNSError.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to '_BridgedStoredNSError'
1 | protocol _BridgedStoredNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to '_BridgedStoredNSError'
3 |
FoundationEssentials.AttributedStringProtocol.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to 'AttributedStringProtocol'
1 | protocol AttributedStringProtocol {
2 | public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'AttributedStringProtocol'
3 |
Swift.Equatable.==:2:13: note: protocol requires function '==' with type '(KeychainServicesError, KeychainServicesError) -> Bool'
1 | protocol Equatable {
2 | static func == (lhs: Self, rhs: Self) -> Bool}
| `- note: protocol requires function '==' with type '(KeychainServicesError, KeychainServicesError) -> Bool'
3 |
/host/spi-builder-workspace/Sources/DevKeychain/Extensions/Dictionary+KeychainItemMapping.swift:10:35: error: cannot find type 'CFString' in scope
8 | import Foundation
9 |
10 | extension Dictionary where Key == CFString, Value == Any {
| `- error: cannot find type 'CFString' in scope
11 | /// Accesses the value for an attribute of a specified type, throwing errors as appropriate.
12 | ///
/host/spi-builder-workspace/Sources/DevKeychain/Extensions/Dictionary+KeychainItemMapping.swift:19:51: error: cannot find type 'CFString' in scope
17 | /// - attribute: The attribute to find in the dictionary.
18 | /// - type: The expected type of the attribute’s value.
19 | func value<V>(forKeychainAttribute attribute: CFString, type: V.Type) throws -> V {
| `- error: cannot find type 'CFString' in scope
20 | guard let rawValue = self[attribute] else {
21 | throw KeychainItemMappingError.attributeNotFound(attribute as String)
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:44:23: error: cannot find type 'CFString' in scope
42 | ///
43 | /// - Parameter attributes: A dictionary of attributes from the keychain services API.
44 | init(attributes: [CFString: Any]) throws {
| `- error: cannot find type 'CFString' in scope
45 | self.init(
46 | service: try attributes.value(forKeychainAttribute: kSecAttrService, type: String.self),
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:98:43: error: cannot find type 'CFString' in scope
96 |
97 |
98 | public var attributesDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
99 | return [
100 | kSecAttrAccount: account,
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:149:43: error: cannot find type 'CFString' in scope
147 |
148 |
149 | public var attributesDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
150 | var dictionary: [CFString: Any] = [
151 | kSecClass: kSecClassGenericPassword,
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:167:39: error: cannot find type 'CFString' in scope
165 |
166 |
167 | public var returnDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
168 | return [
169 | kSecReturnAttributes: true,
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:44:23: error: cannot find type 'CFString' in scope
42 | ///
43 | /// - Parameter attributes: A dictionary of attributes from the keychain services API.
44 | init(attributes: [CFString: Any]) throws {
| `- error: cannot find type 'CFString' in scope
45 | self.init(
46 | server: try attributes.value(forKeychainAttribute: kSecAttrServer, type: String.self),
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:98:43: error: cannot find type 'CFString' in scope
96 |
97 |
98 | public var attributesDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
99 | return [
100 | kSecAttrAccount: account,
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:149:43: error: cannot find type 'CFString' in scope
147 |
148 |
149 | public var attributesDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
150 | var dictionary: [CFString: Any] = [
151 | kSecClass: kSecClassInternetPassword,
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:167:39: error: cannot find type 'CFString' in scope
165 |
166 |
167 | public var returnDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
168 | return [
169 | kSecReturnAttributes: true,
[4/12] Compiling DevKeychain GenericPassword.swift
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:44:23: error: cannot find type 'CFString' in scope
42 | ///
43 | /// - Parameter attributes: A dictionary of attributes from the keychain services API.
44 | init(attributes: [CFString: Any]) throws {
| `- error: cannot find type 'CFString' in scope
45 | self.init(
46 | service: try attributes.value(forKeychainAttribute: kSecAttrService, type: String.self),
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:98:43: error: cannot find type 'CFString' in scope
96 |
97 |
98 | public var attributesDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
99 | return [
100 | kSecAttrAccount: account,
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemAdditionAttributes.swift:16:32: error: cannot find type 'CFString' in scope
14 |
15 | /// A dictionary-representation of the new item to pass to the keychain services API.
16 | var attributesDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
17 |
18 | /// Maps the raw return value from the keychain services API into the instance’s `Item` type.
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:149:43: error: cannot find type 'CFString' in scope
147 |
148 |
149 | public var attributesDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
150 | var dictionary: [CFString: Any] = [
151 | kSecClass: kSecClassGenericPassword,
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:167:39: error: cannot find type 'CFString' in scope
165 |
166 |
167 | public var returnDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
168 | return [
169 | kSecReturnAttributes: true,
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:20:32: error: cannot find type 'CFString' in scope
18 | /// `kSecMatchCaseInsensitive` or `kSecMatchLimit`, or item return result keys like `kSecReturnAttributes` or
19 | /// `kSecReturnData`.
20 | var attributesDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
21 |
22 | /// A dictionary describing how query results should be returned from the keychain services API.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:26:28: error: cannot find type 'CFString' in scope
24 | /// This dictionary is combined with ``attributesDictionary`` when finding items. It is not used to delete items. It
25 | /// should only contain item return result keys like `kSecReturnAttributes` or `kSecReturnData`.
26 | var returnDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
27 |
28 | /// Maps the raw return value from the keychain services API into an array of the instance’s `Item` type.
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:46:65: error: cannot find 'kSecAttrService' in scope
44 | init(attributes: [CFString: Any]) throws {
45 | self.init(
46 | service: try attributes.value(forKeychainAttribute: kSecAttrService, type: String.self),
| `- error: cannot find 'kSecAttrService' in scope
47 | account: try attributes.value(forKeychainAttribute: kSecAttrAccount, type: String.self),
48 | data: try attributes.value(forKeychainAttribute: kSecValueData, type: Data.self)
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:47:65: error: cannot find 'kSecAttrAccount' in scope
45 | self.init(
46 | service: try attributes.value(forKeychainAttribute: kSecAttrService, type: String.self),
47 | account: try attributes.value(forKeychainAttribute: kSecAttrAccount, type: String.self),
| `- error: cannot find 'kSecAttrAccount' in scope
48 | data: try attributes.value(forKeychainAttribute: kSecValueData, type: Data.self)
49 | )
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:48:62: error: cannot find 'kSecValueData' in scope
46 | service: try attributes.value(forKeychainAttribute: kSecAttrService, type: String.self),
47 | account: try attributes.value(forKeychainAttribute: kSecAttrAccount, type: String.self),
48 | data: try attributes.value(forKeychainAttribute: kSecValueData, type: Data.self)
| `- error: cannot find 'kSecValueData' in scope
49 | )
50 | }
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:112:49: error: cannot find type 'CFString' in scope
110 |
111 | public func mapAddedItem(_ rawItem: AnyObject) throws -> GenericPassword {
112 | guard let attributes = rawItem as? [CFString: Any] else {
| `- error: cannot find type 'CFString' in scope
113 | throw KeychainItemMappingError.dataCorrupted
114 | }
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:116:42: error: extra argument 'attributes' in call
114 | }
115 |
116 | return try .init(attributes: attributes)
| `- error: extra argument 'attributes' in call
117 | }
118 | }
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:116:29: error: missing arguments for parameters 'service', 'account', 'data' in call
9 |
10 | /// A generic password keychain item.
11 | public struct GenericPassword: Hashable, Sendable {
| `- note: 'init(service:account:data:)' declared here
12 | /// The item’s service.
13 | public let service: String
:
114 | }
115 |
116 | return try .init(attributes: attributes)
| `- error: missing arguments for parameters 'service', 'account', 'data' in call
117 | }
118 | }
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:150:30: error: cannot find type 'CFString' in scope
148 |
149 | public var attributesDictionary: [CFString: Any] {
150 | var dictionary: [CFString: Any] = [
| `- error: cannot find type 'CFString' in scope
151 | kSecClass: kSecClassGenericPassword,
152 | kSecUseDataProtectionKeychain: true,
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:156:28: error: cannot find 'kSecAttrAccount' in scope
154 |
155 | if let account = account {
156 | dictionary[kSecAttrAccount] = account
| `- error: cannot find 'kSecAttrAccount' in scope
157 | }
158 |
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:160:28: error: cannot find 'kSecAttrService' in scope
158 |
159 | if let service = service {
160 | dictionary[kSecAttrService] = service
| `- error: cannot find 'kSecAttrService' in scope
161 | }
162 |
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:176:36: error: cannot find type 'CFString' in scope
174 |
175 | public func mapMatchingItems(_ rawItems: AnyObject) throws -> [GenericPassword] {
176 | let attributesArray: [[CFString: Any]]
| `- error: cannot find type 'CFString' in scope
177 |
178 | if let singleItem = rawItems as? [CFString: Any] {
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:178:47: error: cannot find type 'CFString' in scope
176 | let attributesArray: [[CFString: Any]]
177 |
178 | if let singleItem = rawItems as? [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
179 | attributesArray = [singleItem]
180 | } else if let array = rawItems as? [[CFString: Any]] {
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/GenericPassword.swift:180:50: error: cannot find type 'CFString' in scope
178 | if let singleItem = rawItems as? [CFString: Any] {
179 | attributesArray = [singleItem]
180 | } else if let array = rawItems as? [[CFString: Any]] {
| `- error: cannot find type 'CFString' in scope
181 | attributesArray = array
182 | } else {
[5/12] Compiling DevKeychain Keychain.swift
/host/spi-builder-workspace/Sources/DevKeychain/Core/Keychain.swift:107:32: error: cannot find type 'CFString' in scope
105 |
106 | /// A dictionary-representation of the options to pass to the keychain services API.
107 | var optionDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
108 | return [
109 | kSecMatchCaseInsensitive: isCaseInsensitive,
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:29: error: cannot find type 'CFDictionary' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'CFDictionary' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:64: error: cannot find type 'CFTypeRef' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'CFTypeRef' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:81: error: cannot find type 'OSStatus' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'OSStatus' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:39: error: cannot find type 'CFDictionary' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'CFDictionary' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:74: error: cannot find type 'CFTypeRef' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'CFTypeRef' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:91: error: cannot find type 'OSStatus' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'OSStatus' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:50:33: error: cannot find type 'CFDictionary' in scope
48 | ///
49 | /// By default, this is `SecItemDelete(_:)`. It is provided for dependency injection purposes.
50 | var deleteItems: @Sendable (CFDictionary) -> OSStatus = SecItemDelete
| `- error: cannot find type 'CFDictionary' in scope
51 |
52 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:50:50: error: cannot find type 'OSStatus' in scope
48 | ///
49 | /// By default, this is `SecItemDelete(_:)`. It is provided for dependency injection purposes.
50 | var deleteItems: @Sendable (CFDictionary) -> OSStatus = SecItemDelete
| `- error: cannot find type 'OSStatus' in scope
51 |
52 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:18:46: error: cannot find type 'CFString' in scope
16 | /// - Parameter attributes: The new keychain item’s attributes.
17 | /// - Returns: The newly added item.
18 | func addItem(withAttributes attributes: [CFString: Any]) throws -> AnyObject?
| `- error: cannot find type 'CFString' in scope
19 |
20 | /// Returns keychain items matching the specified query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemAdditionAttributes.swift:16:32: error: cannot find type 'CFString' in scope
14 |
15 | /// A dictionary-representation of the new item to pass to the keychain services API.
16 | var attributesDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
17 |
18 | /// Maps the raw return value from the keychain services API into the instance’s `Item` type.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:20:32: error: cannot find type 'CFString' in scope
18 | /// `kSecMatchCaseInsensitive` or `kSecMatchLimit`, or item return result keys like `kSecReturnAttributes` or
19 | /// `kSecReturnData`.
20 | var attributesDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
21 |
22 | /// A dictionary describing how query results should be returned from the keychain services API.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:26:28: error: cannot find type 'CFString' in scope
24 | /// This dictionary is combined with ``attributesDictionary`` when finding items. It is not used to delete items. It
25 | /// should only contain item return result keys like `kSecReturnAttributes` or `kSecReturnData`.
26 | var returnDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
27 |
28 | /// Maps the raw return value from the keychain services API into an array of the instance’s `Item` type.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:23:38: error: cannot find type 'CFString' in scope
21 | ///
22 | /// - Parameter query: A dictionary containing attributes of items to match as well as search options.
23 | func items(matchingQuery query: [CFString: Any]) throws -> AnyObject?
| `- error: cannot find type 'CFString' in scope
24 |
25 | /// Deletes keychain items matching the specified query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:28:49: error: cannot find type 'CFString' in scope
26 | ///
27 | /// - Parameter query: A dictionary containing attributes of items to match as well as search options.
28 | func deleteItems(matchingQuery attributes: [CFString: Any]) throws
| `- error: cannot find type 'CFString' in scope
29 | }
30 |
[6/12] Compiling DevKeychain KeychainItemAdditionAttributes.swift
/host/spi-builder-workspace/Sources/DevKeychain/Core/Keychain.swift:107:32: error: cannot find type 'CFString' in scope
105 |
106 | /// A dictionary-representation of the options to pass to the keychain services API.
107 | var optionDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
108 | return [
109 | kSecMatchCaseInsensitive: isCaseInsensitive,
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:29: error: cannot find type 'CFDictionary' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'CFDictionary' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:64: error: cannot find type 'CFTypeRef' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'CFTypeRef' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:81: error: cannot find type 'OSStatus' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'OSStatus' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:39: error: cannot find type 'CFDictionary' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'CFDictionary' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:74: error: cannot find type 'CFTypeRef' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'CFTypeRef' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:91: error: cannot find type 'OSStatus' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'OSStatus' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:50:33: error: cannot find type 'CFDictionary' in scope
48 | ///
49 | /// By default, this is `SecItemDelete(_:)`. It is provided for dependency injection purposes.
50 | var deleteItems: @Sendable (CFDictionary) -> OSStatus = SecItemDelete
| `- error: cannot find type 'CFDictionary' in scope
51 |
52 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:50:50: error: cannot find type 'OSStatus' in scope
48 | ///
49 | /// By default, this is `SecItemDelete(_:)`. It is provided for dependency injection purposes.
50 | var deleteItems: @Sendable (CFDictionary) -> OSStatus = SecItemDelete
| `- error: cannot find type 'OSStatus' in scope
51 |
52 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:18:46: error: cannot find type 'CFString' in scope
16 | /// - Parameter attributes: The new keychain item’s attributes.
17 | /// - Returns: The newly added item.
18 | func addItem(withAttributes attributes: [CFString: Any]) throws -> AnyObject?
| `- error: cannot find type 'CFString' in scope
19 |
20 | /// Returns keychain items matching the specified query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemAdditionAttributes.swift:16:32: error: cannot find type 'CFString' in scope
14 |
15 | /// A dictionary-representation of the new item to pass to the keychain services API.
16 | var attributesDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
17 |
18 | /// Maps the raw return value from the keychain services API into the instance’s `Item` type.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:20:32: error: cannot find type 'CFString' in scope
18 | /// `kSecMatchCaseInsensitive` or `kSecMatchLimit`, or item return result keys like `kSecReturnAttributes` or
19 | /// `kSecReturnData`.
20 | var attributesDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
21 |
22 | /// A dictionary describing how query results should be returned from the keychain services API.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:26:28: error: cannot find type 'CFString' in scope
24 | /// This dictionary is combined with ``attributesDictionary`` when finding items. It is not used to delete items. It
25 | /// should only contain item return result keys like `kSecReturnAttributes` or `kSecReturnData`.
26 | var returnDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
27 |
28 | /// Maps the raw return value from the keychain services API into an array of the instance’s `Item` type.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:23:38: error: cannot find type 'CFString' in scope
21 | ///
22 | /// - Parameter query: A dictionary containing attributes of items to match as well as search options.
23 | func items(matchingQuery query: [CFString: Any]) throws -> AnyObject?
| `- error: cannot find type 'CFString' in scope
24 |
25 | /// Deletes keychain items matching the specified query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:28:49: error: cannot find type 'CFString' in scope
26 | ///
27 | /// - Parameter query: A dictionary containing attributes of items to match as well as search options.
28 | func deleteItems(matchingQuery attributes: [CFString: Any]) throws
| `- error: cannot find type 'CFString' in scope
29 | }
30 |
[7/12] Compiling DevKeychain Dictionary+KeychainItemMapping.swift
/host/spi-builder-workspace/Sources/DevKeychain/Extensions/Dictionary+KeychainItemMapping.swift:10:35: error: cannot find type 'CFString' in scope
8 | import Foundation
9 |
10 | extension Dictionary where Key == CFString, Value == Any {
| `- error: cannot find type 'CFString' in scope
11 | /// Accesses the value for an attribute of a specified type, throwing errors as appropriate.
12 | ///
/host/spi-builder-workspace/Sources/DevKeychain/Extensions/Dictionary+KeychainItemMapping.swift:19:51: error: cannot find type 'CFString' in scope
17 | /// - attribute: The attribute to find in the dictionary.
18 | /// - type: The expected type of the attribute’s value.
19 | func value<V>(forKeychainAttribute attribute: CFString, type: V.Type) throws -> V {
| `- error: cannot find type 'CFString' in scope
20 | guard let rawValue = self[attribute] else {
21 | throw KeychainItemMappingError.attributeNotFound(attribute as String)
[8/12] Compiling DevKeychain KeychainServicesError.swift
/host/spi-builder-workspace/Sources/DevKeychain/Errors/KeychainServicesError.swift:13:19: error: cannot find type 'OSStatus' in scope
11 | struct KeychainServicesError: CustomStringConvertible, Error, Hashable {
12 | /// The underlying `OSStatus` that describes the error.
13 | let osStatus: OSStatus
| `- error: cannot find type 'OSStatus' in scope
14 |
15 |
/host/spi-builder-workspace/Sources/DevKeychain/Errors/KeychainServicesError.swift:11:8: error: type 'KeychainServicesError' does not conform to protocol 'Hashable'
9 |
10 | /// An error from the keychain services API.
11 | struct KeychainServicesError: CustomStringConvertible, Error, Hashable {
| `- error: type 'KeychainServicesError' does not conform to protocol 'Hashable'
12 | /// The underlying `OSStatus` that describes the error.
13 | let osStatus: OSStatus
| `- note: stored property type '<<error type>>' does not conform to protocol 'Hashable', preventing synthesized conformance of 'KeychainServicesError' to 'Hashable'
14 |
15 |
/host/spi-builder-workspace/Sources/DevKeychain/Errors/KeychainServicesError.swift:11:8: error: type 'KeychainServicesError' does not conform to protocol 'Equatable'
9 |
10 | /// An error from the keychain services API.
11 | struct KeychainServicesError: CustomStringConvertible, Error, Hashable {
| |- error: type 'KeychainServicesError' does not conform to protocol 'Equatable'
| `- note: add stubs for conformance
12 | /// The underlying `OSStatus` that describes the error.
13 | let osStatus: OSStatus
| `- note: stored property type '<<error type>>' does not conform to protocol 'Equatable', preventing synthesized conformance of 'KeychainServicesError' to 'Equatable'
14 |
15 |
Swift.==:1:24: note: candidate would match if 'KeychainServicesError' conformed to 'RawRepresentable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
| `- note: candidate would match if 'KeychainServicesError' conformed to 'RawRepresentable'
Swift.FloatingPoint.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to 'FloatingPoint'
1 | protocol FloatingPoint {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'FloatingPoint'
3 |
Swift.BinaryInteger.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to 'BinaryInteger'
1 | protocol BinaryInteger {
2 | public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'BinaryInteger'
3 |
Swift._Pointer.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to '_Pointer'
1 | protocol _Pointer {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to '_Pointer'
3 |
Swift._Pointer.==:2:31: note: candidate would match if 'KeychainServicesError' conformed to '_Pointer'
1 | protocol _Pointer {
2 | @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer}
| `- note: candidate would match if 'KeychainServicesError' conformed to '_Pointer'
3 |
Swift.Strideable.==:2:31: note: candidate would match if 'KeychainServicesError' conformed to 'Strideable'
1 | protocol Strideable {
2 | @inlinable public static func == (x: Self, y: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'Strideable'
3 |
Swift.StringProtocol.==:2:31: note: candidate would match if 'KeychainServicesError' conformed to 'StringProtocol'
1 | protocol StringProtocol {
2 | @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'StringProtocol'
3 |
Swift.SIMD.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to 'SIMD'
1 | protocol SIMD {
2 | public static func == (a: Self, b: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'SIMD'
3 |
Foundation.__BridgedNSError.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to '__BridgedNSError'
1 | protocol __BridgedNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to '__BridgedNSError'
3 |
Foundation._BridgedStoredNSError.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to '_BridgedStoredNSError'
1 | protocol _BridgedStoredNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
| `- note: candidate would match if 'KeychainServicesError' conformed to '_BridgedStoredNSError'
3 |
FoundationEssentials.AttributedStringProtocol.==:2:20: note: candidate would match if 'KeychainServicesError' conformed to 'AttributedStringProtocol'
1 | protocol AttributedStringProtocol {
2 | public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol}
| `- note: candidate would match if 'KeychainServicesError' conformed to 'AttributedStringProtocol'
3 |
Swift.Equatable.==:2:13: note: protocol requires function '==' with type '(KeychainServicesError, KeychainServicesError) -> Bool'
1 | protocol Equatable {
2 | static func == (lhs: Self, rhs: Self) -> Bool}
| `- note: protocol requires function '==' with type '(KeychainServicesError, KeychainServicesError) -> Bool'
3 |
/host/spi-builder-workspace/Sources/DevKeychain/Errors/KeychainServicesError.swift:17:16: error: cannot find 'SecCopyErrorMessageString' in scope
15 |
16 | var description: String {
17 | return SecCopyErrorMessageString(osStatus, nil)
| `- error: cannot find 'SecCopyErrorMessageString' in scope
18 | .map { $0 as String } ?? "Unknown Keychain error: \(osStatus)"
19 | }
/host/spi-builder-workspace/Sources/DevKeychain/Errors/KeychainServicesError.swift:17:52: error: 'nil' requires a contextual type
15 |
16 | var description: String {
17 | return SecCopyErrorMessageString(osStatus, nil)
| `- error: 'nil' requires a contextual type
18 | .map { $0 as String } ?? "Unknown Keychain error: \(osStatus)"
19 | }
[9/12] Compiling DevKeychain KeychainItemMappingError.swift
[10/12] Compiling DevKeychain KeychainServices.swift
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:18:46: error: cannot find type 'CFString' in scope
16 | /// - Parameter attributes: The new keychain item’s attributes.
17 | /// - Returns: The newly added item.
18 | func addItem(withAttributes attributes: [CFString: Any]) throws -> AnyObject?
| `- error: cannot find type 'CFString' in scope
19 |
20 | /// Returns keychain items matching the specified query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:23:38: error: cannot find type 'CFString' in scope
21 | ///
22 | /// - Parameter query: A dictionary containing attributes of items to match as well as search options.
23 | func items(matchingQuery query: [CFString: Any]) throws -> AnyObject?
| `- error: cannot find type 'CFString' in scope
24 |
25 | /// Deletes keychain items matching the specified query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:28:49: error: cannot find type 'CFString' in scope
26 | ///
27 | /// - Parameter query: A dictionary containing attributes of items to match as well as search options.
28 | func deleteItems(matchingQuery attributes: [CFString: Any]) throws
| `- error: cannot find type 'CFString' in scope
29 | }
30 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:29: error: cannot find type 'CFDictionary' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'CFDictionary' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:64: error: cannot find type 'CFTypeRef' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'CFTypeRef' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:40:81: error: cannot find type 'OSStatus' in scope
38 | ///
39 | /// By default, this is `SecItemAdd(_:_:)`. It is provided for dependency injection purposes.
40 | var addItem: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemAdd
| `- error: cannot find type 'OSStatus' in scope
41 |
42 | /// A closure to use to copy keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:39: error: cannot find type 'CFDictionary' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'CFDictionary' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:74: error: cannot find type 'CFTypeRef' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'CFTypeRef' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:45:91: error: cannot find type 'OSStatus' in scope
43 | ///
44 | /// By default, this is `SecItemCopyMatching(_:_:)`. It is provided for dependency injection purposes.
45 | var copyMatchingItems: @Sendable (CFDictionary, UnsafeMutablePointer<CFTypeRef?>?) -> OSStatus = SecItemCopyMatching
| `- error: cannot find type 'OSStatus' in scope
46 |
47 | /// A closure to use to delete keychain items matching a query.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:50:33: error: cannot find type 'CFDictionary' in scope
48 | ///
49 | /// By default, this is `SecItemDelete(_:)`. It is provided for dependency injection purposes.
50 | var deleteItems: @Sendable (CFDictionary) -> OSStatus = SecItemDelete
| `- error: cannot find type 'CFDictionary' in scope
51 |
52 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:50:50: error: cannot find type 'OSStatus' in scope
48 | ///
49 | /// By default, this is `SecItemDelete(_:)`. It is provided for dependency injection purposes.
50 | var deleteItems: @Sendable (CFDictionary) -> OSStatus = SecItemDelete
| `- error: cannot find type 'OSStatus' in scope
51 |
52 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:53:46: error: cannot find type 'CFString' in scope
51 |
52 |
53 | func addItem(withAttributes attributes: [CFString: Any]) throws -> AnyObject? {
| `- error: cannot find type 'CFString' in scope
54 | var result: AnyObject?
55 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:65:38: error: cannot find type 'CFString' in scope
63 |
64 |
65 | func items(matchingQuery query: [CFString: Any]) throws -> AnyObject? {
| `- error: cannot find type 'CFString' in scope
66 | var result: AnyObject?
67 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:80:44: error: cannot find type 'CFString' in scope
78 |
79 |
80 | func deleteItems(matchingQuery query: [CFString: Any]) throws {
| `- error: cannot find type 'CFString' in scope
81 | let osStatus = deleteItems(query as CFDictionary)
82 | if osStatus != errSecSuccess && osStatus != errSecItemNotFound {
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:56:46: error: cannot find type 'CFDictionary' in scope
54 | var result: AnyObject?
55 |
56 | let osStatus = addItem(attributes as CFDictionary, &result)
| `- error: cannot find type 'CFDictionary' in scope
57 | guard osStatus == errSecSuccess else {
58 | throw KeychainServicesError(osStatus: osStatus)
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:57:27: error: cannot find 'errSecSuccess' in scope
55 |
56 | let osStatus = addItem(attributes as CFDictionary, &result)
57 | guard osStatus == errSecSuccess else {
| `- error: cannot find 'errSecSuccess' in scope
58 | throw KeychainServicesError(osStatus: osStatus)
59 | }
/host/spi-builder-workspace/Sources/DevKeychain/Errors/KeychainServicesError.swift:13:19: error: cannot find type 'OSStatus' in scope
11 | struct KeychainServicesError: CustomStringConvertible, Error, Hashable {
12 | /// The underlying `OSStatus` that describes the error.
13 | let osStatus: OSStatus
| `- error: cannot find type 'OSStatus' in scope
14 |
15 |
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:68:51: error: cannot find type 'CFDictionary' in scope
66 | var result: AnyObject?
67 |
68 | let osStatus = copyMatchingItems(query as CFDictionary, &result)
| `- error: cannot find type 'CFDictionary' in scope
69 | switch osStatus {
70 | case errSecSuccess:
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:70:14: error: cannot find 'errSecSuccess' in scope
68 | let osStatus = copyMatchingItems(query as CFDictionary, &result)
69 | switch osStatus {
70 | case errSecSuccess:
| `- error: cannot find 'errSecSuccess' in scope
71 | return result
72 | case errSecItemNotFound:
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:72:14: error: cannot find 'errSecItemNotFound' in scope
70 | case errSecSuccess:
71 | return result
72 | case errSecItemNotFound:
| `- error: cannot find 'errSecItemNotFound' in scope
73 | return [] as CFArray
74 | default:
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:73:26: error: cannot find type 'CFArray' in scope
71 | return result
72 | case errSecItemNotFound:
73 | return [] as CFArray
| `- error: cannot find type 'CFArray' in scope
74 | default:
75 | throw KeychainServicesError(osStatus: osStatus)
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:81:45: error: cannot find type 'CFDictionary' in scope
79 |
80 | func deleteItems(matchingQuery query: [CFString: Any]) throws {
81 | let osStatus = deleteItems(query as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
82 | if osStatus != errSecSuccess && osStatus != errSecItemNotFound {
83 | throw KeychainServicesError(osStatus: osStatus)
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:82:24: error: cannot find 'errSecSuccess' in scope
80 | func deleteItems(matchingQuery query: [CFString: Any]) throws {
81 | let osStatus = deleteItems(query as CFDictionary)
82 | if osStatus != errSecSuccess && osStatus != errSecItemNotFound {
| `- error: cannot find 'errSecSuccess' in scope
83 | throw KeychainServicesError(osStatus: osStatus)
84 | }
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainServices.swift:82:53: error: cannot find 'errSecItemNotFound' in scope
80 | func deleteItems(matchingQuery query: [CFString: Any]) throws {
81 | let osStatus = deleteItems(query as CFDictionary)
82 | if osStatus != errSecSuccess && osStatus != errSecItemNotFound {
| `- error: cannot find 'errSecItemNotFound' in scope
83 | throw KeychainServicesError(osStatus: osStatus)
84 | }
[11/12] Compiling DevKeychain KeychainItemQuery.swift
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:20:32: error: cannot find type 'CFString' in scope
18 | /// `kSecMatchCaseInsensitive` or `kSecMatchLimit`, or item return result keys like `kSecReturnAttributes` or
19 | /// `kSecReturnData`.
20 | var attributesDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
21 |
22 | /// A dictionary describing how query results should be returned from the keychain services API.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:26:28: error: cannot find type 'CFString' in scope
24 | /// This dictionary is combined with ``attributesDictionary`` when finding items. It is not used to delete items. It
25 | /// should only contain item return result keys like `kSecReturnAttributes` or `kSecReturnData`.
26 | var returnDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
27 |
28 | /// Maps the raw return value from the keychain services API into an array of the instance’s `Item` type.
[12/12] Compiling DevKeychain InternetPassword.swift
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:44:23: error: cannot find type 'CFString' in scope
42 | ///
43 | /// - Parameter attributes: A dictionary of attributes from the keychain services API.
44 | init(attributes: [CFString: Any]) throws {
| `- error: cannot find type 'CFString' in scope
45 | self.init(
46 | server: try attributes.value(forKeychainAttribute: kSecAttrServer, type: String.self),
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:98:43: error: cannot find type 'CFString' in scope
96 |
97 |
98 | public var attributesDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
99 | return [
100 | kSecAttrAccount: account,
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemAdditionAttributes.swift:16:32: error: cannot find type 'CFString' in scope
14 |
15 | /// A dictionary-representation of the new item to pass to the keychain services API.
16 | var attributesDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
17 |
18 | /// Maps the raw return value from the keychain services API into the instance’s `Item` type.
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:149:43: error: cannot find type 'CFString' in scope
147 |
148 |
149 | public var attributesDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
150 | var dictionary: [CFString: Any] = [
151 | kSecClass: kSecClassInternetPassword,
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:167:39: error: cannot find type 'CFString' in scope
165 |
166 |
167 | public var returnDictionary: [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
168 | return [
169 | kSecReturnAttributes: true,
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:20:32: error: cannot find type 'CFString' in scope
18 | /// `kSecMatchCaseInsensitive` or `kSecMatchLimit`, or item return result keys like `kSecReturnAttributes` or
19 | /// `kSecReturnData`.
20 | var attributesDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
21 |
22 | /// A dictionary describing how query results should be returned from the keychain services API.
/host/spi-builder-workspace/Sources/DevKeychain/Core/KeychainItemQuery.swift:26:28: error: cannot find type 'CFString' in scope
24 | /// This dictionary is combined with ``attributesDictionary`` when finding items. It is not used to delete items. It
25 | /// should only contain item return result keys like `kSecReturnAttributes` or `kSecReturnData`.
26 | var returnDictionary: [CFString: Any] { get }
| `- error: cannot find type 'CFString' in scope
27 |
28 | /// Maps the raw return value from the keychain services API into an array of the instance’s `Item` type.
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:46:64: error: cannot find 'kSecAttrServer' in scope
44 | init(attributes: [CFString: Any]) throws {
45 | self.init(
46 | server: try attributes.value(forKeychainAttribute: kSecAttrServer, type: String.self),
| `- error: cannot find 'kSecAttrServer' in scope
47 | account: try attributes.value(forKeychainAttribute: kSecAttrAccount, type: String.self),
48 | data: try attributes.value(forKeychainAttribute: kSecValueData, type: Data.self)
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:47:65: error: cannot find 'kSecAttrAccount' in scope
45 | self.init(
46 | server: try attributes.value(forKeychainAttribute: kSecAttrServer, type: String.self),
47 | account: try attributes.value(forKeychainAttribute: kSecAttrAccount, type: String.self),
| `- error: cannot find 'kSecAttrAccount' in scope
48 | data: try attributes.value(forKeychainAttribute: kSecValueData, type: Data.self)
49 | )
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:48:62: error: cannot find 'kSecValueData' in scope
46 | server: try attributes.value(forKeychainAttribute: kSecAttrServer, type: String.self),
47 | account: try attributes.value(forKeychainAttribute: kSecAttrAccount, type: String.self),
48 | data: try attributes.value(forKeychainAttribute: kSecValueData, type: Data.self)
| `- error: cannot find 'kSecValueData' in scope
49 | )
50 | }
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:112:49: error: cannot find type 'CFString' in scope
110 |
111 | public func mapAddedItem(_ rawItem: AnyObject) throws -> InternetPassword {
112 | guard let attributes = rawItem as? [CFString: Any] else {
| `- error: cannot find type 'CFString' in scope
113 | throw KeychainItemMappingError.dataCorrupted
114 | }
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:116:42: error: extra argument 'attributes' in call
114 | }
115 |
116 | return try .init(attributes: attributes)
| `- error: extra argument 'attributes' in call
117 | }
118 | }
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:116:29: error: missing arguments for parameters 'server', 'account', 'data' in call
9 |
10 | /// An internet password keychain item.
11 | public struct InternetPassword: Hashable, Sendable {
| `- note: 'init(server:account:data:)' declared here
12 | /// The item’s server.
13 | public let server: String
:
114 | }
115 |
116 | return try .init(attributes: attributes)
| `- error: missing arguments for parameters 'server', 'account', 'data' in call
117 | }
118 | }
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:150:30: error: cannot find type 'CFString' in scope
148 |
149 | public var attributesDictionary: [CFString: Any] {
150 | var dictionary: [CFString: Any] = [
| `- error: cannot find type 'CFString' in scope
151 | kSecClass: kSecClassInternetPassword,
152 | kSecUseDataProtectionKeychain: true,
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:156:28: error: cannot find 'kSecAttrAccount' in scope
154 |
155 | if let account = account {
156 | dictionary[kSecAttrAccount] = account
| `- error: cannot find 'kSecAttrAccount' in scope
157 | }
158 |
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:160:28: error: cannot find 'kSecAttrServer' in scope
158 |
159 | if let server = server {
160 | dictionary[kSecAttrServer] = server
| `- error: cannot find 'kSecAttrServer' in scope
161 | }
162 |
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:176:36: error: cannot find type 'CFString' in scope
174 |
175 | public func mapMatchingItems(_ rawItems: AnyObject) throws -> [InternetPassword] {
176 | let attributesArray: [[CFString: Any]]
| `- error: cannot find type 'CFString' in scope
177 |
178 | if let singleItem = rawItems as? [CFString: Any] {
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:178:47: error: cannot find type 'CFString' in scope
176 | let attributesArray: [[CFString: Any]]
177 |
178 | if let singleItem = rawItems as? [CFString: Any] {
| `- error: cannot find type 'CFString' in scope
179 | attributesArray = [singleItem]
180 | } else if let array = rawItems as? [[CFString: Any]] {
/host/spi-builder-workspace/Sources/DevKeychain/Keychain Items/InternetPassword.swift:180:50: error: cannot find type 'CFString' in scope
178 | if let singleItem = rawItems as? [CFString: Any] {
179 | attributesArray = [singleItem]
180 | } else if let array = rawItems as? [[CFString: Any]] {
| `- error: cannot find type 'CFString' in scope
181 | attributesArray = array
182 | } else {
BUILD FAILURE 6.2 linux