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 PassportKit, reference 1.7.7 (bdf090), with Swift 6.0 for Linux on 3 Nov 2024 00:22:00 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

[4/18] Emitting module Valet
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:39:20: error: cannot find type 'OSStatus' in scope
 37 |     internal enum DataResult<SuccessType> {
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 40 |
 41 |         var value: SuccessType? {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:20: error: cannot find type 'OSStatus' in scope
 53 |     internal enum Result {
 54 |         case success
 55 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 56 |
 57 |         var didSucceed: Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainQueryConvertible.swift:24:2: error: Objective-C interoperability is disabled
22 |
23 |
24 | @objc(VALKeychainQueryConvertible)
   |  `- error: Objective-C interoperability is disabled
25 | public protocol KeychainQueryConvertible {
26 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift:73:36: error: cannot find type 'SecAccessControlCreateFlags' in scope
 71 |     // MARK: Internal Properties
 72 |
 73 |     internal var secAccessControl: SecAccessControlCreateFlags {
    |                                    `- error: cannot find type 'SecAccessControlCreateFlags' in scope
 74 |         switch self {
 75 |         case .userPresence:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:26:2: error: Objective-C interoperability is disabled
 24 | /// Reads and writes keychain elements that are stored on the Secure Enclave using Accessibility attribute `.whenPasscodeSetThisDeviceOnly`. Accessing these keychain elements will require the user to confirm their presence via Touch ID, Face ID, or passcode entry. If no passcode is set on the device, accessing the keychain via a `SecureEnclaveValet` will fail. Data is removed from the Secure Enclave when the user removes a passcode from the device.
 25 | @available(macOS 10.11, *)
 26 | @objc(VALSecureEnclaveValet)
    |  `- error: Objective-C interoperability is disabled
 27 | public final class SecureEnclaveValet: NSObject {
 28 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:68:47: error: cannot find 'NSMapTable' in scope
 66 |     // MARK: Private Class Properties
 67 |
 68 |     private static let identifierToValetMap = NSMapTable<NSString, SecureEnclaveValet>.strongToWeakObjects()
    |                                               `- error: cannot find 'NSMapTable' in scope
 69 |
 70 |     // MARK: Initialization
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:100:6: error: Objective-C interoperability is disabled
 98 |
 99 |     public let identifier: Identifier
100 |     @objc
    |      `- error: Objective-C interoperability is disabled
101 |     public let accessControl: SecureEnclaveAccessControl
102 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:107:6: error: Objective-C interoperability is disabled
105 |     /// - returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
106 |     /// - note: Determined by writing a value to the keychain and then reading it back out. Will never prompt the user for Face ID, Touch ID, or password.
107 |     @objc
    |      `- error: Objective-C interoperability is disabled
108 |     public func canAccessKeychain() -> Bool {
109 |         return SecureEnclave.canAccessKeychain(with: service, identifier: identifier)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:115:6: error: Objective-C interoperability is disabled
113 |     /// - parameter key: A Key that can be used to retrieve the `object` from the keychain.
114 |     /// - returns: `false` if the keychain is not accessible.
115 |     @objc(setObject:forKey:)
    |      `- error: Objective-C interoperability is disabled
116 |     @discardableResult
117 |     public func set(object: Data, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:135:6: error: Objective-C interoperability is disabled
133 |     /// - returns: `true` if a value has been set for the given key, `false` otherwise.
134 |     /// - note: Will never prompt the user for Face ID, Touch ID, or password.
135 |     @objc(containsObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
136 |     public func containsObject(forKey key: String) -> Bool {
137 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:145:6: error: Objective-C interoperability is disabled
143 |     /// - parameter key: A Key that can be used to retrieve the `string` from the keychain.
144 |     /// - returns: `true` if the operation succeeded, or `false` if the keychain is not accessible.
145 |     @objc(setString:forKey:)
    |      `- error: Objective-C interoperability is disabled
146 |     @discardableResult
147 |     public func set(string: String, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:164:6: error: Objective-C interoperability is disabled
162 |     /// Removes a key/object pair from the keychain.
163 |     /// - returns: `false` if the keychain is not accessible.
164 |     @objc(removeObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
165 |     @discardableResult
166 |     public func removeObject(forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:174:6: error: Objective-C interoperability is disabled
172 |     /// Removes all key/object pairs accessible by this Valet instance from the keychain.
173 |     /// - returns: `false` if the keychain is not accessible.
174 |     @objc
    |      `- error: Objective-C interoperability is disabled
175 |     @discardableResult
176 |     public func removeAllObjects() -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:187:6: error: Objective-C interoperability is disabled
185 |     /// - returns: Whether the migration succeeded or failed.
186 |     /// - note: The keychain is not modified if a failure occurs.
187 |     @objc(migrateObjectsMatchingQuery:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
188 |     public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) -> MigrationResult {
189 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:199:6: error: Objective-C interoperability is disabled
197 |     /// - returns: Whether the migration succeeded or failed.
198 |     /// - note: The keychain is not modified if a failure occurs.
199 |     @objc(migrateObjectsFromKeychain:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
200 |     public func migrateObjects(from keychain: KeychainQueryConvertible, removeOnCompletion: Bool) -> MigrationResult {
201 |         return migrateObjects(matching: keychain.keychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:225:6: error: Objective-C interoperability is disabled
223 |     /// - parameter identifier: A non-empty string that uniquely identifies a SecureEnclaveValet.
224 |     /// - returns: A SecureEnclaveValet that reads/writes keychain elements with the desired flavor.
225 |     @objc(valetWithIdentifier:accessControl:)
    |      `- error: Objective-C interoperability is disabled
226 |     public class func 🚫swift_valet(with identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
227 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:235:6: error: Objective-C interoperability is disabled
233 |     /// - parameter identifier: A non-empty string that must correspond with the value for keychain-access-groups in your Entitlements file.
234 |     /// - returns: A SecureEnclaveValet that reads/writes keychain elements that can be shared across applications written by the same development team.
235 |     @objc(sharedAccessGroupValetWithIdentifier:accessControl:)
    |      `- error: Objective-C interoperability is disabled
236 |     public class func 🚫swift_sharedAccessGroupValet(with identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
237 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:249:6: error: Objective-C interoperability is disabled
247 |     /// - returns: The data currently stored in the keychain for the provided key. Returns `nil` if no object exists in the keychain for the specified key, or if the keychain is inaccessible.
248 |     @available(swift, obsoleted: 1.0)
249 |     @objc(objectForKey:userPrompt:userCancelled:)
    |      `- error: Objective-C interoperability is disabled
250 |     public func 🚫swift_object(forKey key: String, withPrompt userPrompt: String, userCancelled: UnsafeMutablePointer<ObjCBool>?) -> Data? {
251 |         switch object(forKey: key, withPrompt: userPrompt) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:266:6: error: Objective-C interoperability is disabled
264 |     /// - returns: The string currently stored in the keychain for the provided key. Returns `nil` if no string exists in the keychain for the specified key, or if the keychain is inaccessible.
265 |     @available(swift, obsoleted: 1.0)
266 |     @objc(stringForKey:userPrompt:userCancelled:)
    |      `- error: Objective-C interoperability is disabled
267 |     public func 🚫swift_string(forKey key: String, withPrompt userPrompt: String, userCancelled: UnsafeMutablePointer<ObjCBool>?) -> String? {
268 |         switch string(forKey: key, withPrompt: userPrompt) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:25:2: error: Objective-C interoperability is disabled
 23 |
 24 | /// Reads and writes keychain elements.
 25 | @objc(VALValet)
    |  `- error: Objective-C interoperability is disabled
 26 | public final class Valet: NSObject, KeychainQueryConvertible {
 27 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:67:47: error: cannot find 'NSMapTable' in scope
 65 |     // MARK: Private Class Properties
 66 |
 67 |     private static let identifierToValetMap = NSMapTable<NSString, Valet>.strongToWeakObjects()
    |                                               `- error: cannot find 'NSMapTable' in scope
 68 |
 69 |     // MARK: Private Class Functions
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:131:6: error: Objective-C interoperability is disabled
129 |     // MARK: Public Properties
130 |
131 |     @objc
    |      `- error: Objective-C interoperability is disabled
132 |     public let accessibility: Accessibility
133 |     public let identifier: Identifier
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:139:6: error: Objective-C interoperability is disabled
137 |     /// - returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
138 |     /// - note: Determined by writing a value to the keychain and then reading it back out.
139 |     @objc
    |      `- error: Objective-C interoperability is disabled
140 |     public func canAccessKeychain() -> Bool {
141 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:149:6: error: Objective-C interoperability is disabled
147 |     /// - parameter key: A Key that can be used to retrieve the `object` from the keychain.
148 |     /// - returns: `false` if the keychain is not accessible.
149 |     @objc(setObject:forKey:)
    |      `- error: Objective-C interoperability is disabled
150 |     @discardableResult
151 |     public func set(object: Data, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:159:6: error: Objective-C interoperability is disabled
157 |     /// - parameter key: A Key used to retrieve the desired object from the keychain.
158 |     /// - returns: The data currently stored in the keychain for the provided key. Returns `nil` if no object exists in the keychain for the specified key, or if the keychain is inaccessible.
159 |     @objc(objectForKey:)
    |      `- error: Objective-C interoperability is disabled
160 |     public func object(forKey key: String) -> Data? {
161 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:168:6: error: Objective-C interoperability is disabled
166 |     /// - parameter key: The key to look up in the keychain.
167 |     /// - returns: `true` if a value has been set for the given key, `false` otherwise.
168 |     @objc(containsObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
169 |     public func containsObject(forKey key: String) -> Bool {
170 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:178:6: error: Objective-C interoperability is disabled
176 |     /// - parameter key: A Key that can be used to retrieve the `string` from the keychain.
177 |     /// - returns: `true` if the operation succeeded, or `false` if the keychain is not accessible.
178 |     @objc(setString:forKey:)
    |      `- error: Objective-C interoperability is disabled
179 |     @discardableResult
180 |     public func set(string: String, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:188:6: error: Objective-C interoperability is disabled
186 |     /// - parameter key: A Key used to retrieve the desired object from the keychain.
187 |     /// - returns: The string currently stored in the keychain for the provided key. Returns `nil` if no string exists in the keychain for the specified key, or if the keychain is inaccessible.
188 |     @objc(stringForKey:)
    |      `- error: Objective-C interoperability is disabled
189 |     public func string(forKey key: String) -> String? {
190 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:196:6: error: Objective-C interoperability is disabled
194 |
195 |     /// - returns: The set of all (String) keys currently stored in this Valet instance.
196 |     @objc
    |      `- error: Objective-C interoperability is disabled
197 |     public func allKeys() -> Set<String> {
198 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:205:6: error: Objective-C interoperability is disabled
203 |     /// Removes a key/object pair from the keychain.
204 |     /// - returns: `false` if the keychain is not accessible.
205 |     @objc(removeObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
206 |     @discardableResult
207 |     public func removeObject(forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:215:6: error: Objective-C interoperability is disabled
213 |     /// Removes all key/object pairs accessible by this Valet instance from the keychain.
214 |     /// - returns: `false` if the keychain is not accessible.
215 |     @objc
    |      `- error: Objective-C interoperability is disabled
216 |     @discardableResult
217 |     public func removeAllObjects() -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:228:6: error: Objective-C interoperability is disabled
226 |     /// - returns: Whether the migration succeeded or failed.
227 |     /// - note: The keychain is not modified if a failure occurs.
228 |     @objc(migrateObjectsMatchingQuery:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
229 |     public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) -> MigrationResult {
230 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:240:6: error: Objective-C interoperability is disabled
238 |     /// - returns: Whether the migration succeeded or failed.
239 |     /// - note: The keychain is not modified if a failure occurs.
240 |     @objc(migrateObjectsFromValet:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
241 |     public func migrateObjects(from keychain: KeychainQueryConvertible, removeOnCompletion: Bool) -> MigrationResult {
242 |         return migrateObjects(matching: keychain.keychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:286:6: error: Objective-C interoperability is disabled
284 |     /// - returns: A Valet that reads/writes keychain elements with the desired accessibility.
285 |     @available(swift, obsoleted: 1.0)
286 |     @objc(valetWithIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
287 |     public class func 🚫swift_vanillaValet(with identifier: String, accessibility: Accessibility) -> Valet? {
288 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:298:6: error: Objective-C interoperability is disabled
296 |     /// - returns: A Valet that reads/writes iCloud-shared keychain elements with the desired accessibility.
297 |     @available(swift, obsoleted: 1.0)
298 |     @objc(iCloudValetWithIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
299 |     public class func 🚫swift_iCloudValet(with identifier: String, accessibility: CloudAccessibility) -> Valet? {
300 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:310:6: error: Objective-C interoperability is disabled
308 |     /// - returns: A Valet that reads/writes keychain elements that can be shared across applications written by the same development team.
309 |     @available(swift, obsoleted: 1.0)
310 |     @objc(valetWithSharedAccessGroupIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
311 |     public class func 🚫swift_vanillaSharedAccessGroupValet(with identifier: String, accessibility: Accessibility) -> Valet? {
312 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:322:6: error: Objective-C interoperability is disabled
320 |     /// - returns: A Valet that reads/writes iCloud-shared keychain elements that can be shared across applications written by the same development team.
321 |     @available(swift, obsoleted: 1.0)
322 |     @objc(iCloudValetWithSharedAccessGroupIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
323 |     public class func 🚫swift_iCloudSharedAccessGroupValet(with identifier: String, accessibility: CloudAccessibility) -> Valet? {
324 |         guard let identifier = Identifier(nonEmpty: identifier) else {
[5/18] Compiling Valet SecureEnclave.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:39:20: error: cannot find type 'OSStatus' in scope
 37 |     internal enum DataResult<SuccessType> {
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 40 |
 41 |         var value: SuccessType? {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:45:48: error: cannot find 'errSecUserCanceled' in scope
 43 |
 44 |             case let .error(status):
 45 |                 let userCancelled = (status == errSecUserCanceled || status == errSecAuthFailed)
    |                                                `- error: cannot find 'errSecUserCanceled' in scope
 46 |                 if userCancelled {
 47 |                     self = .userCancelled
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:45:80: error: cannot find 'errSecAuthFailed' in scope
 43 |
 44 |             case let .error(status):
 45 |                 let userCancelled = (status == errSecUserCanceled || status == errSecAuthFailed)
    |                                                                                `- error: cannot find 'errSecAuthFailed' in scope
 46 |                 if userCancelled {
 47 |                     self = .userCancelled
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:110:26: error: cannot find 'kSecUseOperationPrompt' in scope
108 |         var secItemQuery = options
109 |         if !userPrompt.isEmpty {
110 |             secItemQuery[kSecUseOperationPrompt as String] = userPrompt
    |                          `- error: cannot find 'kSecUseOperationPrompt' in scope
111 |         }
112 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:121:22: error: cannot find 'kSecUseAuthenticationUI' in scope
119 |     internal static func containsObject(forKey key: String, options: [String : AnyHashable]) -> Bool {
120 |         var secItemQuery = options
121 |         secItemQuery[kSecUseAuthenticationUI as String] = kSecUseAuthenticationUIFail
    |                      `- error: cannot find 'kSecUseAuthenticationUI' in scope
122 |
123 |         switch Keychain.containsObject(forKey: key, options: secItemQuery) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:121:59: error: cannot find 'kSecUseAuthenticationUIFail' in scope
119 |     internal static func containsObject(forKey key: String, options: [String : AnyHashable]) -> Bool {
120 |         var secItemQuery = options
121 |         secItemQuery[kSecUseAuthenticationUI as String] = kSecUseAuthenticationUIFail
    |                                                           `- error: cannot find 'kSecUseAuthenticationUIFail' in scope
122 |
123 |         switch Keychain.containsObject(forKey: key, options: secItemQuery) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:20: error: cannot find type 'OSStatus' in scope
 53 |     internal enum Result {
 54 |         case success
 55 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 56 |
 57 |         var didSucceed: Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:128:51: error: cannot find 'errSecInteractionNotAllowed' in scope
126 |
127 |         case let .error(status):
128 |             let keyAlreadyInKeychain = (status == errSecInteractionNotAllowed || status == errSecSuccess)
    |                                                   `- error: cannot find 'errSecInteractionNotAllowed' in scope
129 |             return keyAlreadyInKeychain
130 |         }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:128:92: error: cannot find 'errSecSuccess' in scope
126 |
127 |         case let .error(status):
128 |             let keyAlreadyInKeychain = (status == errSecInteractionNotAllowed || status == errSecSuccess)
    |                                                                                            `- error: cannot find 'errSecSuccess' in scope
129 |             return keyAlreadyInKeychain
130 |         }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:152:26: error: cannot find 'kSecUseOperationPrompt' in scope
150 |         var secItemQuery = options
151 |         if !userPrompt.isEmpty {
152 |             secItemQuery[kSecUseOperationPrompt as String] = userPrompt
    |                          `- error: cannot find 'kSecUseOperationPrompt' in scope
153 |         }
154 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift:73:36: error: cannot find type 'SecAccessControlCreateFlags' in scope
 71 |     // MARK: Internal Properties
 72 |
 73 |     internal var secAccessControl: SecAccessControlCreateFlags {
    |                                    `- error: cannot find type 'SecAccessControlCreateFlags' in scope
 74 |         switch self {
 75 |         case .userPresence:
[6/18] Compiling Valet SecureEnclaveAccessControl.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:39:20: error: cannot find type 'OSStatus' in scope
 37 |     internal enum DataResult<SuccessType> {
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 40 |
 41 |         var value: SuccessType? {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:45:48: error: cannot find 'errSecUserCanceled' in scope
 43 |
 44 |             case let .error(status):
 45 |                 let userCancelled = (status == errSecUserCanceled || status == errSecAuthFailed)
    |                                                `- error: cannot find 'errSecUserCanceled' in scope
 46 |                 if userCancelled {
 47 |                     self = .userCancelled
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:45:80: error: cannot find 'errSecAuthFailed' in scope
 43 |
 44 |             case let .error(status):
 45 |                 let userCancelled = (status == errSecUserCanceled || status == errSecAuthFailed)
    |                                                                                `- error: cannot find 'errSecAuthFailed' in scope
 46 |                 if userCancelled {
 47 |                     self = .userCancelled
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:110:26: error: cannot find 'kSecUseOperationPrompt' in scope
108 |         var secItemQuery = options
109 |         if !userPrompt.isEmpty {
110 |             secItemQuery[kSecUseOperationPrompt as String] = userPrompt
    |                          `- error: cannot find 'kSecUseOperationPrompt' in scope
111 |         }
112 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:121:22: error: cannot find 'kSecUseAuthenticationUI' in scope
119 |     internal static func containsObject(forKey key: String, options: [String : AnyHashable]) -> Bool {
120 |         var secItemQuery = options
121 |         secItemQuery[kSecUseAuthenticationUI as String] = kSecUseAuthenticationUIFail
    |                      `- error: cannot find 'kSecUseAuthenticationUI' in scope
122 |
123 |         switch Keychain.containsObject(forKey: key, options: secItemQuery) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:121:59: error: cannot find 'kSecUseAuthenticationUIFail' in scope
119 |     internal static func containsObject(forKey key: String, options: [String : AnyHashable]) -> Bool {
120 |         var secItemQuery = options
121 |         secItemQuery[kSecUseAuthenticationUI as String] = kSecUseAuthenticationUIFail
    |                                                           `- error: cannot find 'kSecUseAuthenticationUIFail' in scope
122 |
123 |         switch Keychain.containsObject(forKey: key, options: secItemQuery) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:20: error: cannot find type 'OSStatus' in scope
 53 |     internal enum Result {
 54 |         case success
 55 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 56 |
 57 |         var didSucceed: Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:128:51: error: cannot find 'errSecInteractionNotAllowed' in scope
126 |
127 |         case let .error(status):
128 |             let keyAlreadyInKeychain = (status == errSecInteractionNotAllowed || status == errSecSuccess)
    |                                                   `- error: cannot find 'errSecInteractionNotAllowed' in scope
129 |             return keyAlreadyInKeychain
130 |         }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:128:92: error: cannot find 'errSecSuccess' in scope
126 |
127 |         case let .error(status):
128 |             let keyAlreadyInKeychain = (status == errSecInteractionNotAllowed || status == errSecSuccess)
    |                                                                                            `- error: cannot find 'errSecSuccess' in scope
129 |             return keyAlreadyInKeychain
130 |         }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:152:26: error: cannot find 'kSecUseOperationPrompt' in scope
150 |         var secItemQuery = options
151 |         if !userPrompt.isEmpty {
152 |             secItemQuery[kSecUseOperationPrompt as String] = userPrompt
    |                          `- error: cannot find 'kSecUseOperationPrompt' in scope
153 |         }
154 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift:73:36: error: cannot find type 'SecAccessControlCreateFlags' in scope
 71 |     // MARK: Internal Properties
 72 |
 73 |     internal var secAccessControl: SecAccessControlCreateFlags {
    |                                    `- error: cannot find type 'SecAccessControlCreateFlags' in scope
 74 |         switch self {
 75 |         case .userPresence:
[7/18] Compiling Valet KeychainQueryConvertible.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainQueryConvertible.swift:24:2: error: Objective-C interoperability is disabled
22 |
23 |
24 | @objc(VALKeychainQueryConvertible)
   |  `- error: Objective-C interoperability is disabled
25 | public protocol KeychainQueryConvertible {
26 |
[8/18] Compiling Valet MigrationResult.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainQueryConvertible.swift:24:2: error: Objective-C interoperability is disabled
22 |
23 |
24 | @objc(VALKeychainQueryConvertible)
   |  `- error: Objective-C interoperability is disabled
25 | public protocol KeychainQueryConvertible {
26 |
[9/18] Compiling Valet Accessibility.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:66:37: error: cannot find type 'CFString' in scope
 64 |
 65 |     public var secAccessibilityAttribute: String {
 66 |         let accessibilityAttribute: CFString
    |                                     `- error: cannot find type 'CFString' in scope
 67 |
 68 |         switch self {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:70:38: error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
 68 |         switch self {
 69 |         case .afterFirstUnlock:
 70 |             accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlock
    |                                      `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
 71 |         case .afterFirstUnlockThisDeviceOnly:
 72 |             accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:72:38: error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
 70 |             accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlock
 71 |         case .afterFirstUnlockThisDeviceOnly:
 72 |             accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
    |                                      `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
 73 |         case .always:
 74 |             accessibilityAttribute = kSecAttrAccessibleAlways
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:74:38: error: cannot find 'kSecAttrAccessibleAlways' in scope
 72 |             accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
 73 |         case .always:
 74 |             accessibilityAttribute = kSecAttrAccessibleAlways
    |                                      `- error: cannot find 'kSecAttrAccessibleAlways' in scope
 75 |         case .alwaysThisDeviceOnly:
 76 |             accessibilityAttribute = kSecAttrAccessibleAlwaysThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:76:38: error: cannot find 'kSecAttrAccessibleAlwaysThisDeviceOnly' in scope
 74 |             accessibilityAttribute = kSecAttrAccessibleAlways
 75 |         case .alwaysThisDeviceOnly:
 76 |             accessibilityAttribute = kSecAttrAccessibleAlwaysThisDeviceOnly
    |                                      `- error: cannot find 'kSecAttrAccessibleAlwaysThisDeviceOnly' in scope
 77 |         case .whenPasscodeSetThisDeviceOnly:
 78 |             accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:78:38: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
 76 |             accessibilityAttribute = kSecAttrAccessibleAlwaysThisDeviceOnly
 77 |         case .whenPasscodeSetThisDeviceOnly:
 78 |             accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
    |                                      `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
 79 |         case .whenUnlocked:
 80 |             accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:80:38: error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
 78 |             accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
 79 |         case .whenUnlocked:
 80 |             accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
    |                                      `- error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
 81 |         case .whenUnlockedThisDeviceOnly:
 82 |             accessibilityAttribute = kSecAttrAccessibleWhenUnlockedThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:82:38: error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
 80 |             accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
 81 |         case .whenUnlockedThisDeviceOnly:
 82 |             accessibilityAttribute = kSecAttrAccessibleWhenUnlockedThisDeviceOnly
    |                                      `- error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
 83 |         }
 84 |
[10/18] Compiling Valet CloudAccessibility.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:66:37: error: cannot find type 'CFString' in scope
 64 |
 65 |     public var secAccessibilityAttribute: String {
 66 |         let accessibilityAttribute: CFString
    |                                     `- error: cannot find type 'CFString' in scope
 67 |
 68 |         switch self {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:70:38: error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
 68 |         switch self {
 69 |         case .afterFirstUnlock:
 70 |             accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlock
    |                                      `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
 71 |         case .afterFirstUnlockThisDeviceOnly:
 72 |             accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:72:38: error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
 70 |             accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlock
 71 |         case .afterFirstUnlockThisDeviceOnly:
 72 |             accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
    |                                      `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
 73 |         case .always:
 74 |             accessibilityAttribute = kSecAttrAccessibleAlways
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:74:38: error: cannot find 'kSecAttrAccessibleAlways' in scope
 72 |             accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
 73 |         case .always:
 74 |             accessibilityAttribute = kSecAttrAccessibleAlways
    |                                      `- error: cannot find 'kSecAttrAccessibleAlways' in scope
 75 |         case .alwaysThisDeviceOnly:
 76 |             accessibilityAttribute = kSecAttrAccessibleAlwaysThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:76:38: error: cannot find 'kSecAttrAccessibleAlwaysThisDeviceOnly' in scope
 74 |             accessibilityAttribute = kSecAttrAccessibleAlways
 75 |         case .alwaysThisDeviceOnly:
 76 |             accessibilityAttribute = kSecAttrAccessibleAlwaysThisDeviceOnly
    |                                      `- error: cannot find 'kSecAttrAccessibleAlwaysThisDeviceOnly' in scope
 77 |         case .whenPasscodeSetThisDeviceOnly:
 78 |             accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:78:38: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
 76 |             accessibilityAttribute = kSecAttrAccessibleAlwaysThisDeviceOnly
 77 |         case .whenPasscodeSetThisDeviceOnly:
 78 |             accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
    |                                      `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
 79 |         case .whenUnlocked:
 80 |             accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:80:38: error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
 78 |             accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
 79 |         case .whenUnlocked:
 80 |             accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
    |                                      `- error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
 81 |         case .whenUnlockedThisDeviceOnly:
 82 |             accessibilityAttribute = kSecAttrAccessibleWhenUnlockedThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:82:38: error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
 80 |             accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
 81 |         case .whenUnlockedThisDeviceOnly:
 82 |             accessibilityAttribute = kSecAttrAccessibleWhenUnlockedThisDeviceOnly
    |                                      `- error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
 83 |         }
 84 |
[11/18] Compiling Valet SecureEnclaveValet.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:26:2: error: Objective-C interoperability is disabled
 24 | /// Reads and writes keychain elements that are stored on the Secure Enclave using Accessibility attribute `.whenPasscodeSetThisDeviceOnly`. Accessing these keychain elements will require the user to confirm their presence via Touch ID, Face ID, or passcode entry. If no passcode is set on the device, accessing the keychain via a `SecureEnclaveValet` will fail. Data is removed from the Secure Enclave when the user removes a passcode from the device.
 25 | @available(macOS 10.11, *)
 26 | @objc(VALSecureEnclaveValet)
    |  `- error: Objective-C interoperability is disabled
 27 | public final class SecureEnclaveValet: NSObject {
 28 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:68:47: error: cannot find 'NSMapTable' in scope
 66 |     // MARK: Private Class Properties
 67 |
 68 |     private static let identifierToValetMap = NSMapTable<NSString, SecureEnclaveValet>.strongToWeakObjects()
    |                                               `- error: cannot find 'NSMapTable' in scope
 69 |
 70 |     // MARK: Initialization
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:100:6: error: Objective-C interoperability is disabled
 98 |
 99 |     public let identifier: Identifier
100 |     @objc
    |      `- error: Objective-C interoperability is disabled
101 |     public let accessControl: SecureEnclaveAccessControl
102 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:107:6: error: Objective-C interoperability is disabled
105 |     /// - returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
106 |     /// - note: Determined by writing a value to the keychain and then reading it back out. Will never prompt the user for Face ID, Touch ID, or password.
107 |     @objc
    |      `- error: Objective-C interoperability is disabled
108 |     public func canAccessKeychain() -> Bool {
109 |         return SecureEnclave.canAccessKeychain(with: service, identifier: identifier)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:115:6: error: Objective-C interoperability is disabled
113 |     /// - parameter key: A Key that can be used to retrieve the `object` from the keychain.
114 |     /// - returns: `false` if the keychain is not accessible.
115 |     @objc(setObject:forKey:)
    |      `- error: Objective-C interoperability is disabled
116 |     @discardableResult
117 |     public func set(object: Data, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:135:6: error: Objective-C interoperability is disabled
133 |     /// - returns: `true` if a value has been set for the given key, `false` otherwise.
134 |     /// - note: Will never prompt the user for Face ID, Touch ID, or password.
135 |     @objc(containsObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
136 |     public func containsObject(forKey key: String) -> Bool {
137 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:145:6: error: Objective-C interoperability is disabled
143 |     /// - parameter key: A Key that can be used to retrieve the `string` from the keychain.
144 |     /// - returns: `true` if the operation succeeded, or `false` if the keychain is not accessible.
145 |     @objc(setString:forKey:)
    |      `- error: Objective-C interoperability is disabled
146 |     @discardableResult
147 |     public func set(string: String, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:164:6: error: Objective-C interoperability is disabled
162 |     /// Removes a key/object pair from the keychain.
163 |     /// - returns: `false` if the keychain is not accessible.
164 |     @objc(removeObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
165 |     @discardableResult
166 |     public func removeObject(forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:174:6: error: Objective-C interoperability is disabled
172 |     /// Removes all key/object pairs accessible by this Valet instance from the keychain.
173 |     /// - returns: `false` if the keychain is not accessible.
174 |     @objc
    |      `- error: Objective-C interoperability is disabled
175 |     @discardableResult
176 |     public func removeAllObjects() -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:187:6: error: Objective-C interoperability is disabled
185 |     /// - returns: Whether the migration succeeded or failed.
186 |     /// - note: The keychain is not modified if a failure occurs.
187 |     @objc(migrateObjectsMatchingQuery:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
188 |     public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) -> MigrationResult {
189 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:199:6: error: Objective-C interoperability is disabled
197 |     /// - returns: Whether the migration succeeded or failed.
198 |     /// - note: The keychain is not modified if a failure occurs.
199 |     @objc(migrateObjectsFromKeychain:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
200 |     public func migrateObjects(from keychain: KeychainQueryConvertible, removeOnCompletion: Bool) -> MigrationResult {
201 |         return migrateObjects(matching: keychain.keychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:225:6: error: Objective-C interoperability is disabled
223 |     /// - parameter identifier: A non-empty string that uniquely identifies a SecureEnclaveValet.
224 |     /// - returns: A SecureEnclaveValet that reads/writes keychain elements with the desired flavor.
225 |     @objc(valetWithIdentifier:accessControl:)
    |      `- error: Objective-C interoperability is disabled
226 |     public class func 🚫swift_valet(with identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
227 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:235:6: error: Objective-C interoperability is disabled
233 |     /// - parameter identifier: A non-empty string that must correspond with the value for keychain-access-groups in your Entitlements file.
234 |     /// - returns: A SecureEnclaveValet that reads/writes keychain elements that can be shared across applications written by the same development team.
235 |     @objc(sharedAccessGroupValetWithIdentifier:accessControl:)
    |      `- error: Objective-C interoperability is disabled
236 |     public class func 🚫swift_sharedAccessGroupValet(with identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
237 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:249:6: error: Objective-C interoperability is disabled
247 |     /// - returns: The data currently stored in the keychain for the provided key. Returns `nil` if no object exists in the keychain for the specified key, or if the keychain is inaccessible.
248 |     @available(swift, obsoleted: 1.0)
249 |     @objc(objectForKey:userPrompt:userCancelled:)
    |      `- error: Objective-C interoperability is disabled
250 |     public func 🚫swift_object(forKey key: String, withPrompt userPrompt: String, userCancelled: UnsafeMutablePointer<ObjCBool>?) -> Data? {
251 |         switch object(forKey: key, withPrompt: userPrompt) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:266:6: error: Objective-C interoperability is disabled
264 |     /// - returns: The string currently stored in the keychain for the provided key. Returns `nil` if no string exists in the keychain for the specified key, or if the keychain is inaccessible.
265 |     @available(swift, obsoleted: 1.0)
266 |     @objc(stringForKey:userPrompt:userCancelled:)
    |      `- error: Objective-C interoperability is disabled
267 |     public func 🚫swift_string(forKey key: String, withPrompt userPrompt: String, userCancelled: UnsafeMutablePointer<ObjCBool>?) -> String? {
268 |         switch string(forKey: key, withPrompt: userPrompt) {
[12/18] Compiling Valet SinglePromptSecureEnclaveValet.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:26:2: error: Objective-C interoperability is disabled
 24 | /// Reads and writes keychain elements that are stored on the Secure Enclave using Accessibility attribute `.whenPasscodeSetThisDeviceOnly`. Accessing these keychain elements will require the user to confirm their presence via Touch ID, Face ID, or passcode entry. If no passcode is set on the device, accessing the keychain via a `SecureEnclaveValet` will fail. Data is removed from the Secure Enclave when the user removes a passcode from the device.
 25 | @available(macOS 10.11, *)
 26 | @objc(VALSecureEnclaveValet)
    |  `- error: Objective-C interoperability is disabled
 27 | public final class SecureEnclaveValet: NSObject {
 28 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:68:47: error: cannot find 'NSMapTable' in scope
 66 |     // MARK: Private Class Properties
 67 |
 68 |     private static let identifierToValetMap = NSMapTable<NSString, SecureEnclaveValet>.strongToWeakObjects()
    |                                               `- error: cannot find 'NSMapTable' in scope
 69 |
 70 |     // MARK: Initialization
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:100:6: error: Objective-C interoperability is disabled
 98 |
 99 |     public let identifier: Identifier
100 |     @objc
    |      `- error: Objective-C interoperability is disabled
101 |     public let accessControl: SecureEnclaveAccessControl
102 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:107:6: error: Objective-C interoperability is disabled
105 |     /// - returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
106 |     /// - note: Determined by writing a value to the keychain and then reading it back out. Will never prompt the user for Face ID, Touch ID, or password.
107 |     @objc
    |      `- error: Objective-C interoperability is disabled
108 |     public func canAccessKeychain() -> Bool {
109 |         return SecureEnclave.canAccessKeychain(with: service, identifier: identifier)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:115:6: error: Objective-C interoperability is disabled
113 |     /// - parameter key: A Key that can be used to retrieve the `object` from the keychain.
114 |     /// - returns: `false` if the keychain is not accessible.
115 |     @objc(setObject:forKey:)
    |      `- error: Objective-C interoperability is disabled
116 |     @discardableResult
117 |     public func set(object: Data, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:135:6: error: Objective-C interoperability is disabled
133 |     /// - returns: `true` if a value has been set for the given key, `false` otherwise.
134 |     /// - note: Will never prompt the user for Face ID, Touch ID, or password.
135 |     @objc(containsObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
136 |     public func containsObject(forKey key: String) -> Bool {
137 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:145:6: error: Objective-C interoperability is disabled
143 |     /// - parameter key: A Key that can be used to retrieve the `string` from the keychain.
144 |     /// - returns: `true` if the operation succeeded, or `false` if the keychain is not accessible.
145 |     @objc(setString:forKey:)
    |      `- error: Objective-C interoperability is disabled
146 |     @discardableResult
147 |     public func set(string: String, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:164:6: error: Objective-C interoperability is disabled
162 |     /// Removes a key/object pair from the keychain.
163 |     /// - returns: `false` if the keychain is not accessible.
164 |     @objc(removeObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
165 |     @discardableResult
166 |     public func removeObject(forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:174:6: error: Objective-C interoperability is disabled
172 |     /// Removes all key/object pairs accessible by this Valet instance from the keychain.
173 |     /// - returns: `false` if the keychain is not accessible.
174 |     @objc
    |      `- error: Objective-C interoperability is disabled
175 |     @discardableResult
176 |     public func removeAllObjects() -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:187:6: error: Objective-C interoperability is disabled
185 |     /// - returns: Whether the migration succeeded or failed.
186 |     /// - note: The keychain is not modified if a failure occurs.
187 |     @objc(migrateObjectsMatchingQuery:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
188 |     public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) -> MigrationResult {
189 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:199:6: error: Objective-C interoperability is disabled
197 |     /// - returns: Whether the migration succeeded or failed.
198 |     /// - note: The keychain is not modified if a failure occurs.
199 |     @objc(migrateObjectsFromKeychain:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
200 |     public func migrateObjects(from keychain: KeychainQueryConvertible, removeOnCompletion: Bool) -> MigrationResult {
201 |         return migrateObjects(matching: keychain.keychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:225:6: error: Objective-C interoperability is disabled
223 |     /// - parameter identifier: A non-empty string that uniquely identifies a SecureEnclaveValet.
224 |     /// - returns: A SecureEnclaveValet that reads/writes keychain elements with the desired flavor.
225 |     @objc(valetWithIdentifier:accessControl:)
    |      `- error: Objective-C interoperability is disabled
226 |     public class func 🚫swift_valet(with identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
227 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:235:6: error: Objective-C interoperability is disabled
233 |     /// - parameter identifier: A non-empty string that must correspond with the value for keychain-access-groups in your Entitlements file.
234 |     /// - returns: A SecureEnclaveValet that reads/writes keychain elements that can be shared across applications written by the same development team.
235 |     @objc(sharedAccessGroupValetWithIdentifier:accessControl:)
    |      `- error: Objective-C interoperability is disabled
236 |     public class func 🚫swift_sharedAccessGroupValet(with identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
237 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:249:6: error: Objective-C interoperability is disabled
247 |     /// - returns: The data currently stored in the keychain for the provided key. Returns `nil` if no object exists in the keychain for the specified key, or if the keychain is inaccessible.
248 |     @available(swift, obsoleted: 1.0)
249 |     @objc(objectForKey:userPrompt:userCancelled:)
    |      `- error: Objective-C interoperability is disabled
250 |     public func 🚫swift_object(forKey key: String, withPrompt userPrompt: String, userCancelled: UnsafeMutablePointer<ObjCBool>?) -> Data? {
251 |         switch object(forKey: key, withPrompt: userPrompt) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:266:6: error: Objective-C interoperability is disabled
264 |     /// - returns: The string currently stored in the keychain for the provided key. Returns `nil` if no string exists in the keychain for the specified key, or if the keychain is inaccessible.
265 |     @available(swift, obsoleted: 1.0)
266 |     @objc(stringForKey:userPrompt:userCancelled:)
    |      `- error: Objective-C interoperability is disabled
267 |     public func 🚫swift_string(forKey key: String, withPrompt userPrompt: String, userCancelled: UnsafeMutablePointer<ObjCBool>?) -> String? {
268 |         switch string(forKey: key, withPrompt: userPrompt) {
[13/20] Compiling Valet ErrorHandler.swift
[14/20] Compiling Valet Identifier.swift
[15/20] Compiling Valet SecItem.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:39:20: error: cannot find type 'OSStatus' in scope
 37 |     internal enum DataResult<SuccessType> {
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 40 |
 41 |         var value: SuccessType? {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:20: error: cannot find type 'OSStatus' in scope
 53 |     internal enum Result {
 54 |         case success
 55 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 56 |
 57 |         var didSucceed: Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:73:21: error: cannot find type 'CFString' in scope
 71 |     /// Programatically grab the required prefix for the shared access group (i.e. Bundle Seed ID). The value for the kSecAttrAccessGroup key in queries for data that is shared between apps must be of the format bundleSeedID.sharedAccessGroup. For more information on the Bundle Seed ID, see https://developer.apple.com/library/ios/qa/qa1713/_index.html
 72 |     internal static var sharedAccessGroupPrefix: String {
 73 |         var query: [CFString : Any] = [
    |                     `- error: cannot find type 'CFString' in scope
 74 |             kSecClass : kSecClassGenericPassword,
 75 |             kSecAttrAccount : "SharedAccessGroupAlwaysAccessiblePrefixPlaceholder",
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:83:19: error: cannot find 'kSecUseDataProtectionKeychain' in scope
 81 |             // Add kSecUseDataProtectionKeychain to the query to ensure we can retrieve the shared access group prefix.
 82 |             #if swift(>=5.1)
 83 |             query[kSecUseDataProtectionKeychain] = true
    |                   `- error: cannot find 'kSecUseDataProtectionKeychain' in scope
 84 |             #else
 85 |             query["nleg" as CFString] = true // kSecUseDataProtectionKeychain for Xcode 9 and Xcode 10 compatibility.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:95:22: error: cannot find 'SecItemCopyMatching' in scope
 93 |
 94 |         var result: AnyObject? = nil
 95 |         var status = SecItemCopyMatching(query as CFDictionary, &result)
    |                      `- error: cannot find 'SecItemCopyMatching' in scope
 96 |
 97 |         if status == errSecItemNotFound {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:95:51: error: cannot find type 'CFDictionary' in scope
 93 |
 94 |         var result: AnyObject? = nil
 95 |         var status = SecItemCopyMatching(query as CFDictionary, &result)
    |                                                   `- error: cannot find type 'CFDictionary' in scope
 96 |
 97 |         if status == errSecItemNotFound {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:97:22: error: cannot find 'errSecItemNotFound' in scope
 95 |         var status = SecItemCopyMatching(query as CFDictionary, &result)
 96 |
 97 |         if status == errSecItemNotFound {
    |                      `- error: cannot find 'errSecItemNotFound' in scope
 98 |             status = SecItemAdd(query as CFDictionary, &result)
 99 |         }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:98:22: error: cannot find 'SecItemAdd' in scope
 96 |
 97 |         if status == errSecItemNotFound {
 98 |             status = SecItemAdd(query as CFDictionary, &result)
    |                      `- error: cannot find 'SecItemAdd' in scope
 99 |         }
100 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:98:42: error: cannot find type 'CFDictionary' in scope
 96 |
 97 |         if status == errSecItemNotFound {
 98 |             status = SecItemAdd(query as CFDictionary, &result)
    |                                          `- error: cannot find type 'CFDictionary' in scope
 99 |         }
100 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:101:25: error: cannot find 'errSecSuccess' in scope
 99 |         }
100 |
101 |         guard status == errSecSuccess, let queryResult = result as? [CFString : AnyHashable], let accessGroup = queryResult[kSecAttrAccessGroup] as? String else {
    |                         `- error: cannot find 'errSecSuccess' in scope
102 |             ErrorHandler.assertionFailure("Could not find shared access group prefix.")
103 |             // We should always be able to access the shared access group prefix because the accessibility of the above keychain data is set to `always`.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:101:70: error: cannot find type 'CFString' in scope
 99 |         }
100 |
101 |         guard status == errSecSuccess, let queryResult = result as? [CFString : AnyHashable], let accessGroup = queryResult[kSecAttrAccessGroup] as? String else {
    |                                                                      `- error: cannot find type 'CFString' in scope
102 |             ErrorHandler.assertionFailure("Could not find shared access group prefix.")
103 |             // We should always be able to access the shared access group prefix because the accessibility of the above keychain data is set to `always`.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:101:125: error: cannot find 'kSecAttrAccessGroup' in scope
 99 |         }
100 |
101 |         guard status == errSecSuccess, let queryResult = result as? [CFString : AnyHashable], let accessGroup = queryResult[kSecAttrAccessGroup] as? String else {
    |                                                                                                                             `- error: cannot find 'kSecAttrAccessGroup' in scope
102 |             ErrorHandler.assertionFailure("Could not find shared access group prefix.")
103 |             // We should always be able to access the shared access group prefix because the accessibility of the above keychain data is set to `always`.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:126:27: error: cannot find 'errSecParam' in scope
124 |         guard query.count > 0 else {
125 |             ErrorHandler.assertionFailure("Must provide a query with at least one item")
126 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
127 |         }
128 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:129:22: error: cannot find 'errSecNotAvailable' in scope
127 |         }
128 |
129 |         var status = errSecNotAvailable
    |                      `- error: cannot find 'errSecNotAvailable' in scope
130 |         var result: AnyObject? = nil
131 |         execute(in: secItemLock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:132:22: error: cannot find 'SecItemCopyMatching' in scope
130 |         var result: AnyObject? = nil
131 |         execute(in: secItemLock) {
132 |             status = SecItemCopyMatching(query as CFDictionary, &result)
    |                      `- error: cannot find 'SecItemCopyMatching' in scope
133 |         }
134 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:132:51: error: cannot find type 'CFDictionary' in scope
130 |         var result: AnyObject? = nil
131 |         execute(in: secItemLock) {
132 |             status = SecItemCopyMatching(query as CFDictionary, &result)
    |                                                   `- error: cannot find type 'CFDictionary' in scope
133 |         }
134 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:135:22: error: cannot find 'errSecSuccess' in scope
133 |         }
134 |
135 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
136 |             if let result = result as? DesiredType {
137 |                 return .success(result)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:142:31: error: cannot find 'errSecItemNotFound' in scope
140 |                 // The query failed to pull out a value object of the desired type, but did find metadata matching this query.
141 |                 // This can happen because either the query didn't ask for return data via [kSecReturnData : true], or because a metadata-only item existed in the keychain.
142 |                 return .error(errSecItemNotFound)
    |                               `- error: cannot find 'errSecItemNotFound' in scope
143 |             }
144 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:146:43: error: cannot find 'errSecMissingEntitlement' in scope
144 |
145 |         } else {
146 |             ErrorHandler.assert(status != errSecMissingEntitlement, "A 'Missing Entitlements' error occurred. This is likely due to an Apple Keychain bug. As a workaround try running on a device that is not attached to a debugger.\n\nMore information: https://forums.developer.apple.com/thread/4743")
    |                                           `- error: cannot find 'errSecMissingEntitlement' in scope
147 |
148 |             return .error(status)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:155:27: error: cannot find 'errSecParam' in scope
153 |         guard query.count > 0 else {
154 |             ErrorHandler.assertionFailure("Must provide a query with at least one item")
155 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
156 |         }
157 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:158:22: error: cannot find 'errSecNotAvailable' in scope
156 |         }
157 |
158 |         var status = errSecNotAvailable
    |                      `- error: cannot find 'errSecNotAvailable' in scope
159 |         execute(in: secItemLock) {
160 |             status = SecItemCopyMatching(query as CFDictionary, nil)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:160:22: error: cannot find 'SecItemCopyMatching' in scope
158 |         var status = errSecNotAvailable
159 |         execute(in: secItemLock) {
160 |             status = SecItemCopyMatching(query as CFDictionary, nil)
    |                      `- error: cannot find 'SecItemCopyMatching' in scope
161 |         }
162 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:160:51: error: cannot find type 'CFDictionary' in scope
158 |         var status = errSecNotAvailable
159 |         execute(in: secItemLock) {
160 |             status = SecItemCopyMatching(query as CFDictionary, nil)
    |                                                   `- error: cannot find type 'CFDictionary' in scope
161 |         }
162 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:160:65: error: 'nil' requires a contextual type
158 |         var status = errSecNotAvailable
159 |         execute(in: secItemLock) {
160 |             status = SecItemCopyMatching(query as CFDictionary, nil)
    |                                                                 `- error: 'nil' requires a contextual type
161 |         }
162 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:163:22: error: cannot find 'errSecSuccess' in scope
161 |         }
162 |
163 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
164 |             return .success
165 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:167:43: error: cannot find 'errSecMissingEntitlement' in scope
165 |
166 |         } else {
167 |             ErrorHandler.assert(status != errSecMissingEntitlement, "A 'Missing Entitlements' error occurred. This is likely due to an Apple Keychain bug. As a workaround try running on a device that is not attached to a debugger.\n\nMore information: https://forums.developer.apple.com/thread/4743")
    |                                           `- error: cannot find 'errSecMissingEntitlement' in scope
168 |
169 |             return .error(status)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:176:27: error: cannot find 'errSecParam' in scope
174 |         guard attributes.count > 0 else {
175 |             ErrorHandler.assertionFailure("Must provide attributes with at least one item")
176 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
177 |         }
178 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:179:22: error: cannot find 'errSecNotAvailable' in scope
177 |         }
178 |
179 |         var status = errSecNotAvailable
    |                      `- error: cannot find 'errSecNotAvailable' in scope
180 |         var result: AnyObject? = nil
181 |         execute(in: secItemLock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:182:22: error: cannot find 'SecItemAdd' in scope
180 |         var result: AnyObject? = nil
181 |         execute(in: secItemLock) {
182 |             status = SecItemAdd(attributes as CFDictionary, &result)
    |                      `- error: cannot find 'SecItemAdd' in scope
183 |         }
184 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:182:47: error: cannot find type 'CFDictionary' in scope
180 |         var result: AnyObject? = nil
181 |         execute(in: secItemLock) {
182 |             status = SecItemAdd(attributes as CFDictionary, &result)
    |                                               `- error: cannot find type 'CFDictionary' in scope
183 |         }
184 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:185:22: error: cannot find 'errSecSuccess' in scope
183 |         }
184 |
185 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
186 |             return .success
187 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:189:43: error: cannot find 'errSecMissingEntitlement' in scope
187 |
188 |         } else {
189 |             ErrorHandler.assert(status != errSecMissingEntitlement, "A 'Missing Entitlements' error occurred. This is likely due to an Apple Keychain bug. As a workaround try running on a device that is not attached to a debugger.\n\nMore information: https://forums.developer.apple.com/thread/4743")
    |                                           `- error: cannot find 'errSecMissingEntitlement' in scope
190 |
191 |             return .error(status)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:198:27: error: cannot find 'errSecParam' in scope
196 |         guard attributes.count > 0 else {
197 |             ErrorHandler.assertionFailure("Must provide attributes with at least one item")
198 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
199 |         }
200 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:203:27: error: cannot find 'errSecParam' in scope
201 |         guard query.count > 0 else {
202 |             ErrorHandler.assertionFailure("Must provide a query with at least one item")
203 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
204 |         }
205 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:206:22: error: cannot find 'errSecNotAvailable' in scope
204 |         }
205 |
206 |         var status = errSecNotAvailable
    |                      `- error: cannot find 'errSecNotAvailable' in scope
207 |         execute(in: secItemLock) {
208 |             status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:208:22: error: cannot find 'SecItemUpdate' in scope
206 |         var status = errSecNotAvailable
207 |         execute(in: secItemLock) {
208 |             status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
    |                      `- error: cannot find 'SecItemUpdate' in scope
209 |         }
210 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:208:45: error: cannot find type 'CFDictionary' in scope
206 |         var status = errSecNotAvailable
207 |         execute(in: secItemLock) {
208 |             status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
    |                                             `- error: cannot find type 'CFDictionary' in scope
209 |         }
210 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:208:73: error: cannot find type 'CFDictionary' in scope
206 |         var status = errSecNotAvailable
207 |         execute(in: secItemLock) {
208 |             status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
    |                                                                         `- error: cannot find type 'CFDictionary' in scope
209 |         }
210 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:211:22: error: cannot find 'errSecSuccess' in scope
209 |         }
210 |
211 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
212 |             return .success
213 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:215:43: error: cannot find 'errSecMissingEntitlement' in scope
213 |
214 |         } else {
215 |             ErrorHandler.assert(status != errSecMissingEntitlement, "A 'Missing Entitlements' error occurred. This is likely due to an Apple Keychain bug. As a workaround try running on a device that is not attached to a debugger.\n\nMore information: https://forums.developer.apple.com/thread/4743")
    |                                           `- error: cannot find 'errSecMissingEntitlement' in scope
216 |
217 |             return .error(status)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:224:27: error: cannot find 'errSecParam' in scope
222 |         guard query.count > 0 else {
223 |             ErrorHandler.assertionFailure("Must provide a query with at least one item")
224 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
225 |         }
226 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:232:22: error: cannot find 'errSecNotAvailable' in scope
230 |             secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
231 |         #endif
232 |         var status = errSecNotAvailable
    |                      `- error: cannot find 'errSecNotAvailable' in scope
233 |         execute(in: secItemLock) {
234 |             status = SecItemDelete(secItemQuery as CFDictionary)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:234:22: error: cannot find 'SecItemDelete' in scope
232 |         var status = errSecNotAvailable
233 |         execute(in: secItemLock) {
234 |             status = SecItemDelete(secItemQuery as CFDictionary)
    |                      `- error: cannot find 'SecItemDelete' in scope
235 |         }
236 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:234:52: error: cannot find type 'CFDictionary' in scope
232 |         var status = errSecNotAvailable
233 |         execute(in: secItemLock) {
234 |             status = SecItemDelete(secItemQuery as CFDictionary)
    |                                                    `- error: cannot find type 'CFDictionary' in scope
235 |         }
236 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:237:22: error: cannot find 'errSecSuccess' in scope
235 |         }
236 |
237 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
238 |             return .success
239 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:241:43: error: cannot find 'errSecMissingEntitlement' in scope
239 |
240 |         } else {
241 |             ErrorHandler.assert(status != errSecMissingEntitlement, "A 'Missing Entitlements' error occurred. This is likely due to an Apple Keychain bug. As a workaround try running on a device that is not attached to a debugger.\n\nMore information: https://forums.developer.apple.com/thread/4743")
    |                                           `- error: cannot find 'errSecMissingEntitlement' in scope
242 |
243 |             return .error(status)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:44:13: error: cannot find 'kSecClass' in scope
 42 |     internal func generateBaseQuery() -> [String : AnyHashable] {
 43 |         var baseQuery: [String : AnyHashable] = [
 44 |             kSecClass as String : kSecClassGenericPassword as String,
    |             `- error: cannot find 'kSecClass' in scope
 45 |             kSecAttrService as String : secService,
 46 |         ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:44:35: error: cannot find 'kSecClassGenericPassword' in scope
 42 |     internal func generateBaseQuery() -> [String : AnyHashable] {
 43 |         var baseQuery: [String : AnyHashable] = [
 44 |             kSecClass as String : kSecClassGenericPassword as String,
    |                                   `- error: cannot find 'kSecClassGenericPassword' in scope
 45 |             kSecAttrService as String : secService,
 46 |         ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:45:13: error: cannot find 'kSecAttrService' in scope
 43 |         var baseQuery: [String : AnyHashable] = [
 44 |             kSecClass as String : kSecClassGenericPassword as String,
 45 |             kSecAttrService as String : secService,
    |             `- error: cannot find 'kSecAttrService' in scope
 46 |         ]
 47 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:50:23: error: cannot find 'kSecUseDataProtectionKeychain' in scope
 48 |         if #available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *) {
 49 |             #if swift(>=5.1)
 50 |             baseQuery[kSecUseDataProtectionKeychain as String] = true
    |                       `- error: cannot find 'kSecUseDataProtectionKeychain' in scope
 51 |             #else
 52 |             baseQuery["nleg"] = true // kSecUseDataProtectionKeychain for Xcode 9 and Xcode 10 compatibility.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:63:23: error: cannot find 'kSecAttrAccessGroup' in scope
 61 |         case let .sharedAccessGroup(identifier, desiredConfiguration):
 62 |             ErrorHandler.assert(!identifier.description.hasPrefix("\(SecItem.sharedAccessGroupPrefix)."), "Do not add the Bundle Seed ID as a prefix to your identifier. Valet prepends this value for you. Your Valet will not be able to access the keychain with the provided configuration")
 63 |             baseQuery[kSecAttrAccessGroup as String] = "\(SecItem.sharedAccessGroupPrefix).\(identifier.description)"
    |                       `- error: cannot find 'kSecAttrAccessGroup' in scope
 64 |             configuration = desiredConfiguration
 65 |         }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:69:23: error: cannot find 'kSecAttrAccessible' in scope
 67 |         switch configuration {
 68 |         case .valet:
 69 |             baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
    |                       `- error: cannot find 'kSecAttrAccessible' in scope
 70 |
 71 |         case .iCloud:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:72:23: error: cannot find 'kSecAttrSynchronizable' in scope
 70 |
 71 |         case .iCloud:
 72 |             baseQuery[kSecAttrSynchronizable as String] = true
    |                       `- error: cannot find 'kSecAttrSynchronizable' in scope
 73 |             baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
 74 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:73:23: error: cannot find 'kSecAttrAccessible' in scope
 71 |         case .iCloud:
 72 |             baseQuery[kSecAttrSynchronizable as String] = true
 73 |             baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
    |                       `- error: cannot find 'kSecAttrAccessible' in scope
 74 |
 75 |         case let .secureEnclave(desiredAccessControl),
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:78:23: error: cannot find 'kSecAttrAccessControl' in scope
 76 |              let .singlePromptSecureEnclave(desiredAccessControl):
 77 |             // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
 78 |             baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
    |                       `- error: cannot find 'kSecAttrAccessControl' in scope
 79 |         }
 80 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:78:58: error: cannot find 'SecAccessControlCreateWithFlags' in scope
 76 |              let .singlePromptSecureEnclave(desiredAccessControl):
 77 |             // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
 78 |             baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
    |                                                          `- error: cannot find 'SecAccessControlCreateWithFlags' in scope
 79 |         }
 80 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:78:95: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
 76 |              let .singlePromptSecureEnclave(desiredAccessControl):
 77 |             // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
 78 |             baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
    |                                                                                               `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
 79 |         }
 80 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift:73:36: error: cannot find type 'SecAccessControlCreateFlags' in scope
 71 |     // MARK: Internal Properties
 72 |
 73 |     internal var secAccessControl: SecAccessControlCreateFlags {
    |                                    `- error: cannot find type 'SecAccessControlCreateFlags' in scope
 74 |         switch self {
 75 |         case .userPresence:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:78:90: error: 'nil' requires a contextual type
 76 |              let .singlePromptSecureEnclave(desiredAccessControl):
 77 |             // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
 78 |             baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
    |                                                                                          `- error: 'nil' requires a contextual type
 79 |         }
 80 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:78:183: error: 'nil' requires a contextual type
 76 |              let .singlePromptSecureEnclave(desiredAccessControl):
 77 |             // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
 78 |             baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
    |                                                                                                                                                                                       `- error: 'nil' requires a contextual type
 79 |         }
 80 |
[16/20] Compiling Valet Service.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:39:20: error: cannot find type 'OSStatus' in scope
 37 |     internal enum DataResult<SuccessType> {
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 40 |
 41 |         var value: SuccessType? {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:20: error: cannot find type 'OSStatus' in scope
 53 |     internal enum Result {
 54 |         case success
 55 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 56 |
 57 |         var didSucceed: Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:73:21: error: cannot find type 'CFString' in scope
 71 |     /// Programatically grab the required prefix for the shared access group (i.e. Bundle Seed ID). The value for the kSecAttrAccessGroup key in queries for data that is shared between apps must be of the format bundleSeedID.sharedAccessGroup. For more information on the Bundle Seed ID, see https://developer.apple.com/library/ios/qa/qa1713/_index.html
 72 |     internal static var sharedAccessGroupPrefix: String {
 73 |         var query: [CFString : Any] = [
    |                     `- error: cannot find type 'CFString' in scope
 74 |             kSecClass : kSecClassGenericPassword,
 75 |             kSecAttrAccount : "SharedAccessGroupAlwaysAccessiblePrefixPlaceholder",
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:83:19: error: cannot find 'kSecUseDataProtectionKeychain' in scope
 81 |             // Add kSecUseDataProtectionKeychain to the query to ensure we can retrieve the shared access group prefix.
 82 |             #if swift(>=5.1)
 83 |             query[kSecUseDataProtectionKeychain] = true
    |                   `- error: cannot find 'kSecUseDataProtectionKeychain' in scope
 84 |             #else
 85 |             query["nleg" as CFString] = true // kSecUseDataProtectionKeychain for Xcode 9 and Xcode 10 compatibility.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:95:22: error: cannot find 'SecItemCopyMatching' in scope
 93 |
 94 |         var result: AnyObject? = nil
 95 |         var status = SecItemCopyMatching(query as CFDictionary, &result)
    |                      `- error: cannot find 'SecItemCopyMatching' in scope
 96 |
 97 |         if status == errSecItemNotFound {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:95:51: error: cannot find type 'CFDictionary' in scope
 93 |
 94 |         var result: AnyObject? = nil
 95 |         var status = SecItemCopyMatching(query as CFDictionary, &result)
    |                                                   `- error: cannot find type 'CFDictionary' in scope
 96 |
 97 |         if status == errSecItemNotFound {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:97:22: error: cannot find 'errSecItemNotFound' in scope
 95 |         var status = SecItemCopyMatching(query as CFDictionary, &result)
 96 |
 97 |         if status == errSecItemNotFound {
    |                      `- error: cannot find 'errSecItemNotFound' in scope
 98 |             status = SecItemAdd(query as CFDictionary, &result)
 99 |         }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:98:22: error: cannot find 'SecItemAdd' in scope
 96 |
 97 |         if status == errSecItemNotFound {
 98 |             status = SecItemAdd(query as CFDictionary, &result)
    |                      `- error: cannot find 'SecItemAdd' in scope
 99 |         }
100 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:98:42: error: cannot find type 'CFDictionary' in scope
 96 |
 97 |         if status == errSecItemNotFound {
 98 |             status = SecItemAdd(query as CFDictionary, &result)
    |                                          `- error: cannot find type 'CFDictionary' in scope
 99 |         }
100 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:101:25: error: cannot find 'errSecSuccess' in scope
 99 |         }
100 |
101 |         guard status == errSecSuccess, let queryResult = result as? [CFString : AnyHashable], let accessGroup = queryResult[kSecAttrAccessGroup] as? String else {
    |                         `- error: cannot find 'errSecSuccess' in scope
102 |             ErrorHandler.assertionFailure("Could not find shared access group prefix.")
103 |             // We should always be able to access the shared access group prefix because the accessibility of the above keychain data is set to `always`.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:101:70: error: cannot find type 'CFString' in scope
 99 |         }
100 |
101 |         guard status == errSecSuccess, let queryResult = result as? [CFString : AnyHashable], let accessGroup = queryResult[kSecAttrAccessGroup] as? String else {
    |                                                                      `- error: cannot find type 'CFString' in scope
102 |             ErrorHandler.assertionFailure("Could not find shared access group prefix.")
103 |             // We should always be able to access the shared access group prefix because the accessibility of the above keychain data is set to `always`.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:101:125: error: cannot find 'kSecAttrAccessGroup' in scope
 99 |         }
100 |
101 |         guard status == errSecSuccess, let queryResult = result as? [CFString : AnyHashable], let accessGroup = queryResult[kSecAttrAccessGroup] as? String else {
    |                                                                                                                             `- error: cannot find 'kSecAttrAccessGroup' in scope
102 |             ErrorHandler.assertionFailure("Could not find shared access group prefix.")
103 |             // We should always be able to access the shared access group prefix because the accessibility of the above keychain data is set to `always`.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:126:27: error: cannot find 'errSecParam' in scope
124 |         guard query.count > 0 else {
125 |             ErrorHandler.assertionFailure("Must provide a query with at least one item")
126 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
127 |         }
128 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:129:22: error: cannot find 'errSecNotAvailable' in scope
127 |         }
128 |
129 |         var status = errSecNotAvailable
    |                      `- error: cannot find 'errSecNotAvailable' in scope
130 |         var result: AnyObject? = nil
131 |         execute(in: secItemLock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:132:22: error: cannot find 'SecItemCopyMatching' in scope
130 |         var result: AnyObject? = nil
131 |         execute(in: secItemLock) {
132 |             status = SecItemCopyMatching(query as CFDictionary, &result)
    |                      `- error: cannot find 'SecItemCopyMatching' in scope
133 |         }
134 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:132:51: error: cannot find type 'CFDictionary' in scope
130 |         var result: AnyObject? = nil
131 |         execute(in: secItemLock) {
132 |             status = SecItemCopyMatching(query as CFDictionary, &result)
    |                                                   `- error: cannot find type 'CFDictionary' in scope
133 |         }
134 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:135:22: error: cannot find 'errSecSuccess' in scope
133 |         }
134 |
135 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
136 |             if let result = result as? DesiredType {
137 |                 return .success(result)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:142:31: error: cannot find 'errSecItemNotFound' in scope
140 |                 // The query failed to pull out a value object of the desired type, but did find metadata matching this query.
141 |                 // This can happen because either the query didn't ask for return data via [kSecReturnData : true], or because a metadata-only item existed in the keychain.
142 |                 return .error(errSecItemNotFound)
    |                               `- error: cannot find 'errSecItemNotFound' in scope
143 |             }
144 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:146:43: error: cannot find 'errSecMissingEntitlement' in scope
144 |
145 |         } else {
146 |             ErrorHandler.assert(status != errSecMissingEntitlement, "A 'Missing Entitlements' error occurred. This is likely due to an Apple Keychain bug. As a workaround try running on a device that is not attached to a debugger.\n\nMore information: https://forums.developer.apple.com/thread/4743")
    |                                           `- error: cannot find 'errSecMissingEntitlement' in scope
147 |
148 |             return .error(status)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:155:27: error: cannot find 'errSecParam' in scope
153 |         guard query.count > 0 else {
154 |             ErrorHandler.assertionFailure("Must provide a query with at least one item")
155 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
156 |         }
157 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:158:22: error: cannot find 'errSecNotAvailable' in scope
156 |         }
157 |
158 |         var status = errSecNotAvailable
    |                      `- error: cannot find 'errSecNotAvailable' in scope
159 |         execute(in: secItemLock) {
160 |             status = SecItemCopyMatching(query as CFDictionary, nil)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:160:22: error: cannot find 'SecItemCopyMatching' in scope
158 |         var status = errSecNotAvailable
159 |         execute(in: secItemLock) {
160 |             status = SecItemCopyMatching(query as CFDictionary, nil)
    |                      `- error: cannot find 'SecItemCopyMatching' in scope
161 |         }
162 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:160:51: error: cannot find type 'CFDictionary' in scope
158 |         var status = errSecNotAvailable
159 |         execute(in: secItemLock) {
160 |             status = SecItemCopyMatching(query as CFDictionary, nil)
    |                                                   `- error: cannot find type 'CFDictionary' in scope
161 |         }
162 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:160:65: error: 'nil' requires a contextual type
158 |         var status = errSecNotAvailable
159 |         execute(in: secItemLock) {
160 |             status = SecItemCopyMatching(query as CFDictionary, nil)
    |                                                                 `- error: 'nil' requires a contextual type
161 |         }
162 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:163:22: error: cannot find 'errSecSuccess' in scope
161 |         }
162 |
163 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
164 |             return .success
165 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:167:43: error: cannot find 'errSecMissingEntitlement' in scope
165 |
166 |         } else {
167 |             ErrorHandler.assert(status != errSecMissingEntitlement, "A 'Missing Entitlements' error occurred. This is likely due to an Apple Keychain bug. As a workaround try running on a device that is not attached to a debugger.\n\nMore information: https://forums.developer.apple.com/thread/4743")
    |                                           `- error: cannot find 'errSecMissingEntitlement' in scope
168 |
169 |             return .error(status)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:176:27: error: cannot find 'errSecParam' in scope
174 |         guard attributes.count > 0 else {
175 |             ErrorHandler.assertionFailure("Must provide attributes with at least one item")
176 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
177 |         }
178 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:179:22: error: cannot find 'errSecNotAvailable' in scope
177 |         }
178 |
179 |         var status = errSecNotAvailable
    |                      `- error: cannot find 'errSecNotAvailable' in scope
180 |         var result: AnyObject? = nil
181 |         execute(in: secItemLock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:182:22: error: cannot find 'SecItemAdd' in scope
180 |         var result: AnyObject? = nil
181 |         execute(in: secItemLock) {
182 |             status = SecItemAdd(attributes as CFDictionary, &result)
    |                      `- error: cannot find 'SecItemAdd' in scope
183 |         }
184 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:182:47: error: cannot find type 'CFDictionary' in scope
180 |         var result: AnyObject? = nil
181 |         execute(in: secItemLock) {
182 |             status = SecItemAdd(attributes as CFDictionary, &result)
    |                                               `- error: cannot find type 'CFDictionary' in scope
183 |         }
184 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:185:22: error: cannot find 'errSecSuccess' in scope
183 |         }
184 |
185 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
186 |             return .success
187 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:189:43: error: cannot find 'errSecMissingEntitlement' in scope
187 |
188 |         } else {
189 |             ErrorHandler.assert(status != errSecMissingEntitlement, "A 'Missing Entitlements' error occurred. This is likely due to an Apple Keychain bug. As a workaround try running on a device that is not attached to a debugger.\n\nMore information: https://forums.developer.apple.com/thread/4743")
    |                                           `- error: cannot find 'errSecMissingEntitlement' in scope
190 |
191 |             return .error(status)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:198:27: error: cannot find 'errSecParam' in scope
196 |         guard attributes.count > 0 else {
197 |             ErrorHandler.assertionFailure("Must provide attributes with at least one item")
198 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
199 |         }
200 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:203:27: error: cannot find 'errSecParam' in scope
201 |         guard query.count > 0 else {
202 |             ErrorHandler.assertionFailure("Must provide a query with at least one item")
203 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
204 |         }
205 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:206:22: error: cannot find 'errSecNotAvailable' in scope
204 |         }
205 |
206 |         var status = errSecNotAvailable
    |                      `- error: cannot find 'errSecNotAvailable' in scope
207 |         execute(in: secItemLock) {
208 |             status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:208:22: error: cannot find 'SecItemUpdate' in scope
206 |         var status = errSecNotAvailable
207 |         execute(in: secItemLock) {
208 |             status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
    |                      `- error: cannot find 'SecItemUpdate' in scope
209 |         }
210 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:208:45: error: cannot find type 'CFDictionary' in scope
206 |         var status = errSecNotAvailable
207 |         execute(in: secItemLock) {
208 |             status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
    |                                             `- error: cannot find type 'CFDictionary' in scope
209 |         }
210 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:208:73: error: cannot find type 'CFDictionary' in scope
206 |         var status = errSecNotAvailable
207 |         execute(in: secItemLock) {
208 |             status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
    |                                                                         `- error: cannot find type 'CFDictionary' in scope
209 |         }
210 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:211:22: error: cannot find 'errSecSuccess' in scope
209 |         }
210 |
211 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
212 |             return .success
213 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:215:43: error: cannot find 'errSecMissingEntitlement' in scope
213 |
214 |         } else {
215 |             ErrorHandler.assert(status != errSecMissingEntitlement, "A 'Missing Entitlements' error occurred. This is likely due to an Apple Keychain bug. As a workaround try running on a device that is not attached to a debugger.\n\nMore information: https://forums.developer.apple.com/thread/4743")
    |                                           `- error: cannot find 'errSecMissingEntitlement' in scope
216 |
217 |             return .error(status)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:224:27: error: cannot find 'errSecParam' in scope
222 |         guard query.count > 0 else {
223 |             ErrorHandler.assertionFailure("Must provide a query with at least one item")
224 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
225 |         }
226 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:232:22: error: cannot find 'errSecNotAvailable' in scope
230 |             secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
231 |         #endif
232 |         var status = errSecNotAvailable
    |                      `- error: cannot find 'errSecNotAvailable' in scope
233 |         execute(in: secItemLock) {
234 |             status = SecItemDelete(secItemQuery as CFDictionary)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:234:22: error: cannot find 'SecItemDelete' in scope
232 |         var status = errSecNotAvailable
233 |         execute(in: secItemLock) {
234 |             status = SecItemDelete(secItemQuery as CFDictionary)
    |                      `- error: cannot find 'SecItemDelete' in scope
235 |         }
236 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:234:52: error: cannot find type 'CFDictionary' in scope
232 |         var status = errSecNotAvailable
233 |         execute(in: secItemLock) {
234 |             status = SecItemDelete(secItemQuery as CFDictionary)
    |                                                    `- error: cannot find type 'CFDictionary' in scope
235 |         }
236 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:237:22: error: cannot find 'errSecSuccess' in scope
235 |         }
236 |
237 |         if status == errSecSuccess {
    |                      `- error: cannot find 'errSecSuccess' in scope
238 |             return .success
239 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:241:43: error: cannot find 'errSecMissingEntitlement' in scope
239 |
240 |         } else {
241 |             ErrorHandler.assert(status != errSecMissingEntitlement, "A 'Missing Entitlements' error occurred. This is likely due to an Apple Keychain bug. As a workaround try running on a device that is not attached to a debugger.\n\nMore information: https://forums.developer.apple.com/thread/4743")
    |                                           `- error: cannot find 'errSecMissingEntitlement' in scope
242 |
243 |             return .error(status)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:44:13: error: cannot find 'kSecClass' in scope
 42 |     internal func generateBaseQuery() -> [String : AnyHashable] {
 43 |         var baseQuery: [String : AnyHashable] = [
 44 |             kSecClass as String : kSecClassGenericPassword as String,
    |             `- error: cannot find 'kSecClass' in scope
 45 |             kSecAttrService as String : secService,
 46 |         ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:44:35: error: cannot find 'kSecClassGenericPassword' in scope
 42 |     internal func generateBaseQuery() -> [String : AnyHashable] {
 43 |         var baseQuery: [String : AnyHashable] = [
 44 |             kSecClass as String : kSecClassGenericPassword as String,
    |                                   `- error: cannot find 'kSecClassGenericPassword' in scope
 45 |             kSecAttrService as String : secService,
 46 |         ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:45:13: error: cannot find 'kSecAttrService' in scope
 43 |         var baseQuery: [String : AnyHashable] = [
 44 |             kSecClass as String : kSecClassGenericPassword as String,
 45 |             kSecAttrService as String : secService,
    |             `- error: cannot find 'kSecAttrService' in scope
 46 |         ]
 47 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:50:23: error: cannot find 'kSecUseDataProtectionKeychain' in scope
 48 |         if #available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *) {
 49 |             #if swift(>=5.1)
 50 |             baseQuery[kSecUseDataProtectionKeychain as String] = true
    |                       `- error: cannot find 'kSecUseDataProtectionKeychain' in scope
 51 |             #else
 52 |             baseQuery["nleg"] = true // kSecUseDataProtectionKeychain for Xcode 9 and Xcode 10 compatibility.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:63:23: error: cannot find 'kSecAttrAccessGroup' in scope
 61 |         case let .sharedAccessGroup(identifier, desiredConfiguration):
 62 |             ErrorHandler.assert(!identifier.description.hasPrefix("\(SecItem.sharedAccessGroupPrefix)."), "Do not add the Bundle Seed ID as a prefix to your identifier. Valet prepends this value for you. Your Valet will not be able to access the keychain with the provided configuration")
 63 |             baseQuery[kSecAttrAccessGroup as String] = "\(SecItem.sharedAccessGroupPrefix).\(identifier.description)"
    |                       `- error: cannot find 'kSecAttrAccessGroup' in scope
 64 |             configuration = desiredConfiguration
 65 |         }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:69:23: error: cannot find 'kSecAttrAccessible' in scope
 67 |         switch configuration {
 68 |         case .valet:
 69 |             baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
    |                       `- error: cannot find 'kSecAttrAccessible' in scope
 70 |
 71 |         case .iCloud:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:72:23: error: cannot find 'kSecAttrSynchronizable' in scope
 70 |
 71 |         case .iCloud:
 72 |             baseQuery[kSecAttrSynchronizable as String] = true
    |                       `- error: cannot find 'kSecAttrSynchronizable' in scope
 73 |             baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
 74 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:73:23: error: cannot find 'kSecAttrAccessible' in scope
 71 |         case .iCloud:
 72 |             baseQuery[kSecAttrSynchronizable as String] = true
 73 |             baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
    |                       `- error: cannot find 'kSecAttrAccessible' in scope
 74 |
 75 |         case let .secureEnclave(desiredAccessControl),
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:78:23: error: cannot find 'kSecAttrAccessControl' in scope
 76 |              let .singlePromptSecureEnclave(desiredAccessControl):
 77 |             // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
 78 |             baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
    |                       `- error: cannot find 'kSecAttrAccessControl' in scope
 79 |         }
 80 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:78:58: error: cannot find 'SecAccessControlCreateWithFlags' in scope
 76 |              let .singlePromptSecureEnclave(desiredAccessControl):
 77 |             // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
 78 |             baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
    |                                                          `- error: cannot find 'SecAccessControlCreateWithFlags' in scope
 79 |         }
 80 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:78:95: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
 76 |              let .singlePromptSecureEnclave(desiredAccessControl):
 77 |             // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
 78 |             baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
    |                                                                                               `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
 79 |         }
 80 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift:73:36: error: cannot find type 'SecAccessControlCreateFlags' in scope
 71 |     // MARK: Internal Properties
 72 |
 73 |     internal var secAccessControl: SecAccessControlCreateFlags {
    |                                    `- error: cannot find type 'SecAccessControlCreateFlags' in scope
 74 |         switch self {
 75 |         case .userPresence:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:78:90: error: 'nil' requires a contextual type
 76 |              let .singlePromptSecureEnclave(desiredAccessControl):
 77 |             // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
 78 |             baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
    |                                                                                          `- error: 'nil' requires a contextual type
 79 |         }
 80 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:78:183: error: 'nil' requires a contextual type
 76 |              let .singlePromptSecureEnclave(desiredAccessControl):
 77 |             // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
 78 |             baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
    |                                                                                                                                                                                       `- error: 'nil' requires a contextual type
 79 |         }
 80 |
[17/20] Compiling Valet Configuration.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:49:26: error: cannot find 'kSecAttrAccount' in scope
 47 |         } else {
 48 |             var secItemQuery = attributes
 49 |             secItemQuery[kSecAttrAccount as String] = canaryKey
    |                          `- error: cannot find 'kSecAttrAccount' in scope
 50 |             secItemQuery[kSecValueData as String] = Data(canaryValue.utf8)
 51 |             _ = SecItem.add(attributes: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:50:26: error: cannot find 'kSecValueData' in scope
 48 |             var secItemQuery = attributes
 49 |             secItemQuery[kSecAttrAccount as String] = canaryKey
 50 |             secItemQuery[kSecValueData as String] = Data(canaryValue.utf8)
    |                          `- error: cannot find 'kSecValueData' in scope
 51 |             _ = SecItem.add(attributes: secItemQuery)
 52 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:39:20: error: cannot find type 'OSStatus' in scope
 37 |     internal enum DataResult<SuccessType> {
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 40 |
 41 |         var value: SuccessType? {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:65:49: error: cannot find 'errSecItemNotFound' in scope
 63 |                 return SecItem.DataResult.success(string)
 64 |             } else {
 65 |                 return SecItem.DataResult.error(errSecItemNotFound)
    |                                                 `- error: cannot find 'errSecItemNotFound' in scope
 66 |             }
 67 |         case let .error(status):
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:65:32: error: generic parameter 'SuccessType' could not be inferred
 63 |                 return SecItem.DataResult.success(string)
 64 |             } else {
 65 |                 return SecItem.DataResult.error(errSecItemNotFound)
    |                                |- error: generic parameter 'SuccessType' could not be inferred
    |                                `- note: explicitly specify the generic arguments to fix this issue
 66 |             }
 67 |         case let .error(status):
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:37:30: note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 35 |     // MARK: Internal Enum
 36 |
 37 |     internal enum DataResult<SuccessType> {
    |                              `- note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:68:28: error: generic parameter 'SuccessType' could not be inferred
 66 |             }
 67 |         case let .error(status):
 68 |             return SecItem.DataResult.error(status)
    |                            |- error: generic parameter 'SuccessType' could not be inferred
    |                            `- note: explicitly specify the generic arguments to fix this issue
 69 |         }
 70 |     }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:37:30: note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 35 |     // MARK: Internal Enum
 36 |
 37 |     internal enum DataResult<SuccessType> {
    |                              `- note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:75:45: error: cannot find 'errSecParam' in scope
 73 |         guard !key.isEmpty else {
 74 |             ErrorHandler.assertionFailure("Can not set a value with an empty key.")
 75 |             return SecItem.DataResult.error(errSecParam)
    |                                             `- error: cannot find 'errSecParam' in scope
 76 |         }
 77 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:75:28: error: generic parameter 'SuccessType' could not be inferred
 73 |         guard !key.isEmpty else {
 74 |             ErrorHandler.assertionFailure("Can not set a value with an empty key.")
 75 |             return SecItem.DataResult.error(errSecParam)
    |                            |- error: generic parameter 'SuccessType' could not be inferred
    |                            `- note: explicitly specify the generic arguments to fix this issue
 76 |         }
 77 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:37:30: note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 35 |     // MARK: Internal Enum
 36 |
 37 |     internal enum DataResult<SuccessType> {
    |                              `- note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:79:22: error: cannot find 'kSecAttrAccount' in scope
 77 |
 78 |         var secItemQuery = options
 79 |         secItemQuery[kSecAttrAccount as String] = key
    |                      `- error: cannot find 'kSecAttrAccount' in scope
 80 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
 81 |         secItemQuery[kSecReturnData as String] = true
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:80:22: error: cannot find 'kSecMatchLimit' in scope
 78 |         var secItemQuery = options
 79 |         secItemQuery[kSecAttrAccount as String] = key
 80 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
    |                      `- error: cannot find 'kSecMatchLimit' in scope
 81 |         secItemQuery[kSecReturnData as String] = true
 82 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:80:50: error: cannot find 'kSecMatchLimitOne' in scope
 78 |         var secItemQuery = options
 79 |         secItemQuery[kSecAttrAccount as String] = key
 80 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
    |                                                  `- error: cannot find 'kSecMatchLimitOne' in scope
 81 |         secItemQuery[kSecReturnData as String] = true
 82 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:81:22: error: cannot find 'kSecReturnData' in scope
 79 |         secItemQuery[kSecAttrAccount as String] = key
 80 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
 81 |         secItemQuery[kSecReturnData as String] = true
    |                      `- error: cannot find 'kSecReturnData' in scope
 82 |
 83 |         return SecItem.copy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:92:27: error: cannot find 'errSecParam' in scope
 90 |         guard !data.isEmpty else {
 91 |             ErrorHandler.assertionFailure("Can not set an empty value.")
 92 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
 93 |         }
 94 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:20: error: cannot find type 'OSStatus' in scope
 53 |     internal enum Result {
 54 |         case success
 55 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 56 |
 57 |         var didSucceed: Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:101:27: error: cannot find 'errSecParam' in scope
 99 |         guard !key.isEmpty else {
100 |             ErrorHandler.assertionFailure("Can not set a value with an empty key.")
101 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
102 |         }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:106:27: error: cannot find 'errSecParam' in scope
104 |         guard !object.isEmpty else {
105 |             ErrorHandler.assertionFailure("Can not set an empty value.")
106 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
107 |         }
108 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:110:22: error: cannot find 'kSecAttrAccount' in scope
108 |
109 |         var secItemQuery = options
110 |         secItemQuery[kSecAttrAccount as String] = key
    |                      `- error: cannot find 'kSecAttrAccount' in scope
111 |
112 |         #if os(macOS)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:120:52: error: cannot find 'kSecValueData' in scope
118 |
119 |             if case .success = containsObject(forKey: key, options: options) {
120 |                 return SecItem.update(attributes: [kSecValueData as String: object], forItemsMatching: secItemQuery)
    |                                                    `- error: cannot find 'kSecValueData' in scope
121 |             } else {
122 |                 secItemQuery[kSecValueData as String] = object
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:122:30: error: cannot find 'kSecValueData' in scope
120 |                 return SecItem.update(attributes: [kSecValueData as String: object], forItemsMatching: secItemQuery)
121 |             } else {
122 |                 secItemQuery[kSecValueData as String] = object
    |                              `- error: cannot find 'kSecValueData' in scope
123 |                 return SecItem.add(attributes: secItemQuery)
124 |             }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:133:27: error: cannot find 'errSecParam' in scope
131 |         guard !key.isEmpty else {
132 |             ErrorHandler.assertionFailure("Can not set a value with an empty key.")
133 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
134 |         }
135 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:137:22: error: cannot find 'kSecAttrAccount' in scope
135 |
136 |         var secItemQuery = options
137 |         secItemQuery[kSecAttrAccount as String] = key
    |                      `- error: cannot find 'kSecAttrAccount' in scope
138 |
139 |         switch SecItem.deleteItems(matching: secItemQuery) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:145:18: error: cannot find 'errSecInteractionNotAllowed' in scope
143 |         case let .error(status):
144 |             switch status {
145 |             case errSecInteractionNotAllowed, errSecMissingEntitlement:
    |                  `- error: cannot find 'errSecInteractionNotAllowed' in scope
146 |                 return .error(status)
147 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:145:47: error: cannot find 'errSecMissingEntitlement' in scope
143 |         case let .error(status):
144 |             switch status {
145 |             case errSecInteractionNotAllowed, errSecMissingEntitlement:
    |                                               `- error: cannot find 'errSecMissingEntitlement' in scope
146 |                 return .error(status)
147 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:162:18: error: cannot find 'errSecInteractionNotAllowed' in scope
160 |         case let .error(status):
161 |             switch status {
162 |             case errSecInteractionNotAllowed, errSecMissingEntitlement:
    |                  `- error: cannot find 'errSecInteractionNotAllowed' in scope
163 |                 return .error(status)
164 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:162:47: error: cannot find 'errSecMissingEntitlement' in scope
160 |         case let .error(status):
161 |             switch status {
162 |             case errSecInteractionNotAllowed, errSecMissingEntitlement:
    |                                               `- error: cannot find 'errSecMissingEntitlement' in scope
163 |                 return .error(status)
164 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:177:27: error: cannot find 'errSecParam' in scope
175 |         guard !key.isEmpty else {
176 |             ErrorHandler.assertionFailure("Can not set a value with an empty key.")
177 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
178 |         }
179 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:181:22: error: cannot find 'kSecAttrAccount' in scope
179 |
180 |         var secItemQuery = options
181 |         secItemQuery[kSecAttrAccount as String] = key
    |                      `- error: cannot find 'kSecAttrAccount' in scope
182 |
183 |         switch SecItem.containsObject(matching: secItemQuery) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:196:22: error: cannot find 'kSecMatchLimit' in scope
194 |     internal static func allKeys(options: [String: AnyHashable]) -> SecItem.DataResult<Set<String>> {
195 |         var secItemQuery = options
196 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
    |                      `- error: cannot find 'kSecMatchLimit' in scope
197 |         secItemQuery[kSecReturnAttributes as String] = true
198 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:196:50: error: cannot find 'kSecMatchLimitAll' in scope
194 |     internal static func allKeys(options: [String: AnyHashable]) -> SecItem.DataResult<Set<String>> {
195 |         var secItemQuery = options
196 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
    |                                                  `- error: cannot find 'kSecMatchLimitAll' in scope
197 |         secItemQuery[kSecReturnAttributes as String] = true
198 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:197:22: error: cannot find 'kSecReturnAttributes' in scope
195 |         var secItemQuery = options
196 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
197 |         secItemQuery[kSecReturnAttributes as String] = true
    |                      `- error: cannot find 'kSecReturnAttributes' in scope
198 |
199 |         let result: SecItem.DataResult<Any> = SecItem.copy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:202:101: error: cannot find 'kSecAttrAccount' in scope
200 |         switch result {
201 |         case let .success(collection):
202 |             if let singleMatch = collection as? [String : AnyHashable], let singleKey = singleMatch[kSecAttrAccount as String] as? String, singleKey != canaryKey {
    |                                                                                                     `- error: cannot find 'kSecAttrAccount' in scope
203 |                 return SecItem.DataResult.success(Set([singleKey]))
204 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:207:42: error: cannot find 'kSecAttrAccount' in scope
205 |             } else if let multipleMatches = collection as? [[String: AnyHashable]] {
206 |                 return SecItem.DataResult.success(Set(multipleMatches.compactMap({ attributes in
207 |                     let key = attributes[kSecAttrAccount as String] as? String
    |                                          `- error: cannot find 'kSecAttrAccount' in scope
208 |                     return key != canaryKey ? key : nil
209 |                 })))
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:216:28: error: generic parameter 'SuccessType' could not be inferred
214 |
215 |         case let .error(status):
216 |             return SecItem.DataResult.error(status)
    |                            |- error: generic parameter 'SuccessType' could not be inferred
    |                            `- note: explicitly specify the generic arguments to fix this issue
217 |         }
218 |     }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:37:30: note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 35 |     // MARK: Internal Enum
 36 |
 37 |     internal enum DataResult<SuccessType> {
    |                              `- note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:228:21: error: cannot find 'kSecMatchLimit' in scope
226 |         }
227 |
228 |         guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
    |                     `- error: cannot find 'kSecMatchLimit' in scope
229 |             ErrorHandler.assertionFailure("Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.")
230 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:228:74: error: cannot find 'kSecMatchLimitOne' in scope
226 |         }
227 |
228 |         guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
    |                                                                          `- error: cannot find 'kSecMatchLimitOne' in scope
229 |             ErrorHandler.assertionFailure("Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.")
230 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:228:61: error: cannot find type 'CFString' in scope
226 |         }
227 |
228 |         guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
    |                                                             `- error: cannot find type 'CFString' in scope
229 |             ErrorHandler.assertionFailure("Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.")
230 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:233:21: error: cannot find 'kSecReturnData' in scope
231 |         }
232 |
233 |         guard query[kSecReturnData as String] as? Bool != true else {
    |                     `- error: cannot find 'kSecReturnData' in scope
234 |             ErrorHandler.assertionFailure("kSecReturnData is not supported in a migration query.")
235 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:238:21: error: cannot find 'kSecReturnAttributes' in scope
236 |         }
237 |
238 |         guard query[kSecReturnAttributes as String] as? Bool != false else {
    |                     `- error: cannot find 'kSecReturnAttributes' in scope
239 |             ErrorHandler.assertionFailure("Migration requires kSecReturnAttributes to be set to kCFBooleanTrue.")
240 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:243:21: error: cannot find 'kSecReturnRef' in scope
241 |         }
242 |
243 |         guard query[kSecReturnRef as String] as? Bool != true else {
    |                     `- error: cannot find 'kSecReturnRef' in scope
244 |             ErrorHandler.assertionFailure("kSecReturnRef is not supported in a migration query.")
245 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:248:21: error: cannot find 'kSecReturnPersistentRef' in scope
246 |         }
247 |
248 |         guard query[kSecReturnPersistentRef as String] as? Bool != false else {
    |                     `- error: cannot find 'kSecReturnPersistentRef' in scope
249 |             ErrorHandler.assertionFailure("Migration requires kSecReturnPersistentRef to be set to kCFBooleanTrue.")
250 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:253:21: error: cannot find 'kSecClass' in scope
251 |         }
252 |
253 |         guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
    |                     `- error: cannot find 'kSecClass' in scope
254 |             ErrorHandler.assertionFailure("Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.")
255 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:253:69: error: cannot find 'kSecClassGenericPassword' in scope
251 |         }
252 |
253 |         guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
    |                                                                     `- error: cannot find 'kSecClassGenericPassword' in scope
254 |             ErrorHandler.assertionFailure("Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.")
255 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:253:56: error: cannot find type 'CFString' in scope
251 |         }
252 |
253 |         guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
    |                                                        `- error: cannot find type 'CFString' in scope
254 |             ErrorHandler.assertionFailure("Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.")
255 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:258:21: error: cannot find 'kSecAttrAccessControl' in scope
256 |         }
257 |
258 |         guard query[kSecAttrAccessControl as String] == nil else {
    |                     `- error: cannot find 'kSecAttrAccessControl' in scope
259 |             ErrorHandler.assertionFailure("kSecAttrAccessControl is not supported in a migration query. Keychain items can not be migrated en masse from the Secure Enclave.")
260 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:264:22: error: cannot find 'kSecMatchLimit' in scope
262 |
263 |         var secItemQuery = query
264 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
    |                      `- error: cannot find 'kSecMatchLimit' in scope
265 |         secItemQuery[kSecReturnAttributes as String] = true
266 |         secItemQuery[kSecReturnData as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:264:50: error: cannot find 'kSecMatchLimitAll' in scope
262 |
263 |         var secItemQuery = query
264 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
    |                                                  `- error: cannot find 'kSecMatchLimitAll' in scope
265 |         secItemQuery[kSecReturnAttributes as String] = true
266 |         secItemQuery[kSecReturnData as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:265:22: error: cannot find 'kSecReturnAttributes' in scope
263 |         var secItemQuery = query
264 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
265 |         secItemQuery[kSecReturnAttributes as String] = true
    |                      `- error: cannot find 'kSecReturnAttributes' in scope
266 |         secItemQuery[kSecReturnData as String] = false
267 |         secItemQuery[kSecReturnRef as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:266:22: error: cannot find 'kSecReturnData' in scope
264 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
265 |         secItemQuery[kSecReturnAttributes as String] = true
266 |         secItemQuery[kSecReturnData as String] = false
    |                      `- error: cannot find 'kSecReturnData' in scope
267 |         secItemQuery[kSecReturnRef as String] = false
268 |         secItemQuery[kSecReturnPersistentRef as String] = true
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:267:22: error: cannot find 'kSecReturnRef' in scope
265 |         secItemQuery[kSecReturnAttributes as String] = true
266 |         secItemQuery[kSecReturnData as String] = false
267 |         secItemQuery[kSecReturnRef as String] = false
    |                      `- error: cannot find 'kSecReturnRef' in scope
268 |         secItemQuery[kSecReturnPersistentRef as String] = true
269 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:268:22: error: cannot find 'kSecReturnPersistentRef' in scope
266 |         secItemQuery[kSecReturnData as String] = false
267 |         secItemQuery[kSecReturnRef as String] = false
268 |         secItemQuery[kSecReturnPersistentRef as String] = true
    |                      `- error: cannot find 'kSecReturnPersistentRef' in scope
269 |
270 |         let result: SecItem.DataResult<Any> = SecItem.copy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:286:18: error: cannot find 'errSecItemNotFound' in scope
284 |         case let .error(status):
285 |             switch status {
286 |             case errSecItemNotFound:
    |                  `- error: cannot find 'errSecItemNotFound' in scope
287 |                 return .noItemsToMigrateFound
288 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:289:18: error: cannot find 'errSecParam' in scope
287 |                 return .noItemsToMigrateFound
288 |
289 |             case errSecParam:
    |                  `- error: cannot find 'errSecParam' in scope
290 |                 return .invalidQuery
291 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:300:62: error: cannot find 'kSecValuePersistentRef' in scope
298 |         var retrievedItemsToMigrateWithData = [[String : AnyHashable]]()
299 |         for retrievedItem in retrievedItemsToMigrate {
300 |             guard let retrievedPersistentRef = retrievedItem[kSecValuePersistentRef as String] else {
    |                                                              `- error: cannot find 'kSecValuePersistentRef' in scope
301 |                 return .couldNotReadKeychain
302 |             }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:305:17: error: cannot find 'kSecValuePersistentRef' in scope
303 |
304 |             let retrieveDataQuery: [String : AnyHashable] = [
305 |                 kSecValuePersistentRef as String : retrievedPersistentRef,
    |                 `- error: cannot find 'kSecValuePersistentRef' in scope
306 |                 kSecReturnData as String : true
307 |             ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:306:17: error: cannot find 'kSecReturnData' in scope
304 |             let retrieveDataQuery: [String : AnyHashable] = [
305 |                 kSecValuePersistentRef as String : retrievedPersistentRef,
306 |                 kSecReturnData as String : true
    |                 `- error: cannot find 'kSecReturnData' in scope
307 |             ]
308 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:317:48: error: cannot find 'kSecValueData' in scope
315 |
316 |                 var retrievedItemToMigrateWithData = retrievedItem
317 |                 retrievedItemToMigrateWithData[kSecValueData as String] = data
    |                                                `- error: cannot find 'kSecValueData' in scope
318 |                 retrievedItemsToMigrateWithData.append(retrievedItemToMigrateWithData)
319 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:321:30: error: cannot find 'errSecItemNotFound' in scope
319 |
320 |             case let .error(status):
321 |                 if status == errSecItemNotFound {
    |                              `- error: cannot find 'errSecItemNotFound' in scope
322 |                     // It is possible for metadata-only items to exist in the keychain that do not have data associated with them. Ignore this entry.
323 |                     continue
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:334:43: error: cannot find 'kSecAttrAccount' in scope
332 |         var keysToMigrate = Set<String>()
333 |         for keychainEntry in retrievedItemsToMigrateWithData {
334 |             guard let key = keychainEntry[kSecAttrAccount as String] as? String, key != Keychain.canaryKey else {
    |                                           `- error: cannot find 'kSecAttrAccount' in scope
335 |                 // We don't care about this key. Move along.
336 |                 continue
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:347:44: error: cannot find 'kSecValueData' in scope
345 |             }
346 |
347 |             guard let data = keychainEntry[kSecValueData as String] as? Data, !data.isEmpty else {
    |                                            `- error: cannot find 'kSecValueData' in scope
348 |                 return .dataInQueryResultInvalid
349 |             }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:351:125: error: cannot find 'errSecItemNotFound' in scope
349 |             }
350 |
351 |             guard case let .error(status) = Keychain.containsObject(forKey: key, options: destinationAttributes), status == errSecItemNotFound else {
    |                                                                                                                             `- error: cannot find 'errSecItemNotFound' in scope
352 |                 return .keyInQueryResultAlreadyExistsInValet
353 |             }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:368:43: error: cannot find 'kSecAttrAccount' in scope
366 |
367 |         for keychainEntry in retrievedItemsToMigrateWithData {
368 |             guard let key = keychainEntry[kSecAttrAccount as String] as? String else {
    |                                           `- error: cannot find 'kSecAttrAccount' in scope
369 |                 revertMigration()
370 |                 return .keyInQueryResultInvalid
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:373:45: error: cannot find 'kSecValueData' in scope
371 |             }
372 |
373 |             guard let value = keychainEntry[kSecValueData as String] as? Data else {
    |                                             `- error: cannot find 'kSecValueData' in scope
374 |                 revertMigration()
375 |                 return .dataInQueryResultInvalid
[18/20] Compiling Valet Keychain.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:49:26: error: cannot find 'kSecAttrAccount' in scope
 47 |         } else {
 48 |             var secItemQuery = attributes
 49 |             secItemQuery[kSecAttrAccount as String] = canaryKey
    |                          `- error: cannot find 'kSecAttrAccount' in scope
 50 |             secItemQuery[kSecValueData as String] = Data(canaryValue.utf8)
 51 |             _ = SecItem.add(attributes: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:50:26: error: cannot find 'kSecValueData' in scope
 48 |             var secItemQuery = attributes
 49 |             secItemQuery[kSecAttrAccount as String] = canaryKey
 50 |             secItemQuery[kSecValueData as String] = Data(canaryValue.utf8)
    |                          `- error: cannot find 'kSecValueData' in scope
 51 |             _ = SecItem.add(attributes: secItemQuery)
 52 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:39:20: error: cannot find type 'OSStatus' in scope
 37 |     internal enum DataResult<SuccessType> {
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 40 |
 41 |         var value: SuccessType? {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:65:49: error: cannot find 'errSecItemNotFound' in scope
 63 |                 return SecItem.DataResult.success(string)
 64 |             } else {
 65 |                 return SecItem.DataResult.error(errSecItemNotFound)
    |                                                 `- error: cannot find 'errSecItemNotFound' in scope
 66 |             }
 67 |         case let .error(status):
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:65:32: error: generic parameter 'SuccessType' could not be inferred
 63 |                 return SecItem.DataResult.success(string)
 64 |             } else {
 65 |                 return SecItem.DataResult.error(errSecItemNotFound)
    |                                |- error: generic parameter 'SuccessType' could not be inferred
    |                                `- note: explicitly specify the generic arguments to fix this issue
 66 |             }
 67 |         case let .error(status):
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:37:30: note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 35 |     // MARK: Internal Enum
 36 |
 37 |     internal enum DataResult<SuccessType> {
    |                              `- note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:68:28: error: generic parameter 'SuccessType' could not be inferred
 66 |             }
 67 |         case let .error(status):
 68 |             return SecItem.DataResult.error(status)
    |                            |- error: generic parameter 'SuccessType' could not be inferred
    |                            `- note: explicitly specify the generic arguments to fix this issue
 69 |         }
 70 |     }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:37:30: note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 35 |     // MARK: Internal Enum
 36 |
 37 |     internal enum DataResult<SuccessType> {
    |                              `- note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:75:45: error: cannot find 'errSecParam' in scope
 73 |         guard !key.isEmpty else {
 74 |             ErrorHandler.assertionFailure("Can not set a value with an empty key.")
 75 |             return SecItem.DataResult.error(errSecParam)
    |                                             `- error: cannot find 'errSecParam' in scope
 76 |         }
 77 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:75:28: error: generic parameter 'SuccessType' could not be inferred
 73 |         guard !key.isEmpty else {
 74 |             ErrorHandler.assertionFailure("Can not set a value with an empty key.")
 75 |             return SecItem.DataResult.error(errSecParam)
    |                            |- error: generic parameter 'SuccessType' could not be inferred
    |                            `- note: explicitly specify the generic arguments to fix this issue
 76 |         }
 77 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:37:30: note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 35 |     // MARK: Internal Enum
 36 |
 37 |     internal enum DataResult<SuccessType> {
    |                              `- note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:79:22: error: cannot find 'kSecAttrAccount' in scope
 77 |
 78 |         var secItemQuery = options
 79 |         secItemQuery[kSecAttrAccount as String] = key
    |                      `- error: cannot find 'kSecAttrAccount' in scope
 80 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
 81 |         secItemQuery[kSecReturnData as String] = true
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:80:22: error: cannot find 'kSecMatchLimit' in scope
 78 |         var secItemQuery = options
 79 |         secItemQuery[kSecAttrAccount as String] = key
 80 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
    |                      `- error: cannot find 'kSecMatchLimit' in scope
 81 |         secItemQuery[kSecReturnData as String] = true
 82 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:80:50: error: cannot find 'kSecMatchLimitOne' in scope
 78 |         var secItemQuery = options
 79 |         secItemQuery[kSecAttrAccount as String] = key
 80 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
    |                                                  `- error: cannot find 'kSecMatchLimitOne' in scope
 81 |         secItemQuery[kSecReturnData as String] = true
 82 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:81:22: error: cannot find 'kSecReturnData' in scope
 79 |         secItemQuery[kSecAttrAccount as String] = key
 80 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
 81 |         secItemQuery[kSecReturnData as String] = true
    |                      `- error: cannot find 'kSecReturnData' in scope
 82 |
 83 |         return SecItem.copy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:92:27: error: cannot find 'errSecParam' in scope
 90 |         guard !data.isEmpty else {
 91 |             ErrorHandler.assertionFailure("Can not set an empty value.")
 92 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
 93 |         }
 94 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:20: error: cannot find type 'OSStatus' in scope
 53 |     internal enum Result {
 54 |         case success
 55 |         case error(OSStatus)
    |                    `- error: cannot find type 'OSStatus' in scope
 56 |
 57 |         var didSucceed: Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:101:27: error: cannot find 'errSecParam' in scope
 99 |         guard !key.isEmpty else {
100 |             ErrorHandler.assertionFailure("Can not set a value with an empty key.")
101 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
102 |         }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:106:27: error: cannot find 'errSecParam' in scope
104 |         guard !object.isEmpty else {
105 |             ErrorHandler.assertionFailure("Can not set an empty value.")
106 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
107 |         }
108 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:110:22: error: cannot find 'kSecAttrAccount' in scope
108 |
109 |         var secItemQuery = options
110 |         secItemQuery[kSecAttrAccount as String] = key
    |                      `- error: cannot find 'kSecAttrAccount' in scope
111 |
112 |         #if os(macOS)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:120:52: error: cannot find 'kSecValueData' in scope
118 |
119 |             if case .success = containsObject(forKey: key, options: options) {
120 |                 return SecItem.update(attributes: [kSecValueData as String: object], forItemsMatching: secItemQuery)
    |                                                    `- error: cannot find 'kSecValueData' in scope
121 |             } else {
122 |                 secItemQuery[kSecValueData as String] = object
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:122:30: error: cannot find 'kSecValueData' in scope
120 |                 return SecItem.update(attributes: [kSecValueData as String: object], forItemsMatching: secItemQuery)
121 |             } else {
122 |                 secItemQuery[kSecValueData as String] = object
    |                              `- error: cannot find 'kSecValueData' in scope
123 |                 return SecItem.add(attributes: secItemQuery)
124 |             }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:133:27: error: cannot find 'errSecParam' in scope
131 |         guard !key.isEmpty else {
132 |             ErrorHandler.assertionFailure("Can not set a value with an empty key.")
133 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
134 |         }
135 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:137:22: error: cannot find 'kSecAttrAccount' in scope
135 |
136 |         var secItemQuery = options
137 |         secItemQuery[kSecAttrAccount as String] = key
    |                      `- error: cannot find 'kSecAttrAccount' in scope
138 |
139 |         switch SecItem.deleteItems(matching: secItemQuery) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:145:18: error: cannot find 'errSecInteractionNotAllowed' in scope
143 |         case let .error(status):
144 |             switch status {
145 |             case errSecInteractionNotAllowed, errSecMissingEntitlement:
    |                  `- error: cannot find 'errSecInteractionNotAllowed' in scope
146 |                 return .error(status)
147 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:145:47: error: cannot find 'errSecMissingEntitlement' in scope
143 |         case let .error(status):
144 |             switch status {
145 |             case errSecInteractionNotAllowed, errSecMissingEntitlement:
    |                                               `- error: cannot find 'errSecMissingEntitlement' in scope
146 |                 return .error(status)
147 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:162:18: error: cannot find 'errSecInteractionNotAllowed' in scope
160 |         case let .error(status):
161 |             switch status {
162 |             case errSecInteractionNotAllowed, errSecMissingEntitlement:
    |                  `- error: cannot find 'errSecInteractionNotAllowed' in scope
163 |                 return .error(status)
164 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:162:47: error: cannot find 'errSecMissingEntitlement' in scope
160 |         case let .error(status):
161 |             switch status {
162 |             case errSecInteractionNotAllowed, errSecMissingEntitlement:
    |                                               `- error: cannot find 'errSecMissingEntitlement' in scope
163 |                 return .error(status)
164 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:177:27: error: cannot find 'errSecParam' in scope
175 |         guard !key.isEmpty else {
176 |             ErrorHandler.assertionFailure("Can not set a value with an empty key.")
177 |             return .error(errSecParam)
    |                           `- error: cannot find 'errSecParam' in scope
178 |         }
179 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:181:22: error: cannot find 'kSecAttrAccount' in scope
179 |
180 |         var secItemQuery = options
181 |         secItemQuery[kSecAttrAccount as String] = key
    |                      `- error: cannot find 'kSecAttrAccount' in scope
182 |
183 |         switch SecItem.containsObject(matching: secItemQuery) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:196:22: error: cannot find 'kSecMatchLimit' in scope
194 |     internal static func allKeys(options: [String: AnyHashable]) -> SecItem.DataResult<Set<String>> {
195 |         var secItemQuery = options
196 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
    |                      `- error: cannot find 'kSecMatchLimit' in scope
197 |         secItemQuery[kSecReturnAttributes as String] = true
198 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:196:50: error: cannot find 'kSecMatchLimitAll' in scope
194 |     internal static func allKeys(options: [String: AnyHashable]) -> SecItem.DataResult<Set<String>> {
195 |         var secItemQuery = options
196 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
    |                                                  `- error: cannot find 'kSecMatchLimitAll' in scope
197 |         secItemQuery[kSecReturnAttributes as String] = true
198 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:197:22: error: cannot find 'kSecReturnAttributes' in scope
195 |         var secItemQuery = options
196 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
197 |         secItemQuery[kSecReturnAttributes as String] = true
    |                      `- error: cannot find 'kSecReturnAttributes' in scope
198 |
199 |         let result: SecItem.DataResult<Any> = SecItem.copy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:202:101: error: cannot find 'kSecAttrAccount' in scope
200 |         switch result {
201 |         case let .success(collection):
202 |             if let singleMatch = collection as? [String : AnyHashable], let singleKey = singleMatch[kSecAttrAccount as String] as? String, singleKey != canaryKey {
    |                                                                                                     `- error: cannot find 'kSecAttrAccount' in scope
203 |                 return SecItem.DataResult.success(Set([singleKey]))
204 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:207:42: error: cannot find 'kSecAttrAccount' in scope
205 |             } else if let multipleMatches = collection as? [[String: AnyHashable]] {
206 |                 return SecItem.DataResult.success(Set(multipleMatches.compactMap({ attributes in
207 |                     let key = attributes[kSecAttrAccount as String] as? String
    |                                          `- error: cannot find 'kSecAttrAccount' in scope
208 |                     return key != canaryKey ? key : nil
209 |                 })))
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:216:28: error: generic parameter 'SuccessType' could not be inferred
214 |
215 |         case let .error(status):
216 |             return SecItem.DataResult.error(status)
    |                            |- error: generic parameter 'SuccessType' could not be inferred
    |                            `- note: explicitly specify the generic arguments to fix this issue
217 |         }
218 |     }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:37:30: note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 35 |     // MARK: Internal Enum
 36 |
 37 |     internal enum DataResult<SuccessType> {
    |                              `- note: 'SuccessType' declared as parameter to type 'SecItem.DataResult'
 38 |         case success(SuccessType)
 39 |         case error(OSStatus)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:228:21: error: cannot find 'kSecMatchLimit' in scope
226 |         }
227 |
228 |         guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
    |                     `- error: cannot find 'kSecMatchLimit' in scope
229 |             ErrorHandler.assertionFailure("Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.")
230 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:228:74: error: cannot find 'kSecMatchLimitOne' in scope
226 |         }
227 |
228 |         guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
    |                                                                          `- error: cannot find 'kSecMatchLimitOne' in scope
229 |             ErrorHandler.assertionFailure("Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.")
230 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:228:61: error: cannot find type 'CFString' in scope
226 |         }
227 |
228 |         guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
    |                                                             `- error: cannot find type 'CFString' in scope
229 |             ErrorHandler.assertionFailure("Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.")
230 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:233:21: error: cannot find 'kSecReturnData' in scope
231 |         }
232 |
233 |         guard query[kSecReturnData as String] as? Bool != true else {
    |                     `- error: cannot find 'kSecReturnData' in scope
234 |             ErrorHandler.assertionFailure("kSecReturnData is not supported in a migration query.")
235 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:238:21: error: cannot find 'kSecReturnAttributes' in scope
236 |         }
237 |
238 |         guard query[kSecReturnAttributes as String] as? Bool != false else {
    |                     `- error: cannot find 'kSecReturnAttributes' in scope
239 |             ErrorHandler.assertionFailure("Migration requires kSecReturnAttributes to be set to kCFBooleanTrue.")
240 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:243:21: error: cannot find 'kSecReturnRef' in scope
241 |         }
242 |
243 |         guard query[kSecReturnRef as String] as? Bool != true else {
    |                     `- error: cannot find 'kSecReturnRef' in scope
244 |             ErrorHandler.assertionFailure("kSecReturnRef is not supported in a migration query.")
245 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:248:21: error: cannot find 'kSecReturnPersistentRef' in scope
246 |         }
247 |
248 |         guard query[kSecReturnPersistentRef as String] as? Bool != false else {
    |                     `- error: cannot find 'kSecReturnPersistentRef' in scope
249 |             ErrorHandler.assertionFailure("Migration requires kSecReturnPersistentRef to be set to kCFBooleanTrue.")
250 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:253:21: error: cannot find 'kSecClass' in scope
251 |         }
252 |
253 |         guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
    |                     `- error: cannot find 'kSecClass' in scope
254 |             ErrorHandler.assertionFailure("Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.")
255 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:253:69: error: cannot find 'kSecClassGenericPassword' in scope
251 |         }
252 |
253 |         guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
    |                                                                     `- error: cannot find 'kSecClassGenericPassword' in scope
254 |             ErrorHandler.assertionFailure("Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.")
255 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:253:56: error: cannot find type 'CFString' in scope
251 |         }
252 |
253 |         guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
    |                                                        `- error: cannot find type 'CFString' in scope
254 |             ErrorHandler.assertionFailure("Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.")
255 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:258:21: error: cannot find 'kSecAttrAccessControl' in scope
256 |         }
257 |
258 |         guard query[kSecAttrAccessControl as String] == nil else {
    |                     `- error: cannot find 'kSecAttrAccessControl' in scope
259 |             ErrorHandler.assertionFailure("kSecAttrAccessControl is not supported in a migration query. Keychain items can not be migrated en masse from the Secure Enclave.")
260 |             return .invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:264:22: error: cannot find 'kSecMatchLimit' in scope
262 |
263 |         var secItemQuery = query
264 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
    |                      `- error: cannot find 'kSecMatchLimit' in scope
265 |         secItemQuery[kSecReturnAttributes as String] = true
266 |         secItemQuery[kSecReturnData as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:264:50: error: cannot find 'kSecMatchLimitAll' in scope
262 |
263 |         var secItemQuery = query
264 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
    |                                                  `- error: cannot find 'kSecMatchLimitAll' in scope
265 |         secItemQuery[kSecReturnAttributes as String] = true
266 |         secItemQuery[kSecReturnData as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:265:22: error: cannot find 'kSecReturnAttributes' in scope
263 |         var secItemQuery = query
264 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
265 |         secItemQuery[kSecReturnAttributes as String] = true
    |                      `- error: cannot find 'kSecReturnAttributes' in scope
266 |         secItemQuery[kSecReturnData as String] = false
267 |         secItemQuery[kSecReturnRef as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:266:22: error: cannot find 'kSecReturnData' in scope
264 |         secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
265 |         secItemQuery[kSecReturnAttributes as String] = true
266 |         secItemQuery[kSecReturnData as String] = false
    |                      `- error: cannot find 'kSecReturnData' in scope
267 |         secItemQuery[kSecReturnRef as String] = false
268 |         secItemQuery[kSecReturnPersistentRef as String] = true
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:267:22: error: cannot find 'kSecReturnRef' in scope
265 |         secItemQuery[kSecReturnAttributes as String] = true
266 |         secItemQuery[kSecReturnData as String] = false
267 |         secItemQuery[kSecReturnRef as String] = false
    |                      `- error: cannot find 'kSecReturnRef' in scope
268 |         secItemQuery[kSecReturnPersistentRef as String] = true
269 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:268:22: error: cannot find 'kSecReturnPersistentRef' in scope
266 |         secItemQuery[kSecReturnData as String] = false
267 |         secItemQuery[kSecReturnRef as String] = false
268 |         secItemQuery[kSecReturnPersistentRef as String] = true
    |                      `- error: cannot find 'kSecReturnPersistentRef' in scope
269 |
270 |         let result: SecItem.DataResult<Any> = SecItem.copy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:286:18: error: cannot find 'errSecItemNotFound' in scope
284 |         case let .error(status):
285 |             switch status {
286 |             case errSecItemNotFound:
    |                  `- error: cannot find 'errSecItemNotFound' in scope
287 |                 return .noItemsToMigrateFound
288 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:289:18: error: cannot find 'errSecParam' in scope
287 |                 return .noItemsToMigrateFound
288 |
289 |             case errSecParam:
    |                  `- error: cannot find 'errSecParam' in scope
290 |                 return .invalidQuery
291 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:300:62: error: cannot find 'kSecValuePersistentRef' in scope
298 |         var retrievedItemsToMigrateWithData = [[String : AnyHashable]]()
299 |         for retrievedItem in retrievedItemsToMigrate {
300 |             guard let retrievedPersistentRef = retrievedItem[kSecValuePersistentRef as String] else {
    |                                                              `- error: cannot find 'kSecValuePersistentRef' in scope
301 |                 return .couldNotReadKeychain
302 |             }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:305:17: error: cannot find 'kSecValuePersistentRef' in scope
303 |
304 |             let retrieveDataQuery: [String : AnyHashable] = [
305 |                 kSecValuePersistentRef as String : retrievedPersistentRef,
    |                 `- error: cannot find 'kSecValuePersistentRef' in scope
306 |                 kSecReturnData as String : true
307 |             ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:306:17: error: cannot find 'kSecReturnData' in scope
304 |             let retrieveDataQuery: [String : AnyHashable] = [
305 |                 kSecValuePersistentRef as String : retrievedPersistentRef,
306 |                 kSecReturnData as String : true
    |                 `- error: cannot find 'kSecReturnData' in scope
307 |             ]
308 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:317:48: error: cannot find 'kSecValueData' in scope
315 |
316 |                 var retrievedItemToMigrateWithData = retrievedItem
317 |                 retrievedItemToMigrateWithData[kSecValueData as String] = data
    |                                                `- error: cannot find 'kSecValueData' in scope
318 |                 retrievedItemsToMigrateWithData.append(retrievedItemToMigrateWithData)
319 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:321:30: error: cannot find 'errSecItemNotFound' in scope
319 |
320 |             case let .error(status):
321 |                 if status == errSecItemNotFound {
    |                              `- error: cannot find 'errSecItemNotFound' in scope
322 |                     // It is possible for metadata-only items to exist in the keychain that do not have data associated with them. Ignore this entry.
323 |                     continue
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:334:43: error: cannot find 'kSecAttrAccount' in scope
332 |         var keysToMigrate = Set<String>()
333 |         for keychainEntry in retrievedItemsToMigrateWithData {
334 |             guard let key = keychainEntry[kSecAttrAccount as String] as? String, key != Keychain.canaryKey else {
    |                                           `- error: cannot find 'kSecAttrAccount' in scope
335 |                 // We don't care about this key. Move along.
336 |                 continue
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:347:44: error: cannot find 'kSecValueData' in scope
345 |             }
346 |
347 |             guard let data = keychainEntry[kSecValueData as String] as? Data, !data.isEmpty else {
    |                                            `- error: cannot find 'kSecValueData' in scope
348 |                 return .dataInQueryResultInvalid
349 |             }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:351:125: error: cannot find 'errSecItemNotFound' in scope
349 |             }
350 |
351 |             guard case let .error(status) = Keychain.containsObject(forKey: key, options: destinationAttributes), status == errSecItemNotFound else {
    |                                                                                                                             `- error: cannot find 'errSecItemNotFound' in scope
352 |                 return .keyInQueryResultAlreadyExistsInValet
353 |             }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:368:43: error: cannot find 'kSecAttrAccount' in scope
366 |
367 |         for keychainEntry in retrievedItemsToMigrateWithData {
368 |             guard let key = keychainEntry[kSecAttrAccount as String] as? String else {
    |                                           `- error: cannot find 'kSecAttrAccount' in scope
369 |                 revertMigration()
370 |                 return .keyInQueryResultInvalid
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:373:45: error: cannot find 'kSecValueData' in scope
371 |             }
372 |
373 |             guard let value = keychainEntry[kSecValueData as String] as? Data else {
    |                                             `- error: cannot find 'kSecValueData' in scope
374 |                 revertMigration()
375 |                 return .dataInQueryResultInvalid
[19/20] Compiling Valet SwiftCompatibility.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:25:2: error: Objective-C interoperability is disabled
 23 |
 24 | /// Reads and writes keychain elements.
 25 | @objc(VALValet)
    |  `- error: Objective-C interoperability is disabled
 26 | public final class Valet: NSObject, KeychainQueryConvertible {
 27 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:67:47: error: cannot find 'NSMapTable' in scope
 65 |     // MARK: Private Class Properties
 66 |
 67 |     private static let identifierToValetMap = NSMapTable<NSString, Valet>.strongToWeakObjects()
    |                                               `- error: cannot find 'NSMapTable' in scope
 68 |
 69 |     // MARK: Private Class Functions
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:131:6: error: Objective-C interoperability is disabled
129 |     // MARK: Public Properties
130 |
131 |     @objc
    |      `- error: Objective-C interoperability is disabled
132 |     public let accessibility: Accessibility
133 |     public let identifier: Identifier
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:139:6: error: Objective-C interoperability is disabled
137 |     /// - returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
138 |     /// - note: Determined by writing a value to the keychain and then reading it back out.
139 |     @objc
    |      `- error: Objective-C interoperability is disabled
140 |     public func canAccessKeychain() -> Bool {
141 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:149:6: error: Objective-C interoperability is disabled
147 |     /// - parameter key: A Key that can be used to retrieve the `object` from the keychain.
148 |     /// - returns: `false` if the keychain is not accessible.
149 |     @objc(setObject:forKey:)
    |      `- error: Objective-C interoperability is disabled
150 |     @discardableResult
151 |     public func set(object: Data, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:159:6: error: Objective-C interoperability is disabled
157 |     /// - parameter key: A Key used to retrieve the desired object from the keychain.
158 |     /// - returns: The data currently stored in the keychain for the provided key. Returns `nil` if no object exists in the keychain for the specified key, or if the keychain is inaccessible.
159 |     @objc(objectForKey:)
    |      `- error: Objective-C interoperability is disabled
160 |     public func object(forKey key: String) -> Data? {
161 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:168:6: error: Objective-C interoperability is disabled
166 |     /// - parameter key: The key to look up in the keychain.
167 |     /// - returns: `true` if a value has been set for the given key, `false` otherwise.
168 |     @objc(containsObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
169 |     public func containsObject(forKey key: String) -> Bool {
170 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:178:6: error: Objective-C interoperability is disabled
176 |     /// - parameter key: A Key that can be used to retrieve the `string` from the keychain.
177 |     /// - returns: `true` if the operation succeeded, or `false` if the keychain is not accessible.
178 |     @objc(setString:forKey:)
    |      `- error: Objective-C interoperability is disabled
179 |     @discardableResult
180 |     public func set(string: String, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:188:6: error: Objective-C interoperability is disabled
186 |     /// - parameter key: A Key used to retrieve the desired object from the keychain.
187 |     /// - returns: The string currently stored in the keychain for the provided key. Returns `nil` if no string exists in the keychain for the specified key, or if the keychain is inaccessible.
188 |     @objc(stringForKey:)
    |      `- error: Objective-C interoperability is disabled
189 |     public func string(forKey key: String) -> String? {
190 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:196:6: error: Objective-C interoperability is disabled
194 |
195 |     /// - returns: The set of all (String) keys currently stored in this Valet instance.
196 |     @objc
    |      `- error: Objective-C interoperability is disabled
197 |     public func allKeys() -> Set<String> {
198 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:205:6: error: Objective-C interoperability is disabled
203 |     /// Removes a key/object pair from the keychain.
204 |     /// - returns: `false` if the keychain is not accessible.
205 |     @objc(removeObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
206 |     @discardableResult
207 |     public func removeObject(forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:215:6: error: Objective-C interoperability is disabled
213 |     /// Removes all key/object pairs accessible by this Valet instance from the keychain.
214 |     /// - returns: `false` if the keychain is not accessible.
215 |     @objc
    |      `- error: Objective-C interoperability is disabled
216 |     @discardableResult
217 |     public func removeAllObjects() -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:228:6: error: Objective-C interoperability is disabled
226 |     /// - returns: Whether the migration succeeded or failed.
227 |     /// - note: The keychain is not modified if a failure occurs.
228 |     @objc(migrateObjectsMatchingQuery:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
229 |     public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) -> MigrationResult {
230 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:240:6: error: Objective-C interoperability is disabled
238 |     /// - returns: Whether the migration succeeded or failed.
239 |     /// - note: The keychain is not modified if a failure occurs.
240 |     @objc(migrateObjectsFromValet:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
241 |     public func migrateObjects(from keychain: KeychainQueryConvertible, removeOnCompletion: Bool) -> MigrationResult {
242 |         return migrateObjects(matching: keychain.keychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:286:6: error: Objective-C interoperability is disabled
284 |     /// - returns: A Valet that reads/writes keychain elements with the desired accessibility.
285 |     @available(swift, obsoleted: 1.0)
286 |     @objc(valetWithIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
287 |     public class func 🚫swift_vanillaValet(with identifier: String, accessibility: Accessibility) -> Valet? {
288 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:298:6: error: Objective-C interoperability is disabled
296 |     /// - returns: A Valet that reads/writes iCloud-shared keychain elements with the desired accessibility.
297 |     @available(swift, obsoleted: 1.0)
298 |     @objc(iCloudValetWithIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
299 |     public class func 🚫swift_iCloudValet(with identifier: String, accessibility: CloudAccessibility) -> Valet? {
300 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:310:6: error: Objective-C interoperability is disabled
308 |     /// - returns: A Valet that reads/writes keychain elements that can be shared across applications written by the same development team.
309 |     @available(swift, obsoleted: 1.0)
310 |     @objc(valetWithSharedAccessGroupIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
311 |     public class func 🚫swift_vanillaSharedAccessGroupValet(with identifier: String, accessibility: Accessibility) -> Valet? {
312 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:322:6: error: Objective-C interoperability is disabled
320 |     /// - returns: A Valet that reads/writes iCloud-shared keychain elements that can be shared across applications written by the same development team.
321 |     @available(swift, obsoleted: 1.0)
322 |     @objc(iCloudValetWithSharedAccessGroupIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
323 |     public class func 🚫swift_iCloudSharedAccessGroupValet(with identifier: String, accessibility: CloudAccessibility) -> Valet? {
324 |         guard let identifier = Identifier(nonEmpty: identifier) else {
[20/20] Compiling Valet Valet.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:25:2: error: Objective-C interoperability is disabled
 23 |
 24 | /// Reads and writes keychain elements.
 25 | @objc(VALValet)
    |  `- error: Objective-C interoperability is disabled
 26 | public final class Valet: NSObject, KeychainQueryConvertible {
 27 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:67:47: error: cannot find 'NSMapTable' in scope
 65 |     // MARK: Private Class Properties
 66 |
 67 |     private static let identifierToValetMap = NSMapTable<NSString, Valet>.strongToWeakObjects()
    |                                               `- error: cannot find 'NSMapTable' in scope
 68 |
 69 |     // MARK: Private Class Functions
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:131:6: error: Objective-C interoperability is disabled
129 |     // MARK: Public Properties
130 |
131 |     @objc
    |      `- error: Objective-C interoperability is disabled
132 |     public let accessibility: Accessibility
133 |     public let identifier: Identifier
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:139:6: error: Objective-C interoperability is disabled
137 |     /// - returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
138 |     /// - note: Determined by writing a value to the keychain and then reading it back out.
139 |     @objc
    |      `- error: Objective-C interoperability is disabled
140 |     public func canAccessKeychain() -> Bool {
141 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:149:6: error: Objective-C interoperability is disabled
147 |     /// - parameter key: A Key that can be used to retrieve the `object` from the keychain.
148 |     /// - returns: `false` if the keychain is not accessible.
149 |     @objc(setObject:forKey:)
    |      `- error: Objective-C interoperability is disabled
150 |     @discardableResult
151 |     public func set(object: Data, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:159:6: error: Objective-C interoperability is disabled
157 |     /// - parameter key: A Key used to retrieve the desired object from the keychain.
158 |     /// - returns: The data currently stored in the keychain for the provided key. Returns `nil` if no object exists in the keychain for the specified key, or if the keychain is inaccessible.
159 |     @objc(objectForKey:)
    |      `- error: Objective-C interoperability is disabled
160 |     public func object(forKey key: String) -> Data? {
161 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:168:6: error: Objective-C interoperability is disabled
166 |     /// - parameter key: The key to look up in the keychain.
167 |     /// - returns: `true` if a value has been set for the given key, `false` otherwise.
168 |     @objc(containsObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
169 |     public func containsObject(forKey key: String) -> Bool {
170 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:178:6: error: Objective-C interoperability is disabled
176 |     /// - parameter key: A Key that can be used to retrieve the `string` from the keychain.
177 |     /// - returns: `true` if the operation succeeded, or `false` if the keychain is not accessible.
178 |     @objc(setString:forKey:)
    |      `- error: Objective-C interoperability is disabled
179 |     @discardableResult
180 |     public func set(string: String, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:188:6: error: Objective-C interoperability is disabled
186 |     /// - parameter key: A Key used to retrieve the desired object from the keychain.
187 |     /// - returns: The string currently stored in the keychain for the provided key. Returns `nil` if no string exists in the keychain for the specified key, or if the keychain is inaccessible.
188 |     @objc(stringForKey:)
    |      `- error: Objective-C interoperability is disabled
189 |     public func string(forKey key: String) -> String? {
190 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:196:6: error: Objective-C interoperability is disabled
194 |
195 |     /// - returns: The set of all (String) keys currently stored in this Valet instance.
196 |     @objc
    |      `- error: Objective-C interoperability is disabled
197 |     public func allKeys() -> Set<String> {
198 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:205:6: error: Objective-C interoperability is disabled
203 |     /// Removes a key/object pair from the keychain.
204 |     /// - returns: `false` if the keychain is not accessible.
205 |     @objc(removeObjectForKey:)
    |      `- error: Objective-C interoperability is disabled
206 |     @discardableResult
207 |     public func removeObject(forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:215:6: error: Objective-C interoperability is disabled
213 |     /// Removes all key/object pairs accessible by this Valet instance from the keychain.
214 |     /// - returns: `false` if the keychain is not accessible.
215 |     @objc
    |      `- error: Objective-C interoperability is disabled
216 |     @discardableResult
217 |     public func removeAllObjects() -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:228:6: error: Objective-C interoperability is disabled
226 |     /// - returns: Whether the migration succeeded or failed.
227 |     /// - note: The keychain is not modified if a failure occurs.
228 |     @objc(migrateObjectsMatchingQuery:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
229 |     public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) -> MigrationResult {
230 |         return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:240:6: error: Objective-C interoperability is disabled
238 |     /// - returns: Whether the migration succeeded or failed.
239 |     /// - note: The keychain is not modified if a failure occurs.
240 |     @objc(migrateObjectsFromValet:removeOnCompletion:)
    |      `- error: Objective-C interoperability is disabled
241 |     public func migrateObjects(from keychain: KeychainQueryConvertible, removeOnCompletion: Bool) -> MigrationResult {
242 |         return migrateObjects(matching: keychain.keychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:286:6: error: Objective-C interoperability is disabled
284 |     /// - returns: A Valet that reads/writes keychain elements with the desired accessibility.
285 |     @available(swift, obsoleted: 1.0)
286 |     @objc(valetWithIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
287 |     public class func 🚫swift_vanillaValet(with identifier: String, accessibility: Accessibility) -> Valet? {
288 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:298:6: error: Objective-C interoperability is disabled
296 |     /// - returns: A Valet that reads/writes iCloud-shared keychain elements with the desired accessibility.
297 |     @available(swift, obsoleted: 1.0)
298 |     @objc(iCloudValetWithIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
299 |     public class func 🚫swift_iCloudValet(with identifier: String, accessibility: CloudAccessibility) -> Valet? {
300 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:310:6: error: Objective-C interoperability is disabled
308 |     /// - returns: A Valet that reads/writes keychain elements that can be shared across applications written by the same development team.
309 |     @available(swift, obsoleted: 1.0)
310 |     @objc(valetWithSharedAccessGroupIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
311 |     public class func 🚫swift_vanillaSharedAccessGroupValet(with identifier: String, accessibility: Accessibility) -> Valet? {
312 |         guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:322:6: error: Objective-C interoperability is disabled
320 |     /// - returns: A Valet that reads/writes iCloud-shared keychain elements that can be shared across applications written by the same development team.
321 |     @available(swift, obsoleted: 1.0)
322 |     @objc(iCloudValetWithSharedAccessGroupIdentifier:accessibility:)
    |      `- error: Objective-C interoperability is disabled
323 |     public class func 🚫swift_iCloudSharedAccessGroupValet(with identifier: String, accessibility: CloudAccessibility) -> Valet? {
324 |         guard let identifier = Identifier(nonEmpty: identifier) else {
BUILD FAILURE 6.0 linux