The Swift Package Index logo.Swift Package Index

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

Build Information

Failed to build KeychainStore, reference 3.2.0 (9113d6), with Swift 6.0 for Linux on 1 Nov 2024 21:50:56 UTC.

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/JuanjoArreola/KeychainStore.git
Reference: 3.2.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/JuanjoArreola/KeychainStore
 * tag               3.2.0      -> FETCH_HEAD
HEAD is now at 9113d6c public final KeychainStore
Cloned https://github.com/JuanjoArreola/KeychainStore.git
Revision (git rev-parse @):
9113d6c38383eee13fefea3271793cc5790bd3ec
SUCCESS checkout https://github.com/JuanjoArreola/KeychainStore.git at 3.2.0
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/JuanjoArreola/KeychainStore.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/8] Emitting module KeychainStore
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:11:24: error: cannot find 'kSecClass' in scope
  9 | import Foundation
 10 |
 11 | private let secClass = kSecClass as String
    |                        `- error: cannot find 'kSecClass' in scope
 12 | private let secAttrGeneric = kSecAttrGeneric as String
 13 | private let secAttrService = kSecAttrService as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:12:30: error: cannot find 'kSecAttrGeneric' in scope
 10 |
 11 | private let secClass = kSecClass as String
 12 | private let secAttrGeneric = kSecAttrGeneric as String
    |                              `- error: cannot find 'kSecAttrGeneric' in scope
 13 | private let secAttrService = kSecAttrService as String
 14 | private let secAttrAccessGroup = kSecAttrAccessGroup as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:13:30: error: cannot find 'kSecAttrService' in scope
 11 | private let secClass = kSecClass as String
 12 | private let secAttrGeneric = kSecAttrGeneric as String
 13 | private let secAttrService = kSecAttrService as String
    |                              `- error: cannot find 'kSecAttrService' in scope
 14 | private let secAttrAccessGroup = kSecAttrAccessGroup as String
 15 | private let secAttrAcount = kSecAttrAccount as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:14:34: error: cannot find 'kSecAttrAccessGroup' in scope
 12 | private let secAttrGeneric = kSecAttrGeneric as String
 13 | private let secAttrService = kSecAttrService as String
 14 | private let secAttrAccessGroup = kSecAttrAccessGroup as String
    |                                  `- error: cannot find 'kSecAttrAccessGroup' in scope
 15 | private let secAttrAcount = kSecAttrAccount as String
 16 | private let secMatchLimit = kSecMatchLimit as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:15:29: error: cannot find 'kSecAttrAccount' in scope
 13 | private let secAttrService = kSecAttrService as String
 14 | private let secAttrAccessGroup = kSecAttrAccessGroup as String
 15 | private let secAttrAcount = kSecAttrAccount as String
    |                             `- error: cannot find 'kSecAttrAccount' in scope
 16 | private let secMatchLimit = kSecMatchLimit as String
 17 | private let secReturnData = kSecReturnData as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:16:29: error: cannot find 'kSecMatchLimit' in scope
 14 | private let secAttrAccessGroup = kSecAttrAccessGroup as String
 15 | private let secAttrAcount = kSecAttrAccount as String
 16 | private let secMatchLimit = kSecMatchLimit as String
    |                             `- error: cannot find 'kSecMatchLimit' in scope
 17 | private let secReturnData = kSecReturnData as String
 18 | private let secValueData = kSecValueData as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:17:29: error: cannot find 'kSecReturnData' in scope
 15 | private let secAttrAcount = kSecAttrAccount as String
 16 | private let secMatchLimit = kSecMatchLimit as String
 17 | private let secReturnData = kSecReturnData as String
    |                             `- error: cannot find 'kSecReturnData' in scope
 18 | private let secValueData = kSecValueData as String
 19 | private let secAttrAccessible = kSecAttrAccessible as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:18:28: error: cannot find 'kSecValueData' in scope
 16 | private let secMatchLimit = kSecMatchLimit as String
 17 | private let secReturnData = kSecReturnData as String
 18 | private let secValueData = kSecValueData as String
    |                            `- error: cannot find 'kSecValueData' in scope
 19 | private let secAttrAccessible = kSecAttrAccessible as String
 20 | private let secReturnAttributes = kSecReturnAttributes as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:19:33: error: cannot find 'kSecAttrAccessible' in scope
 17 | private let secReturnData = kSecReturnData as String
 18 | private let secValueData = kSecValueData as String
 19 | private let secAttrAccessible = kSecAttrAccessible as String
    |                                 `- error: cannot find 'kSecAttrAccessible' in scope
 20 | private let secReturnAttributes = kSecReturnAttributes as String
 21 |
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:20:35: error: cannot find 'kSecReturnAttributes' in scope
 18 | private let secValueData = kSecValueData as String
 19 | private let secAttrAccessible = kSecAttrAccessible as String
 20 | private let secReturnAttributes = kSecReturnAttributes as String
    |                                   `- error: cannot find 'kSecReturnAttributes' in scope
 21 |
 22 |
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:172:24: error: cannot find type 'OSStatus' in scope
170 | }
171 |
172 | func error(from staus: OSStatus) -> KeychainStoreError {
    |                        `- error: cannot find type 'OSStatus' in scope
173 |     switch staus {
174 |     case errSecItemNotFound:
[4/8] Compiling KeychainStore KeychainStoreError.swift
[5/8] Compiling KeychainStore KeychainStore.swift
[6/8] Compiling KeychainStore KeychainStringStore.swift
[7/8] Compiling KeychainStore KeychainAccessibility.swift
/host/spi-builder-workspace/Sources/KeychainStore/KeychainAccessibility.swift:21:20: error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
19 |         switch self {
20 |         case .afterFirstUnlock:
21 |             return kSecAttrAccessibleAfterFirstUnlock as String
   |                    `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
22 |         case .afterFirstUnlockThisDeviceOnly:
23 |             return kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly as String
/host/spi-builder-workspace/Sources/KeychainStore/KeychainAccessibility.swift:23:20: error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
21 |             return kSecAttrAccessibleAfterFirstUnlock as String
22 |         case .afterFirstUnlockThisDeviceOnly:
23 |             return kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly as String
   |                    `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
24 |         case .always:
25 |             return kSecAttrAccessibleAlways as String
/host/spi-builder-workspace/Sources/KeychainStore/KeychainAccessibility.swift:25:20: error: cannot find 'kSecAttrAccessibleAlways' in scope
23 |             return kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly as String
24 |         case .always:
25 |             return kSecAttrAccessibleAlways as String
   |                    `- error: cannot find 'kSecAttrAccessibleAlways' in scope
26 |         case .whenPasscodeSetThisDeviceOnly:
27 |             return kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly as String
/host/spi-builder-workspace/Sources/KeychainStore/KeychainAccessibility.swift:27:20: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
25 |             return kSecAttrAccessibleAlways as String
26 |         case .whenPasscodeSetThisDeviceOnly:
27 |             return kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly as String
   |                    `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
28 |         case .alwaysThisDeviceOnly:
29 |             return kSecAttrAccessibleAlwaysThisDeviceOnly as String
/host/spi-builder-workspace/Sources/KeychainStore/KeychainAccessibility.swift:29:20: error: cannot find 'kSecAttrAccessibleAlwaysThisDeviceOnly' in scope
27 |             return kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly as String
28 |         case .alwaysThisDeviceOnly:
29 |             return kSecAttrAccessibleAlwaysThisDeviceOnly as String
   |                    `- error: cannot find 'kSecAttrAccessibleAlwaysThisDeviceOnly' in scope
30 |         case .whenUnlocked:
31 |             return kSecAttrAccessibleWhenUnlocked as String
/host/spi-builder-workspace/Sources/KeychainStore/KeychainAccessibility.swift:31:20: error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
29 |             return kSecAttrAccessibleAlwaysThisDeviceOnly as String
30 |         case .whenUnlocked:
31 |             return kSecAttrAccessibleWhenUnlocked as String
   |                    `- error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
32 |         case .whenUnlockedThisDeviceOnly:
33 |             return kSecAttrAccessibleWhenUnlockedThisDeviceOnly as String
/host/spi-builder-workspace/Sources/KeychainStore/KeychainAccessibility.swift:33:20: error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
31 |             return kSecAttrAccessibleWhenUnlocked as String
32 |         case .whenUnlockedThisDeviceOnly:
33 |             return kSecAttrAccessibleWhenUnlockedThisDeviceOnly as String
   |                    `- error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
34 |         }
35 |     }
[8/8] Compiling KeychainStore AbstractKeychainStore.swift
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:11:24: error: cannot find 'kSecClass' in scope
  9 | import Foundation
 10 |
 11 | private let secClass = kSecClass as String
    |                        `- error: cannot find 'kSecClass' in scope
 12 | private let secAttrGeneric = kSecAttrGeneric as String
 13 | private let secAttrService = kSecAttrService as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:12:30: error: cannot find 'kSecAttrGeneric' in scope
 10 |
 11 | private let secClass = kSecClass as String
 12 | private let secAttrGeneric = kSecAttrGeneric as String
    |                              `- error: cannot find 'kSecAttrGeneric' in scope
 13 | private let secAttrService = kSecAttrService as String
 14 | private let secAttrAccessGroup = kSecAttrAccessGroup as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:13:30: error: cannot find 'kSecAttrService' in scope
 11 | private let secClass = kSecClass as String
 12 | private let secAttrGeneric = kSecAttrGeneric as String
 13 | private let secAttrService = kSecAttrService as String
    |                              `- error: cannot find 'kSecAttrService' in scope
 14 | private let secAttrAccessGroup = kSecAttrAccessGroup as String
 15 | private let secAttrAcount = kSecAttrAccount as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:14:34: error: cannot find 'kSecAttrAccessGroup' in scope
 12 | private let secAttrGeneric = kSecAttrGeneric as String
 13 | private let secAttrService = kSecAttrService as String
 14 | private let secAttrAccessGroup = kSecAttrAccessGroup as String
    |                                  `- error: cannot find 'kSecAttrAccessGroup' in scope
 15 | private let secAttrAcount = kSecAttrAccount as String
 16 | private let secMatchLimit = kSecMatchLimit as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:15:29: error: cannot find 'kSecAttrAccount' in scope
 13 | private let secAttrService = kSecAttrService as String
 14 | private let secAttrAccessGroup = kSecAttrAccessGroup as String
 15 | private let secAttrAcount = kSecAttrAccount as String
    |                             `- error: cannot find 'kSecAttrAccount' in scope
 16 | private let secMatchLimit = kSecMatchLimit as String
 17 | private let secReturnData = kSecReturnData as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:16:29: error: cannot find 'kSecMatchLimit' in scope
 14 | private let secAttrAccessGroup = kSecAttrAccessGroup as String
 15 | private let secAttrAcount = kSecAttrAccount as String
 16 | private let secMatchLimit = kSecMatchLimit as String
    |                             `- error: cannot find 'kSecMatchLimit' in scope
 17 | private let secReturnData = kSecReturnData as String
 18 | private let secValueData = kSecValueData as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:17:29: error: cannot find 'kSecReturnData' in scope
 15 | private let secAttrAcount = kSecAttrAccount as String
 16 | private let secMatchLimit = kSecMatchLimit as String
 17 | private let secReturnData = kSecReturnData as String
    |                             `- error: cannot find 'kSecReturnData' in scope
 18 | private let secValueData = kSecValueData as String
 19 | private let secAttrAccessible = kSecAttrAccessible as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:18:28: error: cannot find 'kSecValueData' in scope
 16 | private let secMatchLimit = kSecMatchLimit as String
 17 | private let secReturnData = kSecReturnData as String
 18 | private let secValueData = kSecValueData as String
    |                            `- error: cannot find 'kSecValueData' in scope
 19 | private let secAttrAccessible = kSecAttrAccessible as String
 20 | private let secReturnAttributes = kSecReturnAttributes as String
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:19:33: error: cannot find 'kSecAttrAccessible' in scope
 17 | private let secReturnData = kSecReturnData as String
 18 | private let secValueData = kSecValueData as String
 19 | private let secAttrAccessible = kSecAttrAccessible as String
    |                                 `- error: cannot find 'kSecAttrAccessible' in scope
 20 | private let secReturnAttributes = kSecReturnAttributes as String
 21 |
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:20:35: error: cannot find 'kSecReturnAttributes' in scope
 18 | private let secValueData = kSecValueData as String
 19 | private let secAttrAccessible = kSecAttrAccessible as String
 20 | private let secReturnAttributes = kSecReturnAttributes as String
    |                                   `- error: cannot find 'kSecReturnAttributes' in scope
 21 |
 22 |
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:172:24: error: cannot find type 'OSStatus' in scope
170 | }
171 |
172 | func error(from staus: OSStatus) -> KeychainStoreError {
    |                        `- error: cannot find type 'OSStatus' in scope
173 |     switch staus {
174 |     case errSecItemNotFound:
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:39:23: error: cannot find 'kSecClassGenericPassword' in scope
 37 |     private func keychainQuery(forKey key: String) -> [String: Any] {
 38 |         var query: [String: Any] = [
 39 |             secClass: kSecClassGenericPassword,
    |                       `- error: cannot find 'kSecClassGenericPassword' in scope
 40 |             secAttrAcount: account,
 41 |             secAttrService: key
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:56:32: error: cannot find 'kSecMatchLimitOne' in scope
 54 |     open func data(forKey key: String) throws -> Data? {
 55 |         var query = keychainQuery(forKey: key)
 56 |         query[secMatchLimit] = kSecMatchLimitOne
    |                                `- error: cannot find 'kSecMatchLimitOne' in scope
 57 |         query[secReturnData] = kCFBooleanTrue
 58 |
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:57:32: error: cannot find 'kCFBooleanTrue' in scope
 55 |         var query = keychainQuery(forKey: key)
 56 |         query[secMatchLimit] = kSecMatchLimitOne
 57 |         query[secReturnData] = kCFBooleanTrue
    |                                `- error: cannot find 'kCFBooleanTrue' in scope
 58 |
 59 |         var result: AnyObject?
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:61:13: error: cannot find 'SecItemCopyMatching' in scope
 59 |         var result: AnyObject?
 60 |         let status = withUnsafeMutablePointer(to: &result) {
 61 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
    |             `- error: cannot find 'SecItemCopyMatching' in scope
 62 |         }
 63 |         if status == errSecSuccess {
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:61:42: error: cannot find type 'CFDictionary' in scope
 59 |         var result: AnyObject?
 60 |         let status = withUnsafeMutablePointer(to: &result) {
 61 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
    |                                          `- error: cannot find type 'CFDictionary' in scope
 62 |         }
 63 |         if status == errSecSuccess {
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:63:22: error: cannot find 'errSecSuccess' in scope
 61 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
 62 |         }
 63 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
 64 |             return result as? Data
 65 |         } else if status == errSecItemNotFound {
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:65:29: error: cannot find 'errSecItemNotFound' in scope
 63 |         if status == errSecSuccess {
 64 |             return result as? Data
 65 |         } else if status == errSecItemNotFound {
    |                             `- error: cannot find 'errSecItemNotFound' in scope
 66 |             return nil
 67 |         }
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:73:32: error: cannot find 'kSecMatchLimitOne' in scope
 71 |     public func hasKey(_ key: String) throws -> Bool {
 72 |         var query = keychainQuery(forKey: key)
 73 |         query[secMatchLimit] = kSecMatchLimitOne
    |                                `- error: cannot find 'kSecMatchLimitOne' in scope
 74 |         query[secReturnData] = kCFBooleanFalse
 75 |
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:74:32: error: cannot find 'kCFBooleanFalse' in scope
 72 |         var query = keychainQuery(forKey: key)
 73 |         query[secMatchLimit] = kSecMatchLimitOne
 74 |         query[secReturnData] = kCFBooleanFalse
    |                                `- error: cannot find 'kCFBooleanFalse' in scope
 75 |
 76 |         var result: AnyObject?
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:78:13: error: cannot find 'SecItemCopyMatching' in scope
 76 |         var result: AnyObject?
 77 |         let status = withUnsafeMutablePointer(to: &result) {
 78 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
    |             `- error: cannot find 'SecItemCopyMatching' in scope
 79 |         }
 80 |         if status == errSecSuccess {
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:78:42: error: cannot find type 'CFDictionary' in scope
 76 |         var result: AnyObject?
 77 |         let status = withUnsafeMutablePointer(to: &result) {
 78 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
    |                                          `- error: cannot find type 'CFDictionary' in scope
 79 |         }
 80 |         if status == errSecSuccess {
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:80:22: error: cannot find 'errSecSuccess' in scope
 78 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
 79 |         }
 80 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
 81 |             return true
 82 |         } else if status == errSecItemNotFound {
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:82:29: error: cannot find 'errSecItemNotFound' in scope
 80 |         if status == errSecSuccess {
 81 |             return true
 82 |         } else if status == errSecItemNotFound {
    |                             `- error: cannot find 'errSecItemNotFound' in scope
 83 |             return false
 84 |         }
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:99:22: error: cannot find 'SecItemAdd' in scope
 97 |         query[secAttrAccessible] = accessibility.rawValue
 98 |
 99 |         let status = SecItemAdd(query as CFDictionary, nil)
    |                      `- error: cannot find 'SecItemAdd' in scope
100 |         if status == errSecDuplicateItem {
101 |             try self.update(data: data, forKey: key)
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:99:42: error: cannot find type 'CFDictionary' in scope
 97 |         query[secAttrAccessible] = accessibility.rawValue
 98 |
 99 |         let status = SecItemAdd(query as CFDictionary, nil)
    |                                          `- error: cannot find type 'CFDictionary' in scope
100 |         if status == errSecDuplicateItem {
101 |             try self.update(data: data, forKey: key)
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:99:56: error: 'nil' requires a contextual type
 97 |         query[secAttrAccessible] = accessibility.rawValue
 98 |
 99 |         let status = SecItemAdd(query as CFDictionary, nil)
    |                                                        `- error: 'nil' requires a contextual type
100 |         if status == errSecDuplicateItem {
101 |             try self.update(data: data, forKey: key)
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:100:22: error: cannot find 'errSecDuplicateItem' in scope
 98 |
 99 |         let status = SecItemAdd(query as CFDictionary, nil)
100 |         if status == errSecDuplicateItem {
    |                      `- error: cannot find 'errSecDuplicateItem' in scope
101 |             try self.update(data: data, forKey: key)
102 |         } else if status != errSecSuccess {
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:102:29: error: cannot find 'errSecSuccess' in scope
100 |         if status == errSecDuplicateItem {
101 |             try self.update(data: data, forKey: key)
102 |         } else if status != errSecSuccess {
    |                             `- error: cannot find 'errSecSuccess' in scope
103 |             throw error(from: status)
104 |         }
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:116:22: error: cannot find 'SecItemUpdate' in scope
114 |         let updateQuery = [secValueData: data]
115 |
116 |         let status = SecItemUpdate(query as CFDictionary, updateQuery as CFDictionary)
    |                      `- error: cannot find 'SecItemUpdate' in scope
117 |         if status != errSecSuccess {
118 |             throw error(from: status)
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:116:45: error: cannot find type 'CFDictionary' in scope
114 |         let updateQuery = [secValueData: data]
115 |
116 |         let status = SecItemUpdate(query as CFDictionary, updateQuery as CFDictionary)
    |                                             `- error: cannot find type 'CFDictionary' in scope
117 |         if status != errSecSuccess {
118 |             throw error(from: status)
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:116:74: error: cannot find type 'CFDictionary' in scope
114 |         let updateQuery = [secValueData: data]
115 |
116 |         let status = SecItemUpdate(query as CFDictionary, updateQuery as CFDictionary)
    |                                                                          `- error: cannot find type 'CFDictionary' in scope
117 |         if status != errSecSuccess {
118 |             throw error(from: status)
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:117:22: error: cannot find 'errSecSuccess' in scope
115 |
116 |         let status = SecItemUpdate(query as CFDictionary, updateQuery as CFDictionary)
117 |         if status != errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
118 |             throw error(from: status)
119 |         }
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:126:23: error: cannot find 'kSecClassGenericPassword' in scope
124 |     open func allKeys() throws -> [String] {
125 |         var query: [String: Any] = [
126 |             secClass: kSecClassGenericPassword,
    |                       `- error: cannot find 'kSecClassGenericPassword' in scope
127 |             secAttrAcount: account,
128 |             secReturnAttributes: kCFBooleanTrue as Any,
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:128:34: error: cannot find 'kCFBooleanTrue' in scope
126 |             secClass: kSecClassGenericPassword,
127 |             secAttrAcount: account,
128 |             secReturnAttributes: kCFBooleanTrue as Any,
    |                                  `- error: cannot find 'kCFBooleanTrue' in scope
129 |             secMatchLimit: kSecMatchLimitAll]
130 |         if let accessGroup = accessGroup {
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:129:28: error: cannot find 'kSecMatchLimitAll' in scope
127 |             secAttrAcount: account,
128 |             secReturnAttributes: kCFBooleanTrue as Any,
129 |             secMatchLimit: kSecMatchLimitAll]
    |                            `- error: cannot find 'kSecMatchLimitAll' in scope
130 |         if let accessGroup = accessGroup {
131 |             query[secAttrAccessGroup] = accessGroup
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:136:13: error: cannot find 'SecItemCopyMatching' in scope
134 |         var result: AnyObject?
135 |         let status = withUnsafeMutablePointer(to: &result) {
136 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
    |             `- error: cannot find 'SecItemCopyMatching' in scope
137 |         }
138 |         if status == errSecSuccess {
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:136:42: error: cannot find type 'CFDictionary' in scope
134 |         var result: AnyObject?
135 |         let status = withUnsafeMutablePointer(to: &result) {
136 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
    |                                          `- error: cannot find type 'CFDictionary' in scope
137 |         }
138 |         if status == errSecSuccess {
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:138:22: error: cannot find 'errSecSuccess' in scope
136 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
137 |         }
138 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
139 |             guard let items = result as? [[String: Any]] else {
140 |                 return []
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:144:27: error: cannot find 'errSecItemNotFound' in scope
142 |             return items.compactMap({ $0[secAttrService] as? String })
143 |         }
144 |         else if status == errSecItemNotFound {
    |                           `- error: cannot find 'errSecItemNotFound' in scope
145 |             return []
146 |         }
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:155:22: error: cannot find 'SecItemDelete' in scope
153 |     open func deleteItem(forKey key: String) throws {
154 |         let query = keychainQuery(forKey: key)
155 |         let status = SecItemDelete(query as CFDictionary)
    |                      `- error: cannot find 'SecItemDelete' in scope
156 |         if status != errSecSuccess {
157 |             throw error(from: status)
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:155:45: error: cannot find type 'CFDictionary' in scope
153 |     open func deleteItem(forKey key: String) throws {
154 |         let query = keychainQuery(forKey: key)
155 |         let status = SecItemDelete(query as CFDictionary)
    |                                             `- error: cannot find type 'CFDictionary' in scope
156 |         if status != errSecSuccess {
157 |             throw error(from: status)
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:156:22: error: cannot find 'errSecSuccess' in scope
154 |         let query = keychainQuery(forKey: key)
155 |         let status = SecItemDelete(query as CFDictionary)
156 |         if status != errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
157 |             throw error(from: status)
158 |         }
/host/spi-builder-workspace/Sources/KeychainStore/AbstractKeychainStore.swift:174:10: error: cannot find 'errSecItemNotFound' in scope
172 | func error(from staus: OSStatus) -> KeychainStoreError {
173 |     switch staus {
174 |     case errSecItemNotFound:
    |          `- error: cannot find 'errSecItemNotFound' in scope
175 |         return KeychainStoreError.itemNotFound
176 |     default:
BUILD FAILURE 6.0 linux