This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

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 Keychain with Swift 6.0 for Linux.

Build Command

bash -c docker run --rm -v "checkouts-4609320-0":/host -w "$workDir" 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.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tyhopp/keychain.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/tyhopp/keychain
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 82276d8 Add public access modifier to init
Cloned https://github.com/tyhopp/keychain.git
Revision (git rev-parse @):
82276d83364cdb3cb678970849391a7036a61455
SUCCESS checkout https://github.com/tyhopp/keychain.git at main
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $workDir
https://github.com/tyhopp/keychain.git
Running build ...
bash -c docker run --rm -v "checkouts-4609320-0":/host -w "$workDir" 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
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/5] Emitting module Keychain
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:22:33: error: cannot find type 'OSStatus' in scope
 20 |     case unexpectedPasswordData
 21 |     case unexpectedItemData
 22 |     case unhandledError(status: OSStatus)
    |                                 `- error: cannot find type 'OSStatus' in scope
 23 | }
 24 |
[4/5] Compiling Keychain Keychain.swift
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:22:33: error: cannot find type 'OSStatus' in scope
 20 |     case unexpectedPasswordData
 21 |     case unexpectedItemData
 22 |     case unhandledError(status: OSStatus)
    |                                 `- error: cannot find type 'OSStatus' in scope
 23 | }
 24 |
[5/5] Compiling Keychain KeychainPasswordItem.swift
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:22:33: error: cannot find type 'OSStatus' in scope
 20 |     case unexpectedPasswordData
 21 |     case unexpectedItemData
 22 |     case unhandledError(status: OSStatus)
    |                                 `- error: cannot find type 'OSStatus' in scope
 23 | }
 24 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:51:15: error: cannot find 'kSecMatchLimit' in scope
 49 |         */
 50 |         var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
 51 |         query[kSecMatchLimit as String] = kSecMatchLimitOne
    |               `- error: cannot find 'kSecMatchLimit' in scope
 52 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
 53 |         query[kSecReturnData as String] = kCFBooleanTrue
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:51:43: error: cannot find 'kSecMatchLimitOne' in scope
 49 |         */
 50 |         var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
 51 |         query[kSecMatchLimit as String] = kSecMatchLimitOne
    |                                           `- error: cannot find 'kSecMatchLimitOne' in scope
 52 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
 53 |         query[kSecReturnData as String] = kCFBooleanTrue
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:52:15: error: cannot find 'kSecReturnAttributes' in scope
 50 |         var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
 51 |         query[kSecMatchLimit as String] = kSecMatchLimitOne
 52 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
    |               `- error: cannot find 'kSecReturnAttributes' in scope
 53 |         query[kSecReturnData as String] = kCFBooleanTrue
 54 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:52:49: error: cannot find 'kCFBooleanTrue' in scope
 50 |         var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
 51 |         query[kSecMatchLimit as String] = kSecMatchLimitOne
 52 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
    |                                                 `- error: cannot find 'kCFBooleanTrue' in scope
 53 |         query[kSecReturnData as String] = kCFBooleanTrue
 54 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:53:15: error: cannot find 'kSecReturnData' in scope
 51 |         query[kSecMatchLimit as String] = kSecMatchLimitOne
 52 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
 53 |         query[kSecReturnData as String] = kCFBooleanTrue
    |               `- error: cannot find 'kSecReturnData' in scope
 54 |
 55 |         // Try to fetch the existing keychain item that matches the query.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:53:43: error: cannot find 'kCFBooleanTrue' in scope
 51 |         query[kSecMatchLimit as String] = kSecMatchLimitOne
 52 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
 53 |         query[kSecReturnData as String] = kCFBooleanTrue
    |                                           `- error: cannot find 'kCFBooleanTrue' in scope
 54 |
 55 |         // Try to fetch the existing keychain item that matches the query.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:58:13: error: cannot find 'SecItemCopyMatching' in scope
 56 |         var queryResult: AnyObject?
 57 |         let status = withUnsafeMutablePointer(to: &queryResult) {
 58 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
    |             `- error: cannot find 'SecItemCopyMatching' in scope
 59 |         }
 60 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:58:42: error: cannot find type 'CFDictionary' in scope
 56 |         var queryResult: AnyObject?
 57 |         let status = withUnsafeMutablePointer(to: &queryResult) {
 58 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
    |                                          `- error: cannot find type 'CFDictionary' in scope
 59 |         }
 60 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:62:25: error: cannot find 'errSecItemNotFound' in scope
 60 |
 61 |         // Check the return status and throw an error if appropriate.
 62 |         guard status != errSecItemNotFound else { throw KeychainError.noPassword }
    |                         `- error: cannot find 'errSecItemNotFound' in scope
 63 |         guard status == noErr else { throw KeychainError.unhandledError(status: status) }
 64 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:63:25: error: cannot find 'noErr' in scope
 61 |         // Check the return status and throw an error if appropriate.
 62 |         guard status != errSecItemNotFound else { throw KeychainError.noPassword }
 63 |         guard status == noErr else { throw KeychainError.unhandledError(status: status) }
    |                         `- error: cannot find 'noErr' in scope
 64 |
 65 |         // Parse the password string from the query result.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:67:45: error: cannot find 'kSecValueData' in scope
 65 |         // Parse the password string from the query result.
 66 |         guard let existingItem = queryResult as? [String : AnyObject],
 67 |             let passwordData = existingItem[kSecValueData as String] as? Data,
    |                                             `- error: cannot find 'kSecValueData' in scope
 68 |             let password = String(data: passwordData, encoding: String.Encoding.utf8)
 69 |         else {
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:86:32: error: cannot find 'kSecValueData' in scope
 84 |             // Update the existing item with the new password.
 85 |             var attributesToUpdate = [String : AnyObject]()
 86 |             attributesToUpdate[kSecValueData as String] = encodedPassword as AnyObject?
    |                                `- error: cannot find 'kSecValueData' in scope
 87 |
 88 |             let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:89:26: error: cannot find 'SecItemUpdate' in scope
 87 |
 88 |             let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
 89 |             let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
    |                          `- error: cannot find 'SecItemUpdate' in scope
 90 |
 91 |             // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:89:49: error: cannot find type 'CFDictionary' in scope
 87 |
 88 |             let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
 89 |             let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
    |                                                 `- error: cannot find type 'CFDictionary' in scope
 90 |
 91 |             // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:89:85: error: cannot find type 'CFDictionary' in scope
 87 |
 88 |             let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
 89 |             let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
    |                                                                                     `- error: cannot find type 'CFDictionary' in scope
 90 |
 91 |             // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:92:29: error: cannot find 'noErr' in scope
 90 |
 91 |             // Throw an error if an unexpected status was returned.
 92 |             guard status == noErr else { throw KeychainError.unhandledError(status: status) }
    |                             `- error: cannot find 'noErr' in scope
 93 |         }
 94 |         catch KeychainError.noPassword {
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:100:21: error: cannot find 'kSecValueData' in scope
 98 |             */
 99 |             var newItem = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
100 |             newItem[kSecValueData as String] = encodedPassword as AnyObject?
    |                     `- error: cannot find 'kSecValueData' in scope
101 |
102 |             // Add a the new item to the keychain.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:103:26: error: cannot find 'SecItemAdd' in scope
101 |
102 |             // Add a the new item to the keychain.
103 |             let status = SecItemAdd(newItem as CFDictionary, nil)
    |                          `- error: cannot find 'SecItemAdd' in scope
104 |
105 |             // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:103:48: error: cannot find type 'CFDictionary' in scope
101 |
102 |             // Add a the new item to the keychain.
103 |             let status = SecItemAdd(newItem as CFDictionary, nil)
    |                                                `- error: cannot find type 'CFDictionary' in scope
104 |
105 |             // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:103:62: error: 'nil' requires a contextual type
101 |
102 |             // Add a the new item to the keychain.
103 |             let status = SecItemAdd(newItem as CFDictionary, nil)
    |                                                              `- error: 'nil' requires a contextual type
104 |
105 |             // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:106:29: error: cannot find 'noErr' in scope
104 |
105 |             // Throw an error if an unexpected status was returned.
106 |             guard status == noErr else { throw KeychainError.unhandledError(status: status) }
    |                             `- error: cannot find 'noErr' in scope
107 |         }
108 |     }
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:113:28: error: cannot find 'kSecAttrAccount' in scope
111 |         // Try to update an existing item with the new account name.
112 |         var attributesToUpdate = [String : AnyObject]()
113 |         attributesToUpdate[kSecAttrAccount as String] = newAccountName as AnyObject?
    |                            `- error: cannot find 'kSecAttrAccount' in scope
114 |
115 |         let query = KeychainPasswordItem.keychainQuery(withService: service, account: self.account, accessGroup: accessGroup)
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:116:22: error: cannot find 'SecItemUpdate' in scope
114 |
115 |         let query = KeychainPasswordItem.keychainQuery(withService: service, account: self.account, accessGroup: accessGroup)
116 |         let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
    |                      `- error: cannot find 'SecItemUpdate' in scope
117 |
118 |         // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:116:45: error: cannot find type 'CFDictionary' in scope
114 |
115 |         let query = KeychainPasswordItem.keychainQuery(withService: service, account: self.account, accessGroup: accessGroup)
116 |         let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
    |                                             `- error: cannot find type 'CFDictionary' in scope
117 |
118 |         // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:116:81: error: cannot find type 'CFDictionary' in scope
114 |
115 |         let query = KeychainPasswordItem.keychainQuery(withService: service, account: self.account, accessGroup: accessGroup)
116 |         let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
    |                                                                                 `- error: cannot find type 'CFDictionary' in scope
117 |
118 |         // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:119:25: error: cannot find 'noErr' in scope
117 |
118 |         // Throw an error if an unexpected status was returned.
119 |         guard status == noErr || status == errSecItemNotFound else { throw KeychainError.unhandledError(status: status) }
    |                         `- error: cannot find 'noErr' in scope
120 |
121 |         self.account = newAccountName
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:119:44: error: cannot find 'errSecItemNotFound' in scope
117 |
118 |         // Throw an error if an unexpected status was returned.
119 |         guard status == noErr || status == errSecItemNotFound else { throw KeychainError.unhandledError(status: status) }
    |                                            `- error: cannot find 'errSecItemNotFound' in scope
120 |
121 |         self.account = newAccountName
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:127:22: error: cannot find 'SecItemDelete' in scope
125 |         // Delete the existing item from the keychain.
126 |         let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
127 |         let status = SecItemDelete(query as CFDictionary)
    |                      `- error: cannot find 'SecItemDelete' in scope
128 |
129 |         // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:127:45: error: cannot find type 'CFDictionary' in scope
125 |         // Delete the existing item from the keychain.
126 |         let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
127 |         let status = SecItemDelete(query as CFDictionary)
    |                                             `- error: cannot find type 'CFDictionary' in scope
128 |
129 |         // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:130:25: error: cannot find 'noErr' in scope
128 |
129 |         // Throw an error if an unexpected status was returned.
130 |         guard status == noErr || status == errSecItemNotFound else { throw KeychainError.unhandledError(status: status) }
    |                         `- error: cannot find 'noErr' in scope
131 |     }
132 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:130:44: error: cannot find 'errSecItemNotFound' in scope
128 |
129 |         // Throw an error if an unexpected status was returned.
130 |         guard status == noErr || status == errSecItemNotFound else { throw KeychainError.unhandledError(status: status) }
    |                                            `- error: cannot find 'errSecItemNotFound' in scope
131 |     }
132 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:136:15: error: cannot find 'kSecMatchLimit' in scope
134 |         // Build a query for all items that match the service and access group.
135 |         var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup)
136 |         query[kSecMatchLimit as String] = kSecMatchLimitAll
    |               `- error: cannot find 'kSecMatchLimit' in scope
137 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
138 |         query[kSecReturnData as String] = kCFBooleanFalse
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:136:43: error: cannot find 'kSecMatchLimitAll' in scope
134 |         // Build a query for all items that match the service and access group.
135 |         var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup)
136 |         query[kSecMatchLimit as String] = kSecMatchLimitAll
    |                                           `- error: cannot find 'kSecMatchLimitAll' in scope
137 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
138 |         query[kSecReturnData as String] = kCFBooleanFalse
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:137:15: error: cannot find 'kSecReturnAttributes' in scope
135 |         var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup)
136 |         query[kSecMatchLimit as String] = kSecMatchLimitAll
137 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
    |               `- error: cannot find 'kSecReturnAttributes' in scope
138 |         query[kSecReturnData as String] = kCFBooleanFalse
139 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:137:49: error: cannot find 'kCFBooleanTrue' in scope
135 |         var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup)
136 |         query[kSecMatchLimit as String] = kSecMatchLimitAll
137 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
    |                                                 `- error: cannot find 'kCFBooleanTrue' in scope
138 |         query[kSecReturnData as String] = kCFBooleanFalse
139 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:138:15: error: cannot find 'kSecReturnData' in scope
136 |         query[kSecMatchLimit as String] = kSecMatchLimitAll
137 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
138 |         query[kSecReturnData as String] = kCFBooleanFalse
    |               `- error: cannot find 'kSecReturnData' in scope
139 |
140 |         // Fetch matching items from the keychain.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:138:43: error: cannot find 'kCFBooleanFalse' in scope
136 |         query[kSecMatchLimit as String] = kSecMatchLimitAll
137 |         query[kSecReturnAttributes as String] = kCFBooleanTrue
138 |         query[kSecReturnData as String] = kCFBooleanFalse
    |                                           `- error: cannot find 'kCFBooleanFalse' in scope
139 |
140 |         // Fetch matching items from the keychain.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:143:13: error: cannot find 'SecItemCopyMatching' in scope
141 |         var queryResult: AnyObject?
142 |         let status = withUnsafeMutablePointer(to: &queryResult) {
143 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
    |             `- error: cannot find 'SecItemCopyMatching' in scope
144 |         }
145 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:143:42: error: cannot find type 'CFDictionary' in scope
141 |         var queryResult: AnyObject?
142 |         let status = withUnsafeMutablePointer(to: &queryResult) {
143 |             SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
    |                                          `- error: cannot find type 'CFDictionary' in scope
144 |         }
145 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:147:25: error: cannot find 'errSecItemNotFound' in scope
145 |
146 |         // If no items were found, return an empty array.
147 |         guard status != errSecItemNotFound else { return [] }
    |                         `- error: cannot find 'errSecItemNotFound' in scope
148 |
149 |         // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:150:25: error: cannot find 'noErr' in scope
148 |
149 |         // Throw an error if an unexpected status was returned.
150 |         guard status == noErr else { throw KeychainError.unhandledError(status: status) }
    |                         `- error: cannot find 'noErr' in scope
151 |
152 |         // Cast the query result to an array of dictionaries.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:158:41: error: cannot find 'kSecAttrAccount' in scope
156 |         var passwordItems = [KeychainPasswordItem]()
157 |         for result in resultData {
158 |             guard let account  = result[kSecAttrAccount as String] as? String else { throw KeychainError.unexpectedItemData }
    |                                         `- error: cannot find 'kSecAttrAccount' in scope
159 |
160 |             let passwordItem = KeychainPasswordItem(service: service, account: account, accessGroup: accessGroup)
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:171:15: error: cannot find 'kSecClass' in scope
169 |     private static func keychainQuery(withService service: String, account: String? = nil, accessGroup: String? = nil) -> [String : AnyObject] {
170 |         var query = [String : AnyObject]()
171 |         query[kSecClass as String] = kSecClassGenericPassword
    |               `- error: cannot find 'kSecClass' in scope
172 |         query[kSecAttrService as String] = service as AnyObject?
173 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:171:38: error: cannot find 'kSecClassGenericPassword' in scope
169 |     private static func keychainQuery(withService service: String, account: String? = nil, accessGroup: String? = nil) -> [String : AnyObject] {
170 |         var query = [String : AnyObject]()
171 |         query[kSecClass as String] = kSecClassGenericPassword
    |                                      `- error: cannot find 'kSecClassGenericPassword' in scope
172 |         query[kSecAttrService as String] = service as AnyObject?
173 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:172:15: error: cannot find 'kSecAttrService' in scope
170 |         var query = [String : AnyObject]()
171 |         query[kSecClass as String] = kSecClassGenericPassword
172 |         query[kSecAttrService as String] = service as AnyObject?
    |               `- error: cannot find 'kSecAttrService' in scope
173 |
174 |         if let account = account {
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:175:19: error: cannot find 'kSecAttrAccount' in scope
173 |
174 |         if let account = account {
175 |             query[kSecAttrAccount as String] = account as AnyObject?
    |                   `- error: cannot find 'kSecAttrAccount' in scope
176 |         }
177 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:179:19: error: cannot find 'kSecAttrAccessGroup' in scope
177 |
178 |         if let accessGroup = accessGroup {
179 |             query[kSecAttrAccessGroup as String] = accessGroup as AnyObject?
    |                   `- error: cannot find 'kSecAttrAccessGroup' in scope
180 |         }
181 |
BUILD FAILURE 6.0 linux
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.