Build Information
Failed to build PassportKit, reference master (38479c
), with Swift 6.0 for Linux on 3 Nov 2024 00:21:58 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.56.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/appoly/PassportKit.git
Reference: master
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/appoly/PassportKit
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 38479cf Support fresh install unauthenticate behaviour
Cloned https://github.com/appoly/PassportKit.git
Revision (git rev-parse @):
38479cfd96a82582c9d7b3cf30428dfb3023a2cb
SUCCESS checkout https://github.com/appoly/PassportKit.git at master
========================================
Build
========================================
Selected platform: linux
Swift version: 6.0
Building package at path: $PWD
https://github.com/appoly/PassportKit.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Fetching https://github.com/square/Valet.git
[1/5908] Fetching valet
Fetched https://github.com/square/Valet.git from cache (0.37s)
Computing version for https://github.com/square/Valet.git
Computed https://github.com/square/Valet.git at 4.3.0 (0.48s)
Creating working copy for https://github.com/square/Valet.git
Working copy of https://github.com/square/Valet.git resolved at 4.3.0
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-24593BA9C3E375BF.txt
[4/18] Compiling Valet Keychain.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:130:94: error: cannot find type 'OSStatus' in scope
128 | // MARK: Contains
129 |
130 | internal static func performCopy(forKey key: String, options: [String : AnyHashable]) -> OSStatus {
| `- error: cannot find type 'OSStatus' in scope
131 | guard !key.isEmpty else {
132 | return errSecParam
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:45:26: error: cannot find 'kSecAttrAccount' in scope
43 | } else {
44 | var secItemQuery = attributes
45 | secItemQuery[kSecAttrAccount as String] = canaryKey
| `- error: cannot find 'kSecAttrAccount' in scope
46 | secItemQuery[kSecValueData as String] = Data(canaryValue.utf8)
47 | try? SecItem.add(attributes: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:46:26: error: cannot find 'kSecValueData' in scope
44 | var secItemQuery = attributes
45 | secItemQuery[kSecAttrAccount as String] = canaryKey
46 | secItemQuery[kSecValueData as String] = Data(canaryValue.utf8)
| `- error: cannot find 'kSecValueData' in scope
47 | try? SecItem.add(attributes: secItemQuery)
48 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:70:22: error: cannot find 'kSecAttrAccount' in scope
68 |
69 | var secItemQuery = options
70 | secItemQuery[kSecAttrAccount as String] = key
| `- error: cannot find 'kSecAttrAccount' in scope
71 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
72 | secItemQuery[kSecReturnData as String] = true
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:71:22: error: cannot find 'kSecMatchLimit' in scope
69 | var secItemQuery = options
70 | secItemQuery[kSecAttrAccount as String] = key
71 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
| `- error: cannot find 'kSecMatchLimit' in scope
72 | secItemQuery[kSecReturnData as String] = true
73 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:71:50: error: cannot find 'kSecMatchLimitOne' in scope
69 | var secItemQuery = options
70 | secItemQuery[kSecAttrAccount as String] = key
71 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
| `- error: cannot find 'kSecMatchLimitOne' in scope
72 | secItemQuery[kSecReturnData as String] = true
73 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:72:22: error: cannot find 'kSecReturnData' in scope
70 | secItemQuery[kSecAttrAccount as String] = key
71 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
72 | secItemQuery[kSecReturnData as String] = true
| `- error: cannot find 'kSecReturnData' in scope
73 |
74 | return try SecItem.copy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:94:22: error: cannot find 'kSecAttrAccount' in scope
92 |
93 | var secItemQuery = options
94 | secItemQuery[kSecAttrAccount as String] = key
| `- error: cannot find 'kSecAttrAccount' in scope
95 |
96 | #if os(macOS)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:102:58: error: cannot find 'errSecSuccess' in scope
100 | try SecItem.add(attributes: secItemQuery)
101 | #else
102 | if performCopy(forKey: key, options: options) == errSecSuccess {
| `- error: cannot find 'errSecSuccess' in scope
103 | try SecItem.update(attributes: [kSecValueData as String: object], forItemsMatching: secItemQuery)
104 | } else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:103:45: error: cannot find 'kSecValueData' in scope
101 | #else
102 | if performCopy(forKey: key, options: options) == errSecSuccess {
103 | try SecItem.update(attributes: [kSecValueData as String: object], forItemsMatching: secItemQuery)
| `- error: cannot find 'kSecValueData' in scope
104 | } else {
105 | secItemQuery[kSecValueData as String] = object
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:105:26: error: cannot find 'kSecValueData' in scope
103 | try SecItem.update(attributes: [kSecValueData as String: object], forItemsMatching: secItemQuery)
104 | } else {
105 | secItemQuery[kSecValueData as String] = object
| `- error: cannot find 'kSecValueData' in scope
106 | try SecItem.add(attributes: secItemQuery)
107 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:119:22: error: cannot find 'kSecAttrAccount' in scope
117 |
118 | var secItemQuery = options
119 | secItemQuery[kSecAttrAccount as String] = key
| `- error: cannot find 'kSecAttrAccount' in scope
120 |
121 | try SecItem.deleteItems(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:136:22: error: cannot find 'kSecAttrAccount' in scope
134 |
135 | var secItemQuery = options
136 | secItemQuery[kSecAttrAccount as String] = key
| `- error: cannot find 'kSecAttrAccount' in scope
137 |
138 | return SecItem.performCopy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:145:22: error: cannot find 'kSecMatchLimit' in scope
143 | internal static func allKeys(options: [String: AnyHashable]) throws -> Set<String> {
144 | var secItemQuery = options
145 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
| `- error: cannot find 'kSecMatchLimit' in scope
146 | secItemQuery[kSecReturnAttributes as String] = true
147 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:145:50: error: cannot find 'kSecMatchLimitAll' in scope
143 | internal static func allKeys(options: [String: AnyHashable]) throws -> Set<String> {
144 | var secItemQuery = options
145 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
| `- error: cannot find 'kSecMatchLimitAll' in scope
146 | secItemQuery[kSecReturnAttributes as String] = true
147 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:146:22: error: cannot find 'kSecReturnAttributes' in scope
144 | var secItemQuery = options
145 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
146 | secItemQuery[kSecReturnAttributes as String] = true
| `- error: cannot find 'kSecReturnAttributes' in scope
147 |
148 | do {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:150:100: error: cannot find 'kSecAttrAccount' in scope
148 | do {
149 | let collection: Any = try SecItem.copy(matching: secItemQuery)
150 | if let singleMatch = collection as? [String: AnyHashable], let singleKey = singleMatch[kSecAttrAccount as String] as? String, singleKey != canaryKey {
| `- error: cannot find 'kSecAttrAccount' in scope
151 | return Set([singleKey])
152 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:155:42: error: cannot find 'kSecAttrAccount' in scope
153 | } else if let multipleMatches = collection as? [[String: AnyHashable]] {
154 | return Set(multipleMatches.compactMap({ attributes in
155 | let key = attributes[kSecAttrAccount as String] as? String
| `- error: cannot find 'kSecAttrAccount' in scope
156 | return key != canaryKey ? key : nil
157 | }))
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:180:21: error: cannot find 'kSecMatchLimit' in scope
178 | }
179 |
180 | guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
| `- error: cannot find 'kSecMatchLimit' in scope
181 | // Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.
182 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:180:74: error: cannot find 'kSecMatchLimitOne' in scope
178 | }
179 |
180 | guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
| `- error: cannot find 'kSecMatchLimitOne' in scope
181 | // Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.
182 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:180:61: error: cannot find type 'CFString' in scope
178 | }
179 |
180 | guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
| `- error: cannot find type 'CFString' in scope
181 | // Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.
182 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:185:21: error: cannot find 'kSecReturnData' in scope
183 | }
184 |
185 | guard query[kSecReturnData as String] as? Bool != true else {
| `- error: cannot find 'kSecReturnData' in scope
186 | // kSecReturnData is not supported in a migration query.
187 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:190:21: error: cannot find 'kSecReturnAttributes' in scope
188 | }
189 |
190 | guard query[kSecReturnAttributes as String] as? Bool != false else {
| `- error: cannot find 'kSecReturnAttributes' in scope
191 | // Migration requires kSecReturnAttributes to be set to kCFBooleanTrue.
192 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:195:21: error: cannot find 'kSecReturnRef' in scope
193 | }
194 |
195 | guard query[kSecReturnRef as String] as? Bool != true else {
| `- error: cannot find 'kSecReturnRef' in scope
196 | // kSecReturnRef is not supported in a migration query.
197 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:200:21: error: cannot find 'kSecReturnPersistentRef' in scope
198 | }
199 |
200 | guard query[kSecReturnPersistentRef as String] as? Bool != false else {
| `- error: cannot find 'kSecReturnPersistentRef' in scope
201 | // Migration requires kSecReturnPersistentRef to be set to kCFBooleanTrue.
202 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:205:21: error: cannot find 'kSecClass' in scope
203 | }
204 |
205 | guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
| `- error: cannot find 'kSecClass' in scope
206 | // Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.
207 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:205:69: error: cannot find 'kSecClassGenericPassword' in scope
203 | }
204 |
205 | guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
| `- error: cannot find 'kSecClassGenericPassword' in scope
206 | // Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.
207 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:205:56: error: cannot find type 'CFString' in scope
203 | }
204 |
205 | guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
| `- error: cannot find type 'CFString' in scope
206 | // Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.
207 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:210:21: error: cannot find 'kSecAttrAccessControl' in scope
208 | }
209 |
210 | guard query[kSecAttrAccessControl as String] == nil else {
| `- error: cannot find 'kSecAttrAccessControl' in scope
211 | // kSecAttrAccessControl is not supported in a migration query. Keychain items can not be migrated en masse from the Secure Enclave.
212 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:216:22: error: cannot find 'kSecMatchLimit' in scope
214 |
215 | var secItemQuery = query
216 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
| `- error: cannot find 'kSecMatchLimit' in scope
217 | secItemQuery[kSecReturnAttributes as String] = true
218 | secItemQuery[kSecReturnData as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:216:50: error: cannot find 'kSecMatchLimitAll' in scope
214 |
215 | var secItemQuery = query
216 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
| `- error: cannot find 'kSecMatchLimitAll' in scope
217 | secItemQuery[kSecReturnAttributes as String] = true
218 | secItemQuery[kSecReturnData as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:217:22: error: cannot find 'kSecReturnAttributes' in scope
215 | var secItemQuery = query
216 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
217 | secItemQuery[kSecReturnAttributes as String] = true
| `- error: cannot find 'kSecReturnAttributes' in scope
218 | secItemQuery[kSecReturnData as String] = false
219 | secItemQuery[kSecReturnRef as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:218:22: error: cannot find 'kSecReturnData' in scope
216 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
217 | secItemQuery[kSecReturnAttributes as String] = true
218 | secItemQuery[kSecReturnData as String] = false
| `- error: cannot find 'kSecReturnData' in scope
219 | secItemQuery[kSecReturnRef as String] = false
220 | secItemQuery[kSecReturnPersistentRef as String] = true
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:219:22: error: cannot find 'kSecReturnRef' in scope
217 | secItemQuery[kSecReturnAttributes as String] = true
218 | secItemQuery[kSecReturnData as String] = false
219 | secItemQuery[kSecReturnRef as String] = false
| `- error: cannot find 'kSecReturnRef' in scope
220 | secItemQuery[kSecReturnPersistentRef as String] = true
221 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:220:22: error: cannot find 'kSecReturnPersistentRef' in scope
218 | secItemQuery[kSecReturnData as String] = false
219 | secItemQuery[kSecReturnRef as String] = false
220 | secItemQuery[kSecReturnPersistentRef as String] = true
| `- error: cannot find 'kSecReturnPersistentRef' in scope
221 |
222 | let collection: Any = try SecItem.copy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:237:62: error: cannot find 'kSecValuePersistentRef' in scope
235 | var retrievedItemsToMigrateWithData = [[String : AnyHashable]]()
236 | for retrievedItem in retrievedItemsToMigrate {
237 | guard let retrievedPersistentRef = retrievedItem[kSecValuePersistentRef as String] else {
| `- error: cannot find 'kSecValuePersistentRef' in scope
238 | throw KeychainError.couldNotAccessKeychain
239 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:243:17: error: cannot find 'kSecValuePersistentRef' in scope
241 |
242 | let retrieveDataQuery: [String : AnyHashable] = [
243 | kSecValuePersistentRef as String : retrievedPersistentRef,
| `- error: cannot find 'kSecValuePersistentRef' in scope
244 | kSecReturnData as String : true
245 | ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:244:17: error: cannot find 'kSecReturnData' in scope
242 | let retrieveDataQuery: [String : AnyHashable] = [
243 | kSecValuePersistentRef as String : retrievedPersistentRef,
244 | kSecReturnData as String : true
| `- error: cannot find 'kSecReturnData' in scope
245 | ]
246 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:254:48: error: cannot find 'kSecValueData' in scope
252 |
253 | var retrievedItemToMigrateWithData = retrievedItem
254 | retrievedItemToMigrateWithData[kSecValueData as String] = data
| `- error: cannot find 'kSecValueData' in scope
255 | retrievedItemsToMigrateWithData.append(retrievedItemToMigrateWithData)
256 | } catch KeychainError.itemNotFound {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:268:43: error: cannot find 'kSecAttrAccount' in scope
266 | var keyValuePairsToMigrate = [String: Data]()
267 | for keychainEntry in retrievedItemsToMigrateWithData {
268 | guard let key = keychainEntry[kSecAttrAccount as String] else {
| `- error: cannot find 'kSecAttrAccount' in scope
269 | throw MigrationError.keyToMigrateInvalid
270 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:277:44: error: cannot find 'kSecValueData' in scope
275 | }
276 |
277 | guard let data = keychainEntry[kSecValueData as String] as? Data else {
| `- error: cannot find 'kSecValueData' in scope
278 | // This state should be impossible, per Apple's documentation for `kSecValueData`.
279 | throw MigrationError.dataToMigrateInvalid
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:299:100: error: cannot find 'errSecItemNotFound' in scope
297 | }
298 |
299 | if Keychain.performCopy(forKey: migratablePair.key, options: destinationAttributes) == errSecItemNotFound {
| `- error: cannot find 'errSecItemNotFound' in scope
300 | keyValuePairsToMigrate[migratablePair.key] = migratablePair.value
301 | } else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:59:81: error: cannot find type 'OSStatus' in scope
57 | }
58 |
59 | internal static func performCopy(matching query: [String : AnyHashable]) -> OSStatus {
| `- error: cannot find type 'OSStatus' in scope
60 | guard !query.isEmpty else {
61 | // Must provide a query with at least one item
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:38:22: error: cannot find 'errSecNotAvailable' in scope
36 | }
37 |
38 | var status = errSecNotAvailable
| `- error: cannot find 'errSecNotAvailable' in scope
39 | var result: AnyObject? = nil
40 | execute(in: secItemLock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:41:22: error: cannot find 'SecItemCopyMatching' in scope
39 | var result: AnyObject? = nil
40 | execute(in: secItemLock) {
41 | status = SecItemCopyMatching(query as CFDictionary, &result)
| `- error: cannot find 'SecItemCopyMatching' in scope
42 | }
43 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:41:51: error: cannot find type 'CFDictionary' in scope
39 | var result: AnyObject? = nil
40 | execute(in: secItemLock) {
41 | status = SecItemCopyMatching(query as CFDictionary, &result)
| `- error: cannot find type 'CFDictionary' in scope
42 | }
43 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:44:22: error: cannot find 'errSecSuccess' in scope
42 | }
43 |
44 | if status == errSecSuccess {
| `- error: cannot find 'errSecSuccess' in scope
45 | if let result = result as? DesiredType {
46 | return result
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:37:18: error: cannot find type 'OSStatus' in scope
35 | case emptyValue
36 |
37 | init(status: OSStatus) {
| `- error: cannot find type 'OSStatus' in scope
38 | switch status {
39 | case errSecItemNotFound:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:19: error: no exact matches in call to initializer
53 |
54 | } else {
55 | throw KeychainError(status: status)
| `- error: no exact matches in call to initializer
56 | }
57 | }
Foundation.__BridgedNSError:5:12: note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
2 | public var _domain: String { get }
3 | public var _code: Int { get }
4 | public init?(rawValue: Self.RawValue)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(rawValue:)')
5 | public init?(_bridgedNSError: NSError)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
6 | public var hashValue: Int { get }
7 | public func hash(into hasher: inout Hasher)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:19: error: thrown expression type 'KeychainError?' does not conform to 'Error'
53 |
54 | } else {
55 | throw KeychainError(status: status)
| `- error: thrown expression type 'KeychainError?' does not conform to 'Error'
56 | }
57 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:65:22: error: cannot find 'errSecNotAvailable' in scope
63 | }
64 |
65 | var status = errSecNotAvailable
| `- error: cannot find 'errSecNotAvailable' in scope
66 | execute(in: secItemLock) {
67 | status = SecItemCopyMatching(query as CFDictionary, nil)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:67:22: error: cannot find 'SecItemCopyMatching' in scope
65 | var status = errSecNotAvailable
66 | execute(in: secItemLock) {
67 | status = SecItemCopyMatching(query as CFDictionary, nil)
| `- error: cannot find 'SecItemCopyMatching' in scope
68 | }
69 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:67:51: error: cannot find type 'CFDictionary' in scope
65 | var status = errSecNotAvailable
66 | execute(in: secItemLock) {
67 | status = SecItemCopyMatching(query as CFDictionary, nil)
| `- error: cannot find type 'CFDictionary' in scope
68 | }
69 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:67:65: error: 'nil' requires a contextual type
65 | var status = errSecNotAvailable
66 | execute(in: secItemLock) {
67 | status = SecItemCopyMatching(query as CFDictionary, nil)
| `- error: 'nil' requires a contextual type
68 | }
69 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:78:22: error: cannot find 'errSecNotAvailable' in scope
76 | }
77 |
78 | var status = errSecNotAvailable
| `- error: cannot find 'errSecNotAvailable' in scope
79 | var result: AnyObject? = nil
80 | execute(in: secItemLock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:81:22: error: cannot find 'SecItemAdd' in scope
79 | var result: AnyObject? = nil
80 | execute(in: secItemLock) {
81 | status = SecItemAdd(attributes as CFDictionary, &result)
| `- error: cannot find 'SecItemAdd' in scope
82 | }
83 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:81:47: error: cannot find type 'CFDictionary' in scope
79 | var result: AnyObject? = nil
80 | execute(in: secItemLock) {
81 | status = SecItemAdd(attributes as CFDictionary, &result)
| `- error: cannot find type 'CFDictionary' in scope
82 | }
83 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:85:14: error: cannot find 'errSecSuccess' in scope
83 |
84 | switch status {
85 | case errSecSuccess:
| `- error: cannot find 'errSecSuccess' in scope
86 | // We're done!
87 | break
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:89:19: error: no exact matches in call to initializer
87 | break
88 | default:
89 | throw KeychainError(status: status)
| `- error: no exact matches in call to initializer
90 | }
91 | }
Foundation.__BridgedNSError:5:12: note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
2 | public var _domain: String { get }
3 | public var _code: Int { get }
4 | public init?(rawValue: Self.RawValue)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(rawValue:)')
5 | public init?(_bridgedNSError: NSError)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
6 | public var hashValue: Int { get }
7 | public func hash(into hasher: inout Hasher)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:89:19: error: thrown expression type 'KeychainError?' does not conform to 'Error'
87 | break
88 | default:
89 | throw KeychainError(status: status)
| `- error: thrown expression type 'KeychainError?' does not conform to 'Error'
90 | }
91 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:102:22: error: cannot find 'errSecNotAvailable' in scope
100 | }
101 |
102 | var status = errSecNotAvailable
| `- error: cannot find 'errSecNotAvailable' in scope
103 | execute(in: secItemLock) {
104 | status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:104:22: error: cannot find 'SecItemUpdate' in scope
102 | var status = errSecNotAvailable
103 | execute(in: secItemLock) {
104 | status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
| `- error: cannot find 'SecItemUpdate' in scope
105 | }
106 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:104:45: error: cannot find type 'CFDictionary' in scope
102 | var status = errSecNotAvailable
103 | execute(in: secItemLock) {
104 | status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
105 | }
106 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:104:73: error: cannot find type 'CFDictionary' in scope
102 | var status = errSecNotAvailable
103 | execute(in: secItemLock) {
104 | status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
105 | }
106 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:108:14: error: cannot find 'errSecSuccess' in scope
106 |
107 | switch status {
108 | case errSecSuccess:
| `- error: cannot find 'errSecSuccess' in scope
109 | // We're done!
110 | break
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:112:19: error: no exact matches in call to initializer
110 | break
111 | default:
112 | throw KeychainError(status: status)
| `- error: no exact matches in call to initializer
113 | }
114 | }
Foundation.__BridgedNSError:5:12: note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
2 | public var _domain: String { get }
3 | public var _code: Int { get }
4 | public init?(rawValue: Self.RawValue)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(rawValue:)')
5 | public init?(_bridgedNSError: NSError)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
6 | public var hashValue: Int { get }
7 | public func hash(into hasher: inout Hasher)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:112:19: error: thrown expression type 'KeychainError?' does not conform to 'Error'
110 | break
111 | default:
112 | throw KeychainError(status: status)
| `- error: thrown expression type 'KeychainError?' does not conform to 'Error'
113 | }
114 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:126:22: error: cannot find 'errSecNotAvailable' in scope
124 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
125 | #endif
126 | var status = errSecNotAvailable
| `- error: cannot find 'errSecNotAvailable' in scope
127 | execute(in: secItemLock) {
128 | status = SecItemDelete(secItemQuery as CFDictionary)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:128:22: error: cannot find 'SecItemDelete' in scope
126 | var status = errSecNotAvailable
127 | execute(in: secItemLock) {
128 | status = SecItemDelete(secItemQuery as CFDictionary)
| `- error: cannot find 'SecItemDelete' in scope
129 | }
130 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:128:52: error: cannot find type 'CFDictionary' in scope
126 | var status = errSecNotAvailable
127 | execute(in: secItemLock) {
128 | status = SecItemDelete(secItemQuery as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
129 | }
130 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:131:22: error: cannot find 'errSecSuccess' in scope
129 | }
130 |
131 | if status == errSecSuccess {
| `- error: cannot find 'errSecSuccess' in scope
132 | // We're done!
133 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:135:20: error: no exact matches in call to initializer
133 |
134 | } else {
135 | switch KeychainError(status: status) {
| `- error: no exact matches in call to initializer
136 | case .couldNotAccessKeychain:
137 | throw KeychainError.couldNotAccessKeychain
Foundation.__BridgedNSError:5:12: note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
2 | public var _domain: String { get }
3 | public var _code: Int { get }
4 | public init?(rawValue: Self.RawValue)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(rawValue:)')
5 | public init?(_bridgedNSError: NSError)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
6 | public var hashValue: Int { get }
7 | public func hash(into hasher: inout Hasher)
[5/18] Compiling Valet SecItem.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:130:94: error: cannot find type 'OSStatus' in scope
128 | // MARK: Contains
129 |
130 | internal static func performCopy(forKey key: String, options: [String : AnyHashable]) -> OSStatus {
| `- error: cannot find type 'OSStatus' in scope
131 | guard !key.isEmpty else {
132 | return errSecParam
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:45:26: error: cannot find 'kSecAttrAccount' in scope
43 | } else {
44 | var secItemQuery = attributes
45 | secItemQuery[kSecAttrAccount as String] = canaryKey
| `- error: cannot find 'kSecAttrAccount' in scope
46 | secItemQuery[kSecValueData as String] = Data(canaryValue.utf8)
47 | try? SecItem.add(attributes: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:46:26: error: cannot find 'kSecValueData' in scope
44 | var secItemQuery = attributes
45 | secItemQuery[kSecAttrAccount as String] = canaryKey
46 | secItemQuery[kSecValueData as String] = Data(canaryValue.utf8)
| `- error: cannot find 'kSecValueData' in scope
47 | try? SecItem.add(attributes: secItemQuery)
48 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:70:22: error: cannot find 'kSecAttrAccount' in scope
68 |
69 | var secItemQuery = options
70 | secItemQuery[kSecAttrAccount as String] = key
| `- error: cannot find 'kSecAttrAccount' in scope
71 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
72 | secItemQuery[kSecReturnData as String] = true
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:71:22: error: cannot find 'kSecMatchLimit' in scope
69 | var secItemQuery = options
70 | secItemQuery[kSecAttrAccount as String] = key
71 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
| `- error: cannot find 'kSecMatchLimit' in scope
72 | secItemQuery[kSecReturnData as String] = true
73 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:71:50: error: cannot find 'kSecMatchLimitOne' in scope
69 | var secItemQuery = options
70 | secItemQuery[kSecAttrAccount as String] = key
71 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
| `- error: cannot find 'kSecMatchLimitOne' in scope
72 | secItemQuery[kSecReturnData as String] = true
73 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:72:22: error: cannot find 'kSecReturnData' in scope
70 | secItemQuery[kSecAttrAccount as String] = key
71 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitOne
72 | secItemQuery[kSecReturnData as String] = true
| `- error: cannot find 'kSecReturnData' in scope
73 |
74 | return try SecItem.copy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:94:22: error: cannot find 'kSecAttrAccount' in scope
92 |
93 | var secItemQuery = options
94 | secItemQuery[kSecAttrAccount as String] = key
| `- error: cannot find 'kSecAttrAccount' in scope
95 |
96 | #if os(macOS)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:102:58: error: cannot find 'errSecSuccess' in scope
100 | try SecItem.add(attributes: secItemQuery)
101 | #else
102 | if performCopy(forKey: key, options: options) == errSecSuccess {
| `- error: cannot find 'errSecSuccess' in scope
103 | try SecItem.update(attributes: [kSecValueData as String: object], forItemsMatching: secItemQuery)
104 | } else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:103:45: error: cannot find 'kSecValueData' in scope
101 | #else
102 | if performCopy(forKey: key, options: options) == errSecSuccess {
103 | try SecItem.update(attributes: [kSecValueData as String: object], forItemsMatching: secItemQuery)
| `- error: cannot find 'kSecValueData' in scope
104 | } else {
105 | secItemQuery[kSecValueData as String] = object
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:105:26: error: cannot find 'kSecValueData' in scope
103 | try SecItem.update(attributes: [kSecValueData as String: object], forItemsMatching: secItemQuery)
104 | } else {
105 | secItemQuery[kSecValueData as String] = object
| `- error: cannot find 'kSecValueData' in scope
106 | try SecItem.add(attributes: secItemQuery)
107 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:119:22: error: cannot find 'kSecAttrAccount' in scope
117 |
118 | var secItemQuery = options
119 | secItemQuery[kSecAttrAccount as String] = key
| `- error: cannot find 'kSecAttrAccount' in scope
120 |
121 | try SecItem.deleteItems(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:136:22: error: cannot find 'kSecAttrAccount' in scope
134 |
135 | var secItemQuery = options
136 | secItemQuery[kSecAttrAccount as String] = key
| `- error: cannot find 'kSecAttrAccount' in scope
137 |
138 | return SecItem.performCopy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:145:22: error: cannot find 'kSecMatchLimit' in scope
143 | internal static func allKeys(options: [String: AnyHashable]) throws -> Set<String> {
144 | var secItemQuery = options
145 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
| `- error: cannot find 'kSecMatchLimit' in scope
146 | secItemQuery[kSecReturnAttributes as String] = true
147 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:145:50: error: cannot find 'kSecMatchLimitAll' in scope
143 | internal static func allKeys(options: [String: AnyHashable]) throws -> Set<String> {
144 | var secItemQuery = options
145 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
| `- error: cannot find 'kSecMatchLimitAll' in scope
146 | secItemQuery[kSecReturnAttributes as String] = true
147 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:146:22: error: cannot find 'kSecReturnAttributes' in scope
144 | var secItemQuery = options
145 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
146 | secItemQuery[kSecReturnAttributes as String] = true
| `- error: cannot find 'kSecReturnAttributes' in scope
147 |
148 | do {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:150:100: error: cannot find 'kSecAttrAccount' in scope
148 | do {
149 | let collection: Any = try SecItem.copy(matching: secItemQuery)
150 | if let singleMatch = collection as? [String: AnyHashable], let singleKey = singleMatch[kSecAttrAccount as String] as? String, singleKey != canaryKey {
| `- error: cannot find 'kSecAttrAccount' in scope
151 | return Set([singleKey])
152 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:155:42: error: cannot find 'kSecAttrAccount' in scope
153 | } else if let multipleMatches = collection as? [[String: AnyHashable]] {
154 | return Set(multipleMatches.compactMap({ attributes in
155 | let key = attributes[kSecAttrAccount as String] as? String
| `- error: cannot find 'kSecAttrAccount' in scope
156 | return key != canaryKey ? key : nil
157 | }))
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:180:21: error: cannot find 'kSecMatchLimit' in scope
178 | }
179 |
180 | guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
| `- error: cannot find 'kSecMatchLimit' in scope
181 | // Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.
182 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:180:74: error: cannot find 'kSecMatchLimitOne' in scope
178 | }
179 |
180 | guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
| `- error: cannot find 'kSecMatchLimitOne' in scope
181 | // Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.
182 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:180:61: error: cannot find type 'CFString' in scope
178 | }
179 |
180 | guard query[kSecMatchLimit as String] as? String as CFString? != kSecMatchLimitOne else {
| `- error: cannot find type 'CFString' in scope
181 | // Migration requires kSecMatchLimit to be set to kSecMatchLimitAll.
182 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:185:21: error: cannot find 'kSecReturnData' in scope
183 | }
184 |
185 | guard query[kSecReturnData as String] as? Bool != true else {
| `- error: cannot find 'kSecReturnData' in scope
186 | // kSecReturnData is not supported in a migration query.
187 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:190:21: error: cannot find 'kSecReturnAttributes' in scope
188 | }
189 |
190 | guard query[kSecReturnAttributes as String] as? Bool != false else {
| `- error: cannot find 'kSecReturnAttributes' in scope
191 | // Migration requires kSecReturnAttributes to be set to kCFBooleanTrue.
192 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:195:21: error: cannot find 'kSecReturnRef' in scope
193 | }
194 |
195 | guard query[kSecReturnRef as String] as? Bool != true else {
| `- error: cannot find 'kSecReturnRef' in scope
196 | // kSecReturnRef is not supported in a migration query.
197 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:200:21: error: cannot find 'kSecReturnPersistentRef' in scope
198 | }
199 |
200 | guard query[kSecReturnPersistentRef as String] as? Bool != false else {
| `- error: cannot find 'kSecReturnPersistentRef' in scope
201 | // Migration requires kSecReturnPersistentRef to be set to kCFBooleanTrue.
202 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:205:21: error: cannot find 'kSecClass' in scope
203 | }
204 |
205 | guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
| `- error: cannot find 'kSecClass' in scope
206 | // Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.
207 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:205:69: error: cannot find 'kSecClassGenericPassword' in scope
203 | }
204 |
205 | guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
| `- error: cannot find 'kSecClassGenericPassword' in scope
206 | // Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.
207 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:205:56: error: cannot find type 'CFString' in scope
203 | }
204 |
205 | guard query[kSecClass as String] as? String as CFString? == kSecClassGenericPassword else {
| `- error: cannot find type 'CFString' in scope
206 | // Migration requires kSecClass to be set to kSecClassGenericPassword to avoid data loss.
207 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:210:21: error: cannot find 'kSecAttrAccessControl' in scope
208 | }
209 |
210 | guard query[kSecAttrAccessControl as String] == nil else {
| `- error: cannot find 'kSecAttrAccessControl' in scope
211 | // kSecAttrAccessControl is not supported in a migration query. Keychain items can not be migrated en masse from the Secure Enclave.
212 | throw MigrationError.invalidQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:216:22: error: cannot find 'kSecMatchLimit' in scope
214 |
215 | var secItemQuery = query
216 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
| `- error: cannot find 'kSecMatchLimit' in scope
217 | secItemQuery[kSecReturnAttributes as String] = true
218 | secItemQuery[kSecReturnData as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:216:50: error: cannot find 'kSecMatchLimitAll' in scope
214 |
215 | var secItemQuery = query
216 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
| `- error: cannot find 'kSecMatchLimitAll' in scope
217 | secItemQuery[kSecReturnAttributes as String] = true
218 | secItemQuery[kSecReturnData as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:217:22: error: cannot find 'kSecReturnAttributes' in scope
215 | var secItemQuery = query
216 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
217 | secItemQuery[kSecReturnAttributes as String] = true
| `- error: cannot find 'kSecReturnAttributes' in scope
218 | secItemQuery[kSecReturnData as String] = false
219 | secItemQuery[kSecReturnRef as String] = false
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:218:22: error: cannot find 'kSecReturnData' in scope
216 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
217 | secItemQuery[kSecReturnAttributes as String] = true
218 | secItemQuery[kSecReturnData as String] = false
| `- error: cannot find 'kSecReturnData' in scope
219 | secItemQuery[kSecReturnRef as String] = false
220 | secItemQuery[kSecReturnPersistentRef as String] = true
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:219:22: error: cannot find 'kSecReturnRef' in scope
217 | secItemQuery[kSecReturnAttributes as String] = true
218 | secItemQuery[kSecReturnData as String] = false
219 | secItemQuery[kSecReturnRef as String] = false
| `- error: cannot find 'kSecReturnRef' in scope
220 | secItemQuery[kSecReturnPersistentRef as String] = true
221 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:220:22: error: cannot find 'kSecReturnPersistentRef' in scope
218 | secItemQuery[kSecReturnData as String] = false
219 | secItemQuery[kSecReturnRef as String] = false
220 | secItemQuery[kSecReturnPersistentRef as String] = true
| `- error: cannot find 'kSecReturnPersistentRef' in scope
221 |
222 | let collection: Any = try SecItem.copy(matching: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:237:62: error: cannot find 'kSecValuePersistentRef' in scope
235 | var retrievedItemsToMigrateWithData = [[String : AnyHashable]]()
236 | for retrievedItem in retrievedItemsToMigrate {
237 | guard let retrievedPersistentRef = retrievedItem[kSecValuePersistentRef as String] else {
| `- error: cannot find 'kSecValuePersistentRef' in scope
238 | throw KeychainError.couldNotAccessKeychain
239 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:243:17: error: cannot find 'kSecValuePersistentRef' in scope
241 |
242 | let retrieveDataQuery: [String : AnyHashable] = [
243 | kSecValuePersistentRef as String : retrievedPersistentRef,
| `- error: cannot find 'kSecValuePersistentRef' in scope
244 | kSecReturnData as String : true
245 | ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:244:17: error: cannot find 'kSecReturnData' in scope
242 | let retrieveDataQuery: [String : AnyHashable] = [
243 | kSecValuePersistentRef as String : retrievedPersistentRef,
244 | kSecReturnData as String : true
| `- error: cannot find 'kSecReturnData' in scope
245 | ]
246 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:254:48: error: cannot find 'kSecValueData' in scope
252 |
253 | var retrievedItemToMigrateWithData = retrievedItem
254 | retrievedItemToMigrateWithData[kSecValueData as String] = data
| `- error: cannot find 'kSecValueData' in scope
255 | retrievedItemsToMigrateWithData.append(retrievedItemToMigrateWithData)
256 | } catch KeychainError.itemNotFound {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:268:43: error: cannot find 'kSecAttrAccount' in scope
266 | var keyValuePairsToMigrate = [String: Data]()
267 | for keychainEntry in retrievedItemsToMigrateWithData {
268 | guard let key = keychainEntry[kSecAttrAccount as String] else {
| `- error: cannot find 'kSecAttrAccount' in scope
269 | throw MigrationError.keyToMigrateInvalid
270 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:277:44: error: cannot find 'kSecValueData' in scope
275 | }
276 |
277 | guard let data = keychainEntry[kSecValueData as String] as? Data else {
| `- error: cannot find 'kSecValueData' in scope
278 | // This state should be impossible, per Apple's documentation for `kSecValueData`.
279 | throw MigrationError.dataToMigrateInvalid
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:299:100: error: cannot find 'errSecItemNotFound' in scope
297 | }
298 |
299 | if Keychain.performCopy(forKey: migratablePair.key, options: destinationAttributes) == errSecItemNotFound {
| `- error: cannot find 'errSecItemNotFound' in scope
300 | keyValuePairsToMigrate[migratablePair.key] = migratablePair.value
301 | } else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:59:81: error: cannot find type 'OSStatus' in scope
57 | }
58 |
59 | internal static func performCopy(matching query: [String : AnyHashable]) -> OSStatus {
| `- error: cannot find type 'OSStatus' in scope
60 | guard !query.isEmpty else {
61 | // Must provide a query with at least one item
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:38:22: error: cannot find 'errSecNotAvailable' in scope
36 | }
37 |
38 | var status = errSecNotAvailable
| `- error: cannot find 'errSecNotAvailable' in scope
39 | var result: AnyObject? = nil
40 | execute(in: secItemLock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:41:22: error: cannot find 'SecItemCopyMatching' in scope
39 | var result: AnyObject? = nil
40 | execute(in: secItemLock) {
41 | status = SecItemCopyMatching(query as CFDictionary, &result)
| `- error: cannot find 'SecItemCopyMatching' in scope
42 | }
43 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:41:51: error: cannot find type 'CFDictionary' in scope
39 | var result: AnyObject? = nil
40 | execute(in: secItemLock) {
41 | status = SecItemCopyMatching(query as CFDictionary, &result)
| `- error: cannot find type 'CFDictionary' in scope
42 | }
43 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:44:22: error: cannot find 'errSecSuccess' in scope
42 | }
43 |
44 | if status == errSecSuccess {
| `- error: cannot find 'errSecSuccess' in scope
45 | if let result = result as? DesiredType {
46 | return result
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:37:18: error: cannot find type 'OSStatus' in scope
35 | case emptyValue
36 |
37 | init(status: OSStatus) {
| `- error: cannot find type 'OSStatus' in scope
38 | switch status {
39 | case errSecItemNotFound:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:19: error: no exact matches in call to initializer
53 |
54 | } else {
55 | throw KeychainError(status: status)
| `- error: no exact matches in call to initializer
56 | }
57 | }
Foundation.__BridgedNSError:5:12: note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
2 | public var _domain: String { get }
3 | public var _code: Int { get }
4 | public init?(rawValue: Self.RawValue)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(rawValue:)')
5 | public init?(_bridgedNSError: NSError)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
6 | public var hashValue: Int { get }
7 | public func hash(into hasher: inout Hasher)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:19: error: thrown expression type 'KeychainError?' does not conform to 'Error'
53 |
54 | } else {
55 | throw KeychainError(status: status)
| `- error: thrown expression type 'KeychainError?' does not conform to 'Error'
56 | }
57 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:65:22: error: cannot find 'errSecNotAvailable' in scope
63 | }
64 |
65 | var status = errSecNotAvailable
| `- error: cannot find 'errSecNotAvailable' in scope
66 | execute(in: secItemLock) {
67 | status = SecItemCopyMatching(query as CFDictionary, nil)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:67:22: error: cannot find 'SecItemCopyMatching' in scope
65 | var status = errSecNotAvailable
66 | execute(in: secItemLock) {
67 | status = SecItemCopyMatching(query as CFDictionary, nil)
| `- error: cannot find 'SecItemCopyMatching' in scope
68 | }
69 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:67:51: error: cannot find type 'CFDictionary' in scope
65 | var status = errSecNotAvailable
66 | execute(in: secItemLock) {
67 | status = SecItemCopyMatching(query as CFDictionary, nil)
| `- error: cannot find type 'CFDictionary' in scope
68 | }
69 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:67:65: error: 'nil' requires a contextual type
65 | var status = errSecNotAvailable
66 | execute(in: secItemLock) {
67 | status = SecItemCopyMatching(query as CFDictionary, nil)
| `- error: 'nil' requires a contextual type
68 | }
69 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:78:22: error: cannot find 'errSecNotAvailable' in scope
76 | }
77 |
78 | var status = errSecNotAvailable
| `- error: cannot find 'errSecNotAvailable' in scope
79 | var result: AnyObject? = nil
80 | execute(in: secItemLock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:81:22: error: cannot find 'SecItemAdd' in scope
79 | var result: AnyObject? = nil
80 | execute(in: secItemLock) {
81 | status = SecItemAdd(attributes as CFDictionary, &result)
| `- error: cannot find 'SecItemAdd' in scope
82 | }
83 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:81:47: error: cannot find type 'CFDictionary' in scope
79 | var result: AnyObject? = nil
80 | execute(in: secItemLock) {
81 | status = SecItemAdd(attributes as CFDictionary, &result)
| `- error: cannot find type 'CFDictionary' in scope
82 | }
83 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:85:14: error: cannot find 'errSecSuccess' in scope
83 |
84 | switch status {
85 | case errSecSuccess:
| `- error: cannot find 'errSecSuccess' in scope
86 | // We're done!
87 | break
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:89:19: error: no exact matches in call to initializer
87 | break
88 | default:
89 | throw KeychainError(status: status)
| `- error: no exact matches in call to initializer
90 | }
91 | }
Foundation.__BridgedNSError:5:12: note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
2 | public var _domain: String { get }
3 | public var _code: Int { get }
4 | public init?(rawValue: Self.RawValue)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(rawValue:)')
5 | public init?(_bridgedNSError: NSError)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
6 | public var hashValue: Int { get }
7 | public func hash(into hasher: inout Hasher)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:89:19: error: thrown expression type 'KeychainError?' does not conform to 'Error'
87 | break
88 | default:
89 | throw KeychainError(status: status)
| `- error: thrown expression type 'KeychainError?' does not conform to 'Error'
90 | }
91 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:102:22: error: cannot find 'errSecNotAvailable' in scope
100 | }
101 |
102 | var status = errSecNotAvailable
| `- error: cannot find 'errSecNotAvailable' in scope
103 | execute(in: secItemLock) {
104 | status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:104:22: error: cannot find 'SecItemUpdate' in scope
102 | var status = errSecNotAvailable
103 | execute(in: secItemLock) {
104 | status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
| `- error: cannot find 'SecItemUpdate' in scope
105 | }
106 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:104:45: error: cannot find type 'CFDictionary' in scope
102 | var status = errSecNotAvailable
103 | execute(in: secItemLock) {
104 | status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
105 | }
106 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:104:73: error: cannot find type 'CFDictionary' in scope
102 | var status = errSecNotAvailable
103 | execute(in: secItemLock) {
104 | status = SecItemUpdate(query as CFDictionary, attributes as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
105 | }
106 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:108:14: error: cannot find 'errSecSuccess' in scope
106 |
107 | switch status {
108 | case errSecSuccess:
| `- error: cannot find 'errSecSuccess' in scope
109 | // We're done!
110 | break
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:112:19: error: no exact matches in call to initializer
110 | break
111 | default:
112 | throw KeychainError(status: status)
| `- error: no exact matches in call to initializer
113 | }
114 | }
Foundation.__BridgedNSError:5:12: note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
2 | public var _domain: String { get }
3 | public var _code: Int { get }
4 | public init?(rawValue: Self.RawValue)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(rawValue:)')
5 | public init?(_bridgedNSError: NSError)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
6 | public var hashValue: Int { get }
7 | public func hash(into hasher: inout Hasher)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:112:19: error: thrown expression type 'KeychainError?' does not conform to 'Error'
110 | break
111 | default:
112 | throw KeychainError(status: status)
| `- error: thrown expression type 'KeychainError?' does not conform to 'Error'
113 | }
114 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:126:22: error: cannot find 'errSecNotAvailable' in scope
124 | secItemQuery[kSecMatchLimit as String] = kSecMatchLimitAll
125 | #endif
126 | var status = errSecNotAvailable
| `- error: cannot find 'errSecNotAvailable' in scope
127 | execute(in: secItemLock) {
128 | status = SecItemDelete(secItemQuery as CFDictionary)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:128:22: error: cannot find 'SecItemDelete' in scope
126 | var status = errSecNotAvailable
127 | execute(in: secItemLock) {
128 | status = SecItemDelete(secItemQuery as CFDictionary)
| `- error: cannot find 'SecItemDelete' in scope
129 | }
130 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:128:52: error: cannot find type 'CFDictionary' in scope
126 | var status = errSecNotAvailable
127 | execute(in: secItemLock) {
128 | status = SecItemDelete(secItemQuery as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
129 | }
130 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:131:22: error: cannot find 'errSecSuccess' in scope
129 | }
130 |
131 | if status == errSecSuccess {
| `- error: cannot find 'errSecSuccess' in scope
132 | // We're done!
133 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:135:20: error: no exact matches in call to initializer
133 |
134 | } else {
135 | switch KeychainError(status: status) {
| `- error: no exact matches in call to initializer
136 | case .couldNotAccessKeychain:
137 | throw KeychainError.couldNotAccessKeychain
Foundation.__BridgedNSError:5:12: note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
2 | public var _domain: String { get }
3 | public var _code: Int { get }
4 | public init?(rawValue: Self.RawValue)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(rawValue:)')
5 | public init?(_bridgedNSError: NSError)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
6 | public var hashValue: Int { get }
7 | public func hash(into hasher: inout Hasher)
[6/20] Compiling Valet Service.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:63:13: error: cannot find 'kSecClass' in scope
61 | internal func generateBaseQuery() -> [String : AnyHashable] {
62 | var baseQuery: [String : AnyHashable] = [
63 | kSecClass as String : kSecClassGenericPassword as String,
| `- error: cannot find 'kSecClass' in scope
64 | kSecAttrService as String : secService,
65 | ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:63:35: error: cannot find 'kSecClassGenericPassword' in scope
61 | internal func generateBaseQuery() -> [String : AnyHashable] {
62 | var baseQuery: [String : AnyHashable] = [
63 | kSecClass as String : kSecClassGenericPassword as String,
| `- error: cannot find 'kSecClassGenericPassword' in scope
64 | kSecAttrService as String : secService,
65 | ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:64:13: error: cannot find 'kSecAttrService' in scope
62 | var baseQuery: [String : AnyHashable] = [
63 | kSecClass as String : kSecClassGenericPassword as String,
64 | kSecAttrService as String : secService,
| `- error: cannot find 'kSecAttrService' in scope
65 | ]
66 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:68:23: error: cannot find 'kSecUseDataProtectionKeychain' in scope
66 |
67 | if #available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *) {
68 | baseQuery[kSecUseDataProtectionKeychain as String] = true
| `- error: cannot find 'kSecUseDataProtectionKeychain' in scope
69 | }
70 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:77:23: error: cannot find 'kSecAttrAccessGroup' in scope
75 |
76 | case let .sharedGroup(groupIdentifier, _, desiredConfiguration):
77 | baseQuery[kSecAttrAccessGroup as String] = groupIdentifier.description
| `- error: cannot find 'kSecAttrAccessGroup' in scope
78 | configuration = desiredConfiguration
79 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:92:23: error: cannot find 'kSecAttrAccessible' in scope
90 | switch configuration {
91 | case .valet:
92 | baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
| `- error: cannot find 'kSecAttrAccessible' in scope
93 |
94 | case .iCloud:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:95:23: error: cannot find 'kSecAttrSynchronizable' in scope
93 |
94 | case .iCloud:
95 | baseQuery[kSecAttrSynchronizable as String] = true
| `- error: cannot find 'kSecAttrSynchronizable' in scope
96 | baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
97 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:96:23: error: cannot find 'kSecAttrAccessible' in scope
94 | case .iCloud:
95 | baseQuery[kSecAttrSynchronizable as String] = true
96 | baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
| `- error: cannot find 'kSecAttrAccessible' in scope
97 |
98 | case let .secureEnclave(desiredAccessControl),
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:101:23: error: cannot find 'kSecAttrAccessControl' in scope
99 | let .singlePromptSecureEnclave(desiredAccessControl):
100 | // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
101 | baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
| `- error: cannot find 'kSecAttrAccessControl' in scope
102 | }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:101:58: error: cannot find 'SecAccessControlCreateWithFlags' in scope
99 | let .singlePromptSecureEnclave(desiredAccessControl):
100 | // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
101 | baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
| `- error: cannot find 'SecAccessControlCreateWithFlags' in scope
102 | }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:101:95: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
99 | let .singlePromptSecureEnclave(desiredAccessControl):
100 | // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
101 | baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
| `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
102 | }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift:67:36: error: cannot find type 'SecAccessControlCreateFlags' in scope
65 | // MARK: Internal Properties
66 |
67 | internal var secAccessControl: SecAccessControlCreateFlags {
| `- error: cannot find type 'SecAccessControlCreateFlags' in scope
68 | switch self {
69 | case .userPresence:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:101:90: error: 'nil' requires a contextual type
99 | let .singlePromptSecureEnclave(desiredAccessControl):
100 | // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
101 | baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
| `- error: 'nil' requires a contextual type
102 | }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:101:183: error: 'nil' requires a contextual type
99 | let .singlePromptSecureEnclave(desiredAccessControl):
100 | // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
101 | baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
| `- error: 'nil' requires a contextual type
102 | }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:37:18: error: cannot find type 'OSStatus' in scope
35 | case emptyValue
36 |
37 | init(status: OSStatus) {
| `- error: cannot find type 'OSStatus' in scope
38 | switch status {
39 | case errSecItemNotFound:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:39:14: error: cannot find 'errSecItemNotFound' in scope
37 | init(status: OSStatus) {
38 | switch status {
39 | case errSecItemNotFound:
| `- error: cannot find 'errSecItemNotFound' in scope
40 | self = .itemNotFound
41 | case errSecUserCanceled,
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:41:14: error: cannot find 'errSecUserCanceled' in scope
39 | case errSecItemNotFound:
40 | self = .itemNotFound
41 | case errSecUserCanceled,
| `- error: cannot find 'errSecUserCanceled' in scope
42 | errSecAuthFailed:
43 | self = .userCancelled
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:42:14: error: cannot find 'errSecAuthFailed' in scope
40 | self = .itemNotFound
41 | case errSecUserCanceled,
42 | errSecAuthFailed:
| `- error: cannot find 'errSecAuthFailed' in scope
43 | self = .userCancelled
44 | case errSecMissingEntitlement:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:44:14: error: cannot find 'errSecMissingEntitlement' in scope
42 | errSecAuthFailed:
43 | self = .userCancelled
44 | case errSecMissingEntitlement:
| `- error: cannot find 'errSecMissingEntitlement' in scope
45 | self = .missingEntitlement
46 | default:
[7/20] Compiling Valet KeychainError.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:63:13: error: cannot find 'kSecClass' in scope
61 | internal func generateBaseQuery() -> [String : AnyHashable] {
62 | var baseQuery: [String : AnyHashable] = [
63 | kSecClass as String : kSecClassGenericPassword as String,
| `- error: cannot find 'kSecClass' in scope
64 | kSecAttrService as String : secService,
65 | ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:63:35: error: cannot find 'kSecClassGenericPassword' in scope
61 | internal func generateBaseQuery() -> [String : AnyHashable] {
62 | var baseQuery: [String : AnyHashable] = [
63 | kSecClass as String : kSecClassGenericPassword as String,
| `- error: cannot find 'kSecClassGenericPassword' in scope
64 | kSecAttrService as String : secService,
65 | ]
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:64:13: error: cannot find 'kSecAttrService' in scope
62 | var baseQuery: [String : AnyHashable] = [
63 | kSecClass as String : kSecClassGenericPassword as String,
64 | kSecAttrService as String : secService,
| `- error: cannot find 'kSecAttrService' in scope
65 | ]
66 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:68:23: error: cannot find 'kSecUseDataProtectionKeychain' in scope
66 |
67 | if #available(iOS 13.0, tvOS 13.0, watchOS 6.0, macOS 10.15, *) {
68 | baseQuery[kSecUseDataProtectionKeychain as String] = true
| `- error: cannot find 'kSecUseDataProtectionKeychain' in scope
69 | }
70 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:77:23: error: cannot find 'kSecAttrAccessGroup' in scope
75 |
76 | case let .sharedGroup(groupIdentifier, _, desiredConfiguration):
77 | baseQuery[kSecAttrAccessGroup as String] = groupIdentifier.description
| `- error: cannot find 'kSecAttrAccessGroup' in scope
78 | configuration = desiredConfiguration
79 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:92:23: error: cannot find 'kSecAttrAccessible' in scope
90 | switch configuration {
91 | case .valet:
92 | baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
| `- error: cannot find 'kSecAttrAccessible' in scope
93 |
94 | case .iCloud:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:95:23: error: cannot find 'kSecAttrSynchronizable' in scope
93 |
94 | case .iCloud:
95 | baseQuery[kSecAttrSynchronizable as String] = true
| `- error: cannot find 'kSecAttrSynchronizable' in scope
96 | baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
97 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:96:23: error: cannot find 'kSecAttrAccessible' in scope
94 | case .iCloud:
95 | baseQuery[kSecAttrSynchronizable as String] = true
96 | baseQuery[kSecAttrAccessible as String] = configuration.accessibility.secAccessibilityAttribute
| `- error: cannot find 'kSecAttrAccessible' in scope
97 |
98 | case let .secureEnclave(desiredAccessControl),
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:101:23: error: cannot find 'kSecAttrAccessControl' in scope
99 | let .singlePromptSecureEnclave(desiredAccessControl):
100 | // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
101 | baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
| `- error: cannot find 'kSecAttrAccessControl' in scope
102 | }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:101:58: error: cannot find 'SecAccessControlCreateWithFlags' in scope
99 | let .singlePromptSecureEnclave(desiredAccessControl):
100 | // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
101 | baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
| `- error: cannot find 'SecAccessControlCreateWithFlags' in scope
102 | }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:101:95: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
99 | let .singlePromptSecureEnclave(desiredAccessControl):
100 | // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
101 | baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
| `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
102 | }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift:67:36: error: cannot find type 'SecAccessControlCreateFlags' in scope
65 | // MARK: Internal Properties
66 |
67 | internal var secAccessControl: SecAccessControlCreateFlags {
| `- error: cannot find type 'SecAccessControlCreateFlags' in scope
68 | switch self {
69 | case .userPresence:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:101:90: error: 'nil' requires a contextual type
99 | let .singlePromptSecureEnclave(desiredAccessControl):
100 | // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
101 | baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
| `- error: 'nil' requires a contextual type
102 | }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift:101:183: error: 'nil' requires a contextual type
99 | let .singlePromptSecureEnclave(desiredAccessControl):
100 | // Note that kSecAttrAccessControl and kSecAttrAccessible are mutually exclusive.
101 | baseQuery[kSecAttrAccessControl as String] = SecAccessControlCreateWithFlags(nil, kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly, desiredAccessControl.secAccessControl, nil)
| `- error: 'nil' requires a contextual type
102 | }
103 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:37:18: error: cannot find type 'OSStatus' in scope
35 | case emptyValue
36 |
37 | init(status: OSStatus) {
| `- error: cannot find type 'OSStatus' in scope
38 | switch status {
39 | case errSecItemNotFound:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:39:14: error: cannot find 'errSecItemNotFound' in scope
37 | init(status: OSStatus) {
38 | switch status {
39 | case errSecItemNotFound:
| `- error: cannot find 'errSecItemNotFound' in scope
40 | self = .itemNotFound
41 | case errSecUserCanceled,
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:41:14: error: cannot find 'errSecUserCanceled' in scope
39 | case errSecItemNotFound:
40 | self = .itemNotFound
41 | case errSecUserCanceled,
| `- error: cannot find 'errSecUserCanceled' in scope
42 | errSecAuthFailed:
43 | self = .userCancelled
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:42:14: error: cannot find 'errSecAuthFailed' in scope
40 | self = .itemNotFound
41 | case errSecUserCanceled,
42 | errSecAuthFailed:
| `- error: cannot find 'errSecAuthFailed' in scope
43 | self = .userCancelled
44 | case errSecMissingEntitlement:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:44:14: error: cannot find 'errSecMissingEntitlement' in scope
42 | errSecAuthFailed:
43 | self = .userCancelled
44 | case errSecMissingEntitlement:
| `- error: cannot find 'errSecMissingEntitlement' in scope
45 | self = .missingEntitlement
46 | default:
[8/20] Compiling Valet SecureEnclave.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:69:26: error: cannot find 'kSecUseOperationPrompt' in scope
67 | var secItemQuery = options
68 | if !userPrompt.isEmpty {
69 | secItemQuery[kSecUseOperationPrompt as String] = userPrompt
| `- error: cannot find 'kSecUseOperationPrompt' in scope
70 | }
71 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:82:22: error: cannot find 'kSecUseAuthenticationUI' in scope
80 | internal static func containsObject(forKey key: String, options: [String : AnyHashable]) throws -> Bool {
81 | var secItemQuery = options
82 | secItemQuery[kSecUseAuthenticationUI as String] = kSecUseAuthenticationUIFail
| `- error: cannot find 'kSecUseAuthenticationUI' in scope
83 |
84 | let status = Keychain.performCopy(forKey: key, options: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:82:59: error: cannot find 'kSecUseAuthenticationUIFail' in scope
80 | internal static func containsObject(forKey key: String, options: [String : AnyHashable]) throws -> Bool {
81 | var secItemQuery = options
82 | secItemQuery[kSecUseAuthenticationUI as String] = kSecUseAuthenticationUIFail
| `- error: cannot find 'kSecUseAuthenticationUIFail' in scope
83 |
84 | let status = Keychain.performCopy(forKey: key, options: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:130:94: error: cannot find type 'OSStatus' in scope
128 | // MARK: Contains
129 |
130 | internal static func performCopy(forKey key: String, options: [String : AnyHashable]) -> OSStatus {
| `- error: cannot find type 'OSStatus' in scope
131 | guard !key.isEmpty else {
132 | return errSecParam
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:86:14: error: cannot find 'errSecSuccess' in scope
84 | let status = Keychain.performCopy(forKey: key, options: secItemQuery)
85 | switch status {
86 | case errSecSuccess,
| `- error: cannot find 'errSecSuccess' in scope
87 | errSecInteractionNotAllowed:
88 | // An item exists in the keychain if we could successfully copy the item, or if we got an error telling us we weren't allowed to copy the item since we couldn't prompt the user.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:87:14: error: cannot find 'errSecInteractionNotAllowed' in scope
85 | switch status {
86 | case errSecSuccess,
87 | errSecInteractionNotAllowed:
| `- error: cannot find 'errSecInteractionNotAllowed' in scope
88 | // An item exists in the keychain if we could successfully copy the item, or if we got an error telling us we weren't allowed to copy the item since we couldn't prompt the user.
89 | return true
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:90:14: error: cannot find 'errSecItemNotFound' in scope
88 | // An item exists in the keychain if we could successfully copy the item, or if we got an error telling us we weren't allowed to copy the item since we couldn't prompt the user.
89 | return true
90 | case errSecItemNotFound:
| `- error: cannot find 'errSecItemNotFound' in scope
91 | return false
92 | default:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:37:18: error: cannot find type 'OSStatus' in scope
35 | case emptyValue
36 |
37 | init(status: OSStatus) {
| `- error: cannot find type 'OSStatus' in scope
38 | switch status {
39 | case errSecItemNotFound:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:93:19: error: no exact matches in call to initializer
91 | return false
92 | default:
93 | throw KeychainError(status: status)
| `- error: no exact matches in call to initializer
94 | }
95 | }
Foundation.__BridgedNSError:5:12: note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
2 | public var _domain: String { get }
3 | public var _code: Int { get }
4 | public init?(rawValue: Self.RawValue)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(rawValue:)')
5 | public init?(_bridgedNSError: NSError)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
6 | public var hashValue: Int { get }
7 | public func hash(into hasher: inout Hasher)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:93:19: error: thrown expression type 'KeychainError?' does not conform to 'Error'
91 | return false
92 | default:
93 | throw KeychainError(status: status)
| `- error: thrown expression type 'KeychainError?' does not conform to 'Error'
94 | }
95 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:118:26: error: cannot find 'kSecUseOperationPrompt' in scope
116 | var secItemQuery = options
117 | if !userPrompt.isEmpty {
118 | secItemQuery[kSecUseOperationPrompt as String] = userPrompt
| `- error: cannot find 'kSecUseOperationPrompt' in scope
119 | }
120 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift:67:36: error: cannot find type 'SecAccessControlCreateFlags' in scope
65 | // MARK: Internal Properties
66 |
67 | internal var secAccessControl: SecAccessControlCreateFlags {
| `- error: cannot find type 'SecAccessControlCreateFlags' in scope
68 | switch self {
69 | case .userPresence:
[9/20] Compiling Valet SecureEnclaveAccessControl.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:69:26: error: cannot find 'kSecUseOperationPrompt' in scope
67 | var secItemQuery = options
68 | if !userPrompt.isEmpty {
69 | secItemQuery[kSecUseOperationPrompt as String] = userPrompt
| `- error: cannot find 'kSecUseOperationPrompt' in scope
70 | }
71 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:82:22: error: cannot find 'kSecUseAuthenticationUI' in scope
80 | internal static func containsObject(forKey key: String, options: [String : AnyHashable]) throws -> Bool {
81 | var secItemQuery = options
82 | secItemQuery[kSecUseAuthenticationUI as String] = kSecUseAuthenticationUIFail
| `- error: cannot find 'kSecUseAuthenticationUI' in scope
83 |
84 | let status = Keychain.performCopy(forKey: key, options: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:82:59: error: cannot find 'kSecUseAuthenticationUIFail' in scope
80 | internal static func containsObject(forKey key: String, options: [String : AnyHashable]) throws -> Bool {
81 | var secItemQuery = options
82 | secItemQuery[kSecUseAuthenticationUI as String] = kSecUseAuthenticationUIFail
| `- error: cannot find 'kSecUseAuthenticationUIFail' in scope
83 |
84 | let status = Keychain.performCopy(forKey: key, options: secItemQuery)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:130:94: error: cannot find type 'OSStatus' in scope
128 | // MARK: Contains
129 |
130 | internal static func performCopy(forKey key: String, options: [String : AnyHashable]) -> OSStatus {
| `- error: cannot find type 'OSStatus' in scope
131 | guard !key.isEmpty else {
132 | return errSecParam
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:86:14: error: cannot find 'errSecSuccess' in scope
84 | let status = Keychain.performCopy(forKey: key, options: secItemQuery)
85 | switch status {
86 | case errSecSuccess,
| `- error: cannot find 'errSecSuccess' in scope
87 | errSecInteractionNotAllowed:
88 | // An item exists in the keychain if we could successfully copy the item, or if we got an error telling us we weren't allowed to copy the item since we couldn't prompt the user.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:87:14: error: cannot find 'errSecInteractionNotAllowed' in scope
85 | switch status {
86 | case errSecSuccess,
87 | errSecInteractionNotAllowed:
| `- error: cannot find 'errSecInteractionNotAllowed' in scope
88 | // An item exists in the keychain if we could successfully copy the item, or if we got an error telling us we weren't allowed to copy the item since we couldn't prompt the user.
89 | return true
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:90:14: error: cannot find 'errSecItemNotFound' in scope
88 | // An item exists in the keychain if we could successfully copy the item, or if we got an error telling us we weren't allowed to copy the item since we couldn't prompt the user.
89 | return true
90 | case errSecItemNotFound:
| `- error: cannot find 'errSecItemNotFound' in scope
91 | return false
92 | default:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:37:18: error: cannot find type 'OSStatus' in scope
35 | case emptyValue
36 |
37 | init(status: OSStatus) {
| `- error: cannot find type 'OSStatus' in scope
38 | switch status {
39 | case errSecItemNotFound:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:93:19: error: no exact matches in call to initializer
91 | return false
92 | default:
93 | throw KeychainError(status: status)
| `- error: no exact matches in call to initializer
94 | }
95 | }
Foundation.__BridgedNSError:5:12: note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
2 | public var _domain: String { get }
3 | public var _code: Int { get }
4 | public init?(rawValue: Self.RawValue)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(rawValue:)')
5 | public init?(_bridgedNSError: NSError)
| `- note: incorrect labels for candidate (have: '(status:)', expected: '(_bridgedNSError:)')
6 | public var hashValue: Int { get }
7 | public func hash(into hasher: inout Hasher)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:93:19: error: thrown expression type 'KeychainError?' does not conform to 'Error'
91 | return false
92 | default:
93 | throw KeychainError(status: status)
| `- error: thrown expression type 'KeychainError?' does not conform to 'Error'
94 | }
95 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift:118:26: error: cannot find 'kSecUseOperationPrompt' in scope
116 | var secItemQuery = options
117 | if !userPrompt.isEmpty {
118 | secItemQuery[kSecUseOperationPrompt as String] = userPrompt
| `- error: cannot find 'kSecUseOperationPrompt' in scope
119 | }
120 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift:67:36: error: cannot find type 'SecAccessControlCreateFlags' in scope
65 | // MARK: Internal Properties
66 |
67 | internal var secAccessControl: SecAccessControlCreateFlags {
| `- error: cannot find type 'SecAccessControlCreateFlags' in scope
68 | switch self {
69 | case .userPresence:
[10/20] Compiling Valet MigratableKeyValuePair.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:52:2: error: Objective-C interoperability is disabled
50 | // MARK: - Objective-C Compatibility
51 |
52 | @objc(VALMigratableKeyValuePairInput)
| `- error: Objective-C interoperability is disabled
53 | public final class ObjectiveCCompatibilityMigratableKeyValuePairInput: NSObject {
54 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:65:6: error: Objective-C interoperability is disabled
63 |
64 | /// The key in the key:value pair.
65 | @objc
| `- error: Objective-C interoperability is disabled
66 | public let key: Any
67 | /// The value in the key:value pair.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:68:6: error: Objective-C interoperability is disabled
66 | public let key: Any
67 | /// The value in the key:value pair.
68 | @objc
| `- error: Objective-C interoperability is disabled
69 | public let value: Data
70 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:72:2: error: Objective-C interoperability is disabled
70 | }
71 |
72 | @objc(VALMigratableKeyValuePairOutput)
| `- error: Objective-C interoperability is disabled
73 | public class ObjectiveCCompatibilityMigratableKeyValuePairOutput: NSObject {
74 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:81:6: error: Objective-C interoperability is disabled
79 | /// - key: The key in the key:value pair.
80 | /// - value: The value in the key:value pair.
81 | @objc
| `- error: Objective-C interoperability is disabled
82 | public init(key: String, value: Data) {
83 | self.key = key
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:92:6: error: Objective-C interoperability is disabled
90 | /// - key: The key in the key:value pair.
91 | /// - stringValue: The desired value in the key:value pair, represented as a String.
92 | @objc
| `- error: Objective-C interoperability is disabled
93 | public init(key: String, stringValue: String) {
94 | self.key = key
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:103:6: error: Objective-C interoperability is disabled
101 | /// A sentinal `ObjectiveCCompatibilityMigratableKeyValuePairOutput` that conveys that the migration should be prevented.
102 | @available(swift, obsoleted: 1.0)
103 | @objc
| `- error: Objective-C interoperability is disabled
104 | public static func preventMigration() -> ObjectiveCCompatibilityMigratableKeyValuePairOutput {
105 | ObjectiveCCompatibilityPreventMigrationOutput()
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:111:6: error: Objective-C interoperability is disabled
109 |
110 | /// The key in the key:value pair.
111 | @objc
| `- error: Objective-C interoperability is disabled
112 | public let key: String
113 | /// The value in the key:value pair.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:114:6: error: Objective-C interoperability is disabled
112 | public let key: String
113 | /// The value in the key:value pair.
114 | @objc
| `- error: Objective-C interoperability is disabled
115 | public let value: Data
116 |
[11/20] Compiling Valet MigrationError.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:52:2: error: Objective-C interoperability is disabled
50 | // MARK: - Objective-C Compatibility
51 |
52 | @objc(VALMigratableKeyValuePairInput)
| `- error: Objective-C interoperability is disabled
53 | public final class ObjectiveCCompatibilityMigratableKeyValuePairInput: NSObject {
54 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:65:6: error: Objective-C interoperability is disabled
63 |
64 | /// The key in the key:value pair.
65 | @objc
| `- error: Objective-C interoperability is disabled
66 | public let key: Any
67 | /// The value in the key:value pair.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:68:6: error: Objective-C interoperability is disabled
66 | public let key: Any
67 | /// The value in the key:value pair.
68 | @objc
| `- error: Objective-C interoperability is disabled
69 | public let value: Data
70 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:72:2: error: Objective-C interoperability is disabled
70 | }
71 |
72 | @objc(VALMigratableKeyValuePairOutput)
| `- error: Objective-C interoperability is disabled
73 | public class ObjectiveCCompatibilityMigratableKeyValuePairOutput: NSObject {
74 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:81:6: error: Objective-C interoperability is disabled
79 | /// - key: The key in the key:value pair.
80 | /// - value: The value in the key:value pair.
81 | @objc
| `- error: Objective-C interoperability is disabled
82 | public init(key: String, value: Data) {
83 | self.key = key
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:92:6: error: Objective-C interoperability is disabled
90 | /// - key: The key in the key:value pair.
91 | /// - stringValue: The desired value in the key:value pair, represented as a String.
92 | @objc
| `- error: Objective-C interoperability is disabled
93 | public init(key: String, stringValue: String) {
94 | self.key = key
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:103:6: error: Objective-C interoperability is disabled
101 | /// A sentinal `ObjectiveCCompatibilityMigratableKeyValuePairOutput` that conveys that the migration should be prevented.
102 | @available(swift, obsoleted: 1.0)
103 | @objc
| `- error: Objective-C interoperability is disabled
104 | public static func preventMigration() -> ObjectiveCCompatibilityMigratableKeyValuePairOutput {
105 | ObjectiveCCompatibilityPreventMigrationOutput()
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:111:6: error: Objective-C interoperability is disabled
109 |
110 | /// The key in the key:value pair.
111 | @objc
| `- error: Objective-C interoperability is disabled
112 | public let key: String
113 | /// The value in the key:value pair.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:114:6: error: Objective-C interoperability is disabled
112 | public let key: String
113 | /// The value in the key:value pair.
114 | @objc
| `- error: Objective-C interoperability is disabled
115 | public let value: Data
116 |
[12/20] Compiling Valet SecureEnclaveValet.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:21:2: error: Objective-C interoperability is disabled
19 |
20 | /// 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.
21 | @objc(VALSecureEnclaveValet)
| `- error: Objective-C interoperability is disabled
22 | public final class SecureEnclaveValet: NSObject, Sendable {
23 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:67:47: error: cannot find 'NSMapTable' in scope
65 | // MARK: Private Class Properties
66 |
67 | private static let identifierToValetMap = NSMapTable<NSString, SecureEnclaveValet>.strongToWeakObjects()
| `- error: cannot find 'NSMapTable' in scope
68 |
69 | // MARK: Initialization
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:106:6: error: Objective-C interoperability is disabled
104 |
105 | public let identifier: Identifier
106 | @objc
| `- error: Objective-C interoperability is disabled
107 | public let accessControl: SecureEnclaveAccessControl
108 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:113:6: error: Objective-C interoperability is disabled
111 | /// - Returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
112 | /// - 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.
113 | @objc
| `- error: Objective-C interoperability is disabled
114 | public func canAccessKeychain() -> Bool {
115 | SecureEnclave.canAccessKeychain(with: service)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:123:6: error: Objective-C interoperability is disabled
121 | /// - Throws: An error of type `KeychainError`.
122 | /// - Important: Inserted data should be no larger than 4kb.
123 | @objc
| `- error: Objective-C interoperability is disabled
124 | public func setObject(_ object: Data, forKey key: String) throws {
125 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:135:6: error: Objective-C interoperability is disabled
133 | /// - Returns: The data currently stored in the keychain for the provided key.
134 | /// - Throws: An error of type `KeychainError`.
135 | @objc
| `- error: Objective-C interoperability is disabled
136 | public func object(forKey key: String, withPrompt userPrompt: String) throws -> Data {
137 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:157:6: error: Objective-C interoperability is disabled
155 | /// - Throws: An error of type `KeychainError`.
156 | /// - Important: Inserted data should be no larger than 4kb.
157 | @objc
| `- error: Objective-C interoperability is disabled
158 | public func setString(_ string: String, forKey key: String) throws {
159 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:169:6: error: Objective-C interoperability is disabled
167 | /// - Returns: The string currently stored in the keychain for the provided key.
168 | /// - Throws: An error of type `KeychainError`.
169 | @objc
| `- error: Objective-C interoperability is disabled
170 | public func string(forKey key: String, withPrompt userPrompt: String) throws -> String {
171 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:179:6: error: Objective-C interoperability is disabled
177 | /// - Parameter key: A key used to remove the desired object from the keychain.
178 | /// - Throws: An error of type `KeychainError`.
179 | @objc
| `- error: Objective-C interoperability is disabled
180 | public func removeObject(forKey key: String) throws {
181 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:188:6: error: Objective-C interoperability is disabled
186 | /// Removes all key/object pairs accessible by this Valet instance from the keychain.
187 | /// - Throws: An error of type `KeychainError`.
188 | @objc
| `- error: Objective-C interoperability is disabled
189 | public func removeAllObjects() throws {
190 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:201:6: error: Objective-C interoperability is disabled
199 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
200 | /// - Note: The keychain is not modified if an error is thrown.
201 | @objc
| `- error: Objective-C interoperability is disabled
202 | public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) throws {
203 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:214:6: error: Objective-C interoperability is disabled
212 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
213 | /// - Note: The keychain is not modified if an error is thrown.
214 | @objc
| `- error: Objective-C interoperability is disabled
215 | public func migrateObjects(from valet: Valet, removeOnCompletion: Bool) throws {
216 | try migrateObjects(matching: valet.baseKeychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:251:6: error: Objective-C interoperability is disabled
249 | /// - accessControl: The desired access control for the SecureEnclaveValet.
250 | /// - Returns: A SecureEnclaveValet that reads/writes keychain elements with the desired flavor.
251 | @objc(valetWithIdentifier:accessControl:)
| `- error: Objective-C interoperability is disabled
252 | public class func 🚫swift_valet(with identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
253 | guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:265:6: error: Objective-C interoperability is disabled
263 | /// - Returns: A SecureEnclaveValet that reads/writes keychain elements that can be shared across applications written by the same development team.
264 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
265 | @objc(sharedGroupValetWithAppIDPrefix:sharedGroupIdentifier:accessControl:)
| `- error: Objective-C interoperability is disabled
266 | public class func 🚫swift_sharedGroupValet(appIDPrefix: String, nonEmptyIdentifier identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
267 | guard let identifier = SharedGroupIdentifier(appIDPrefix: appIDPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:279:6: error: Objective-C interoperability is disabled
277 | /// - Returns: A SecureEnclaveValet that reads/writes keychain elements that can be shared across applications written by the same development team.
278 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
279 | @objc(sharedGroupValetWithGroupPrefix:sharedGroupIdentifier:accessControl:)
| `- error: Objective-C interoperability is disabled
280 | public class func 🚫swift_sharedGroupValet(groupPrefix: String, nonEmptyIdentifier identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
281 | guard let identifier = SharedGroupIdentifier(groupPrefix: groupPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:291:6: error: Objective-C interoperability is disabled
289 | /// - Note: Will never prompt the user for Face ID, Touch ID, or password.
290 | @available(swift, obsoleted: 1.0)
291 | @objc(containsObjectForKey:)
| `- error: Objective-C interoperability is disabled
292 | public func 🚫swift_containsObject(forKey key: String) -> Bool {
293 | guard let containsObject = try? containsObject(forKey: key) else {
[13/20] Compiling Valet SharedGroupIdentifier.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:21:2: error: Objective-C interoperability is disabled
19 |
20 | /// 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.
21 | @objc(VALSecureEnclaveValet)
| `- error: Objective-C interoperability is disabled
22 | public final class SecureEnclaveValet: NSObject, Sendable {
23 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:67:47: error: cannot find 'NSMapTable' in scope
65 | // MARK: Private Class Properties
66 |
67 | private static let identifierToValetMap = NSMapTable<NSString, SecureEnclaveValet>.strongToWeakObjects()
| `- error: cannot find 'NSMapTable' in scope
68 |
69 | // MARK: Initialization
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:106:6: error: Objective-C interoperability is disabled
104 |
105 | public let identifier: Identifier
106 | @objc
| `- error: Objective-C interoperability is disabled
107 | public let accessControl: SecureEnclaveAccessControl
108 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:113:6: error: Objective-C interoperability is disabled
111 | /// - Returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
112 | /// - 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.
113 | @objc
| `- error: Objective-C interoperability is disabled
114 | public func canAccessKeychain() -> Bool {
115 | SecureEnclave.canAccessKeychain(with: service)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:123:6: error: Objective-C interoperability is disabled
121 | /// - Throws: An error of type `KeychainError`.
122 | /// - Important: Inserted data should be no larger than 4kb.
123 | @objc
| `- error: Objective-C interoperability is disabled
124 | public func setObject(_ object: Data, forKey key: String) throws {
125 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:135:6: error: Objective-C interoperability is disabled
133 | /// - Returns: The data currently stored in the keychain for the provided key.
134 | /// - Throws: An error of type `KeychainError`.
135 | @objc
| `- error: Objective-C interoperability is disabled
136 | public func object(forKey key: String, withPrompt userPrompt: String) throws -> Data {
137 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:157:6: error: Objective-C interoperability is disabled
155 | /// - Throws: An error of type `KeychainError`.
156 | /// - Important: Inserted data should be no larger than 4kb.
157 | @objc
| `- error: Objective-C interoperability is disabled
158 | public func setString(_ string: String, forKey key: String) throws {
159 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:169:6: error: Objective-C interoperability is disabled
167 | /// - Returns: The string currently stored in the keychain for the provided key.
168 | /// - Throws: An error of type `KeychainError`.
169 | @objc
| `- error: Objective-C interoperability is disabled
170 | public func string(forKey key: String, withPrompt userPrompt: String) throws -> String {
171 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:179:6: error: Objective-C interoperability is disabled
177 | /// - Parameter key: A key used to remove the desired object from the keychain.
178 | /// - Throws: An error of type `KeychainError`.
179 | @objc
| `- error: Objective-C interoperability is disabled
180 | public func removeObject(forKey key: String) throws {
181 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:188:6: error: Objective-C interoperability is disabled
186 | /// Removes all key/object pairs accessible by this Valet instance from the keychain.
187 | /// - Throws: An error of type `KeychainError`.
188 | @objc
| `- error: Objective-C interoperability is disabled
189 | public func removeAllObjects() throws {
190 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:201:6: error: Objective-C interoperability is disabled
199 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
200 | /// - Note: The keychain is not modified if an error is thrown.
201 | @objc
| `- error: Objective-C interoperability is disabled
202 | public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) throws {
203 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:214:6: error: Objective-C interoperability is disabled
212 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
213 | /// - Note: The keychain is not modified if an error is thrown.
214 | @objc
| `- error: Objective-C interoperability is disabled
215 | public func migrateObjects(from valet: Valet, removeOnCompletion: Bool) throws {
216 | try migrateObjects(matching: valet.baseKeychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:251:6: error: Objective-C interoperability is disabled
249 | /// - accessControl: The desired access control for the SecureEnclaveValet.
250 | /// - Returns: A SecureEnclaveValet that reads/writes keychain elements with the desired flavor.
251 | @objc(valetWithIdentifier:accessControl:)
| `- error: Objective-C interoperability is disabled
252 | public class func 🚫swift_valet(with identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
253 | guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:265:6: error: Objective-C interoperability is disabled
263 | /// - Returns: A SecureEnclaveValet that reads/writes keychain elements that can be shared across applications written by the same development team.
264 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
265 | @objc(sharedGroupValetWithAppIDPrefix:sharedGroupIdentifier:accessControl:)
| `- error: Objective-C interoperability is disabled
266 | public class func 🚫swift_sharedGroupValet(appIDPrefix: String, nonEmptyIdentifier identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
267 | guard let identifier = SharedGroupIdentifier(appIDPrefix: appIDPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:279:6: error: Objective-C interoperability is disabled
277 | /// - Returns: A SecureEnclaveValet that reads/writes keychain elements that can be shared across applications written by the same development team.
278 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
279 | @objc(sharedGroupValetWithGroupPrefix:sharedGroupIdentifier:accessControl:)
| `- error: Objective-C interoperability is disabled
280 | public class func 🚫swift_sharedGroupValet(groupPrefix: String, nonEmptyIdentifier identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
281 | guard let identifier = SharedGroupIdentifier(groupPrefix: groupPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:291:6: error: Objective-C interoperability is disabled
289 | /// - Note: Will never prompt the user for Face ID, Touch ID, or password.
290 | @available(swift, obsoleted: 1.0)
291 | @objc(containsObjectForKey:)
| `- error: Objective-C interoperability is disabled
292 | public func 🚫swift_containsObject(forKey key: String) -> Bool {
293 | guard let containsObject = try? containsObject(forKey: key) else {
[14/20] Compiling Valet Accessibility.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:54:37: error: cannot find type 'CFString' in scope
52 |
53 | public var secAccessibilityAttribute: String {
54 | let accessibilityAttribute: CFString
| `- error: cannot find type 'CFString' in scope
55 |
56 | switch self {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:58:38: error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
56 | switch self {
57 | case .afterFirstUnlock:
58 | accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlock
| `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
59 | case .afterFirstUnlockThisDeviceOnly:
60 | accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:60:38: error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
58 | accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlock
59 | case .afterFirstUnlockThisDeviceOnly:
60 | accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
| `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
61 | case .whenPasscodeSetThisDeviceOnly:
62 | accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:62:38: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
60 | accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
61 | case .whenPasscodeSetThisDeviceOnly:
62 | accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
| `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
63 | case .whenUnlocked:
64 | accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:64:38: error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
62 | accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
63 | case .whenUnlocked:
64 | accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
| `- error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
65 | case .whenUnlockedThisDeviceOnly:
66 | accessibilityAttribute = kSecAttrAccessibleWhenUnlockedThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:66:38: error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
64 | accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
65 | case .whenUnlockedThisDeviceOnly:
66 | accessibilityAttribute = kSecAttrAccessibleWhenUnlockedThisDeviceOnly
| `- error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
67 | }
68 |
[15/20] Compiling Valet CloudAccessibility.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:54:37: error: cannot find type 'CFString' in scope
52 |
53 | public var secAccessibilityAttribute: String {
54 | let accessibilityAttribute: CFString
| `- error: cannot find type 'CFString' in scope
55 |
56 | switch self {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:58:38: error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
56 | switch self {
57 | case .afterFirstUnlock:
58 | accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlock
| `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
59 | case .afterFirstUnlockThisDeviceOnly:
60 | accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:60:38: error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
58 | accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlock
59 | case .afterFirstUnlockThisDeviceOnly:
60 | accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
| `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
61 | case .whenPasscodeSetThisDeviceOnly:
62 | accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:62:38: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
60 | accessibilityAttribute = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
61 | case .whenPasscodeSetThisDeviceOnly:
62 | accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
| `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
63 | case .whenUnlocked:
64 | accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:64:38: error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
62 | accessibilityAttribute = kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
63 | case .whenUnlocked:
64 | accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
| `- error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
65 | case .whenUnlockedThisDeviceOnly:
66 | accessibilityAttribute = kSecAttrAccessibleWhenUnlockedThisDeviceOnly
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift:66:38: error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
64 | accessibilityAttribute = kSecAttrAccessibleWhenUnlocked
65 | case .whenUnlockedThisDeviceOnly:
66 | accessibilityAttribute = kSecAttrAccessibleWhenUnlockedThisDeviceOnly
| `- error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
67 | }
68 |
[16/20] Compiling Valet Identifier.swift
[17/20] Compiling Valet Configuration.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[18/20] Emitting module Valet
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:130:94: error: cannot find type 'OSStatus' in scope
128 | // MARK: Contains
129 |
130 | internal static func performCopy(forKey key: String, options: [String : AnyHashable]) -> OSStatus {
| `- error: cannot find type 'OSStatus' in scope
131 | guard !key.isEmpty else {
132 | return errSecParam
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:59:81: error: cannot find type 'OSStatus' in scope
57 | }
58 |
59 | internal static func performCopy(matching query: [String : AnyHashable]) -> OSStatus {
| `- error: cannot find type 'OSStatus' in scope
60 | guard !query.isEmpty else {
61 | // Must provide a query with at least one item
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainError.swift:37:18: error: cannot find type 'OSStatus' in scope
35 | case emptyValue
36 |
37 | init(status: OSStatus) {
| `- error: cannot find type 'OSStatus' in scope
38 | switch status {
39 | case errSecItemNotFound:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:52:2: error: Objective-C interoperability is disabled
50 | // MARK: - Objective-C Compatibility
51 |
52 | @objc(VALMigratableKeyValuePairInput)
| `- error: Objective-C interoperability is disabled
53 | public final class ObjectiveCCompatibilityMigratableKeyValuePairInput: NSObject {
54 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:65:6: error: Objective-C interoperability is disabled
63 |
64 | /// The key in the key:value pair.
65 | @objc
| `- error: Objective-C interoperability is disabled
66 | public let key: Any
67 | /// The value in the key:value pair.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:68:6: error: Objective-C interoperability is disabled
66 | public let key: Any
67 | /// The value in the key:value pair.
68 | @objc
| `- error: Objective-C interoperability is disabled
69 | public let value: Data
70 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:72:2: error: Objective-C interoperability is disabled
70 | }
71 |
72 | @objc(VALMigratableKeyValuePairOutput)
| `- error: Objective-C interoperability is disabled
73 | public class ObjectiveCCompatibilityMigratableKeyValuePairOutput: NSObject {
74 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:81:6: error: Objective-C interoperability is disabled
79 | /// - key: The key in the key:value pair.
80 | /// - value: The value in the key:value pair.
81 | @objc
| `- error: Objective-C interoperability is disabled
82 | public init(key: String, value: Data) {
83 | self.key = key
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:92:6: error: Objective-C interoperability is disabled
90 | /// - key: The key in the key:value pair.
91 | /// - stringValue: The desired value in the key:value pair, represented as a String.
92 | @objc
| `- error: Objective-C interoperability is disabled
93 | public init(key: String, stringValue: String) {
94 | self.key = key
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:103:6: error: Objective-C interoperability is disabled
101 | /// A sentinal `ObjectiveCCompatibilityMigratableKeyValuePairOutput` that conveys that the migration should be prevented.
102 | @available(swift, obsoleted: 1.0)
103 | @objc
| `- error: Objective-C interoperability is disabled
104 | public static func preventMigration() -> ObjectiveCCompatibilityMigratableKeyValuePairOutput {
105 | ObjectiveCCompatibilityPreventMigrationOutput()
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:111:6: error: Objective-C interoperability is disabled
109 |
110 | /// The key in the key:value pair.
111 | @objc
| `- error: Objective-C interoperability is disabled
112 | public let key: String
113 | /// The value in the key:value pair.
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigratableKeyValuePair.swift:114:6: error: Objective-C interoperability is disabled
112 | public let key: String
113 | /// The value in the key:value pair.
114 | @objc
| `- error: Objective-C interoperability is disabled
115 | public let value: Data
116 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift:67:36: error: cannot find type 'SecAccessControlCreateFlags' in scope
65 | // MARK: Internal Properties
66 |
67 | internal var secAccessControl: SecAccessControlCreateFlags {
| `- error: cannot find type 'SecAccessControlCreateFlags' in scope
68 | switch self {
69 | case .userPresence:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:21:2: error: Objective-C interoperability is disabled
19 |
20 | /// 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.
21 | @objc(VALSecureEnclaveValet)
| `- error: Objective-C interoperability is disabled
22 | public final class SecureEnclaveValet: NSObject, Sendable {
23 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:67:47: error: cannot find 'NSMapTable' in scope
65 | // MARK: Private Class Properties
66 |
67 | private static let identifierToValetMap = NSMapTable<NSString, SecureEnclaveValet>.strongToWeakObjects()
| `- error: cannot find 'NSMapTable' in scope
68 |
69 | // MARK: Initialization
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:106:6: error: Objective-C interoperability is disabled
104 |
105 | public let identifier: Identifier
106 | @objc
| `- error: Objective-C interoperability is disabled
107 | public let accessControl: SecureEnclaveAccessControl
108 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:113:6: error: Objective-C interoperability is disabled
111 | /// - Returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
112 | /// - 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.
113 | @objc
| `- error: Objective-C interoperability is disabled
114 | public func canAccessKeychain() -> Bool {
115 | SecureEnclave.canAccessKeychain(with: service)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:123:6: error: Objective-C interoperability is disabled
121 | /// - Throws: An error of type `KeychainError`.
122 | /// - Important: Inserted data should be no larger than 4kb.
123 | @objc
| `- error: Objective-C interoperability is disabled
124 | public func setObject(_ object: Data, forKey key: String) throws {
125 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:135:6: error: Objective-C interoperability is disabled
133 | /// - Returns: The data currently stored in the keychain for the provided key.
134 | /// - Throws: An error of type `KeychainError`.
135 | @objc
| `- error: Objective-C interoperability is disabled
136 | public func object(forKey key: String, withPrompt userPrompt: String) throws -> Data {
137 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:157:6: error: Objective-C interoperability is disabled
155 | /// - Throws: An error of type `KeychainError`.
156 | /// - Important: Inserted data should be no larger than 4kb.
157 | @objc
| `- error: Objective-C interoperability is disabled
158 | public func setString(_ string: String, forKey key: String) throws {
159 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:169:6: error: Objective-C interoperability is disabled
167 | /// - Returns: The string currently stored in the keychain for the provided key.
168 | /// - Throws: An error of type `KeychainError`.
169 | @objc
| `- error: Objective-C interoperability is disabled
170 | public func string(forKey key: String, withPrompt userPrompt: String) throws -> String {
171 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:179:6: error: Objective-C interoperability is disabled
177 | /// - Parameter key: A key used to remove the desired object from the keychain.
178 | /// - Throws: An error of type `KeychainError`.
179 | @objc
| `- error: Objective-C interoperability is disabled
180 | public func removeObject(forKey key: String) throws {
181 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:188:6: error: Objective-C interoperability is disabled
186 | /// Removes all key/object pairs accessible by this Valet instance from the keychain.
187 | /// - Throws: An error of type `KeychainError`.
188 | @objc
| `- error: Objective-C interoperability is disabled
189 | public func removeAllObjects() throws {
190 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:201:6: error: Objective-C interoperability is disabled
199 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
200 | /// - Note: The keychain is not modified if an error is thrown.
201 | @objc
| `- error: Objective-C interoperability is disabled
202 | public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) throws {
203 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:214:6: error: Objective-C interoperability is disabled
212 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
213 | /// - Note: The keychain is not modified if an error is thrown.
214 | @objc
| `- error: Objective-C interoperability is disabled
215 | public func migrateObjects(from valet: Valet, removeOnCompletion: Bool) throws {
216 | try migrateObjects(matching: valet.baseKeychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:251:6: error: Objective-C interoperability is disabled
249 | /// - accessControl: The desired access control for the SecureEnclaveValet.
250 | /// - Returns: A SecureEnclaveValet that reads/writes keychain elements with the desired flavor.
251 | @objc(valetWithIdentifier:accessControl:)
| `- error: Objective-C interoperability is disabled
252 | public class func 🚫swift_valet(with identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
253 | guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:265:6: error: Objective-C interoperability is disabled
263 | /// - Returns: A SecureEnclaveValet that reads/writes keychain elements that can be shared across applications written by the same development team.
264 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
265 | @objc(sharedGroupValetWithAppIDPrefix:sharedGroupIdentifier:accessControl:)
| `- error: Objective-C interoperability is disabled
266 | public class func 🚫swift_sharedGroupValet(appIDPrefix: String, nonEmptyIdentifier identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
267 | guard let identifier = SharedGroupIdentifier(appIDPrefix: appIDPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:279:6: error: Objective-C interoperability is disabled
277 | /// - Returns: A SecureEnclaveValet that reads/writes keychain elements that can be shared across applications written by the same development team.
278 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
279 | @objc(sharedGroupValetWithGroupPrefix:sharedGroupIdentifier:accessControl:)
| `- error: Objective-C interoperability is disabled
280 | public class func 🚫swift_sharedGroupValet(groupPrefix: String, nonEmptyIdentifier identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
281 | guard let identifier = SharedGroupIdentifier(groupPrefix: groupPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:291:6: error: Objective-C interoperability is disabled
289 | /// - Note: Will never prompt the user for Face ID, Touch ID, or password.
290 | @available(swift, obsoleted: 1.0)
291 | @objc(containsObjectForKey:)
| `- error: Objective-C interoperability is disabled
292 | public func 🚫swift_containsObject(forKey key: String) -> Bool {
293 | guard let containsObject = try? containsObject(forKey: key) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:21:2: error: Objective-C interoperability is disabled
19 |
20 | /// Reads and writes keychain elements.
21 | @objc(VALValet)
| `- error: Objective-C interoperability is disabled
22 | public final class Valet: NSObject, Sendable {
23 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:115:47: error: cannot find 'NSMapTable' in scope
113 | // MARK: Private Class Properties
114 |
115 | private static let identifierToValetMap = NSMapTable<NSString, Valet>.strongToWeakObjects()
| `- error: cannot find 'NSMapTable' in scope
116 |
117 | // MARK: Private Class Functions
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:233:6: error: Objective-C interoperability is disabled
231 | // MARK: Public Properties
232 |
233 | @objc
| `- error: Objective-C interoperability is disabled
234 | public let accessibility: Accessibility
235 | public let identifier: Identifier
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:241:6: error: Objective-C interoperability is disabled
239 | /// - Returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
240 | /// - Note: Determined by writing a value to the keychain and then reading it back out.
241 | @objc
| `- error: Objective-C interoperability is disabled
242 | public func canAccessKeychain() -> Bool {
243 | execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:253:6: error: Objective-C interoperability is disabled
251 | /// - Throws: An error of type `KeychainError`.
252 | /// - Important: Inserted data should be no larger than 4kb.
253 | @objc
| `- error: Objective-C interoperability is disabled
254 | public func setObject(_ object: Data, forKey key: String) throws {
255 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:263:6: error: Objective-C interoperability is disabled
261 | /// - Returns: The data currently stored in the keychain for the provided key.
262 | /// - Throws: An error of type `KeychainError`.
263 | @objc
| `- error: Objective-C interoperability is disabled
264 | public func object(forKey key: String) throws -> Data {
265 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:292:6: error: Objective-C interoperability is disabled
290 | /// - Throws: An error of type `KeychainError`.
291 | /// - Important: Inserted data should be no larger than 4kb.
292 | @objc
| `- error: Objective-C interoperability is disabled
293 | public func setString(_ string: String, forKey key: String) throws {
294 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:302:6: error: Objective-C interoperability is disabled
300 | /// - Returns: The string currently stored in the keychain for the provided key.
301 | /// - Throws: An error of type `KeychainError`.
302 | @objc
| `- error: Objective-C interoperability is disabled
303 | public func string(forKey key: String) throws -> String {
304 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:311:6: error: Objective-C interoperability is disabled
309 | /// - Returns: The set of all (String) keys currently stored in this Valet instance. If no items are found, will return an empty set.
310 | /// - Throws: An error of type `KeychainError`.
311 | @objc
| `- error: Objective-C interoperability is disabled
312 | public func allKeys() throws -> Set<String> {
313 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:322:6: error: Objective-C interoperability is disabled
320 | /// - Throws: An error of type `KeychainError`.
321 | /// - Note: No error is thrown if the `key` is not found in the keychain.
322 | @objc
| `- error: Objective-C interoperability is disabled
323 | public func removeObject(forKey key: String) throws {
324 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:331:6: error: Objective-C interoperability is disabled
329 | /// Removes all key/object pairs accessible by this Valet instance from the keychain.
330 | /// - Throws: An error of type `KeychainError`.
331 | @objc
| `- error: Objective-C interoperability is disabled
332 | public func removeAllObjects() throws {
333 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:356:6: error: Objective-C interoperability is disabled
354 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
355 | /// - Note: The keychain is not modified if an error is thrown.
356 | @objc
| `- error: Objective-C interoperability is disabled
357 | public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) throws {
358 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:381:6: error: Objective-C interoperability is disabled
379 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
380 | /// - Note: The keychain is not modified if an error is thrown.
381 | @objc
| `- error: Objective-C interoperability is disabled
382 | public func migrateObjects(from valet: Valet, removeOnCompletion: Bool) throws {
383 | try migrateObjects(matching: valet.baseKeychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:391:6: error: Objective-C interoperability is disabled
389 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
390 | /// - Note: The keychain is not modified if an error is thrown.
391 | @objc
| `- error: Objective-C interoperability is disabled
392 | public func migrateObjectsFromAlwaysAccessibleValet(removeOnCompletion: Bool) throws {
393 | var keychainQuery = baseKeychainQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:426:6: error: Objective-C interoperability is disabled
424 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
425 | /// - Note: The keychain is not modified if an error is thrown.
426 | @objc
| `- error: Objective-C interoperability is disabled
427 | public func migrateObjectsFromAlwaysAccessibleThisDeviceOnlyValet(removeOnCompletion: Bool) throws {
428 | var keychainQuery = baseKeychainQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:505:6: error: Objective-C interoperability is disabled
503 | /// - Returns: A Valet that reads/writes keychain elements with the desired accessibility.
504 | @available(swift, obsoleted: 1.0)
505 | @objc(valetWithIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
506 | public class func 🚫swift_vanillaValet(with identifier: String, accessibility: Accessibility) -> Valet? {
507 | guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:518:6: error: Objective-C interoperability is disabled
516 | /// - Returns: A Valet that reads/writes iCloud-shared keychain elements with the desired accessibility.
517 | @available(swift, obsoleted: 1.0)
518 | @objc(iCloudValetWithIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
519 | public class func 🚫swift_iCloudValet(with identifier: String, accessibility: CloudAccessibility) -> Valet? {
520 | guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:533:6: error: Objective-C interoperability is disabled
531 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
532 | @available(swift, obsoleted: 1.0)
533 | @objc(sharedGroupValetWithAppIDPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
534 | public class func 🚫swift_vanillaSharedGroupValet(appIDPrefix: String, nonEmptyIdentifier identifier: String, accessibility: Accessibility) -> Valet? {
535 | guard let identifier = SharedGroupIdentifier(appIDPrefix: appIDPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:548:6: error: Objective-C interoperability is disabled
546 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
547 | @available(swift, obsoleted: 1.0)
548 | @objc(sharedGroupValetWithGroupPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
549 | public class func 🚫swift_vanillaSharedGroupValet(groupPrefix: String, nonEmptyIdentifier identifier: String, accessibility: Accessibility) -> Valet? {
550 | guard let identifier = SharedGroupIdentifier(groupPrefix: groupPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:562:6: error: Objective-C interoperability is disabled
560 | /// - Returns: A Valet that reads/writes iCloud-shared keychain elements that can be shared across applications written by the same development team.
561 | @available(swift, obsoleted: 1.0)
562 | @objc(iCloudValetWithAppIDPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
563 | public class func 🚫swift_iCloudSharedGroupValet(appIDPrefix: String, nonEmptyIdentifier identifier: String, accessibility: CloudAccessibility) -> Valet? {
564 | guard let identifier = SharedGroupIdentifier(appIDPrefix: appIDPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:576:6: error: Objective-C interoperability is disabled
574 | /// - Returns: A Valet that reads/writes iCloud-shared keychain elements that can be shared across applications written by the same development team.
575 | @available(swift, obsoleted: 1.0)
576 | @objc(iCloudValetWithGroupPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
577 | public class func 🚫swift_iCloudSharedGroupValet(groupPrefix: String, nonEmptyIdentifier identifier: String, accessibility: CloudAccessibility) -> Valet? {
578 | guard let identifier = SharedGroupIdentifier(groupPrefix: groupPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:660:6: error: Objective-C interoperability is disabled
658 | /// - Note: Will never prompt the user for Face ID, Touch ID, or password.
659 | @available(swift, obsoleted: 1.0)
660 | @objc(containsObjectForKey:)
| `- error: Objective-C interoperability is disabled
661 | public func 🚫swift_containsObject(forKey key: String) -> Bool {
662 | guard let containsObject = try? containsObject(forKey: key) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:674:6: error: Objective-C interoperability is disabled
672 | /// - error: An error of type `KeychainError` or `MigrationError`.
673 | @available(swift, obsoleted: 1.0)
674 | @objc(migrateObjectsMatching:compactMap:error:)
| `- error: Objective-C interoperability is disabled
675 | public func 🚫swift_migrateObjects(matching query: [String : AnyHashable], compactMap: (ObjectiveCCompatibilityMigratableKeyValuePairInput) -> ObjectiveCCompatibilityMigratableKeyValuePairOutput?) throws {
676 | try objc_compatibility_migrateObjects(matching: query, compactMap: compactMap)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:685:6: error: Objective-C interoperability is disabled
683 | /// - error: An error of type `KeychainError` or `MigrationError`.
684 | @available(swift, obsoleted: 1.0)
685 | @objc(migrateObjectsFrom:compactMap:error:)
| `- error: Objective-C interoperability is disabled
686 | public func 🚫swift_migrateObjects(from valet: Valet, compactMap: (ObjectiveCCompatibilityMigratableKeyValuePairInput) -> ObjectiveCCompatibilityMigratableKeyValuePairOutput?) throws {
687 | try objc_compatibility_migrateObjects(matching: valet.baseKeychainQuery, compactMap: compactMap)
[19/20] Compiling Valet SinglePromptSecureEnclaveValet.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:21:2: error: Objective-C interoperability is disabled
19 |
20 | /// Reads and writes keychain elements.
21 | @objc(VALValet)
| `- error: Objective-C interoperability is disabled
22 | public final class Valet: NSObject, Sendable {
23 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:115:47: error: cannot find 'NSMapTable' in scope
113 | // MARK: Private Class Properties
114 |
115 | private static let identifierToValetMap = NSMapTable<NSString, Valet>.strongToWeakObjects()
| `- error: cannot find 'NSMapTable' in scope
116 |
117 | // MARK: Private Class Functions
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:233:6: error: Objective-C interoperability is disabled
231 | // MARK: Public Properties
232 |
233 | @objc
| `- error: Objective-C interoperability is disabled
234 | public let accessibility: Accessibility
235 | public let identifier: Identifier
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:241:6: error: Objective-C interoperability is disabled
239 | /// - Returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
240 | /// - Note: Determined by writing a value to the keychain and then reading it back out.
241 | @objc
| `- error: Objective-C interoperability is disabled
242 | public func canAccessKeychain() -> Bool {
243 | execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:253:6: error: Objective-C interoperability is disabled
251 | /// - Throws: An error of type `KeychainError`.
252 | /// - Important: Inserted data should be no larger than 4kb.
253 | @objc
| `- error: Objective-C interoperability is disabled
254 | public func setObject(_ object: Data, forKey key: String) throws {
255 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:263:6: error: Objective-C interoperability is disabled
261 | /// - Returns: The data currently stored in the keychain for the provided key.
262 | /// - Throws: An error of type `KeychainError`.
263 | @objc
| `- error: Objective-C interoperability is disabled
264 | public func object(forKey key: String) throws -> Data {
265 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:292:6: error: Objective-C interoperability is disabled
290 | /// - Throws: An error of type `KeychainError`.
291 | /// - Important: Inserted data should be no larger than 4kb.
292 | @objc
| `- error: Objective-C interoperability is disabled
293 | public func setString(_ string: String, forKey key: String) throws {
294 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:302:6: error: Objective-C interoperability is disabled
300 | /// - Returns: The string currently stored in the keychain for the provided key.
301 | /// - Throws: An error of type `KeychainError`.
302 | @objc
| `- error: Objective-C interoperability is disabled
303 | public func string(forKey key: String) throws -> String {
304 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:311:6: error: Objective-C interoperability is disabled
309 | /// - Returns: The set of all (String) keys currently stored in this Valet instance. If no items are found, will return an empty set.
310 | /// - Throws: An error of type `KeychainError`.
311 | @objc
| `- error: Objective-C interoperability is disabled
312 | public func allKeys() throws -> Set<String> {
313 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:322:6: error: Objective-C interoperability is disabled
320 | /// - Throws: An error of type `KeychainError`.
321 | /// - Note: No error is thrown if the `key` is not found in the keychain.
322 | @objc
| `- error: Objective-C interoperability is disabled
323 | public func removeObject(forKey key: String) throws {
324 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:331:6: error: Objective-C interoperability is disabled
329 | /// Removes all key/object pairs accessible by this Valet instance from the keychain.
330 | /// - Throws: An error of type `KeychainError`.
331 | @objc
| `- error: Objective-C interoperability is disabled
332 | public func removeAllObjects() throws {
333 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:356:6: error: Objective-C interoperability is disabled
354 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
355 | /// - Note: The keychain is not modified if an error is thrown.
356 | @objc
| `- error: Objective-C interoperability is disabled
357 | public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) throws {
358 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:381:6: error: Objective-C interoperability is disabled
379 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
380 | /// - Note: The keychain is not modified if an error is thrown.
381 | @objc
| `- error: Objective-C interoperability is disabled
382 | public func migrateObjects(from valet: Valet, removeOnCompletion: Bool) throws {
383 | try migrateObjects(matching: valet.baseKeychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:391:6: error: Objective-C interoperability is disabled
389 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
390 | /// - Note: The keychain is not modified if an error is thrown.
391 | @objc
| `- error: Objective-C interoperability is disabled
392 | public func migrateObjectsFromAlwaysAccessibleValet(removeOnCompletion: Bool) throws {
393 | var keychainQuery = baseKeychainQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:426:6: error: Objective-C interoperability is disabled
424 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
425 | /// - Note: The keychain is not modified if an error is thrown.
426 | @objc
| `- error: Objective-C interoperability is disabled
427 | public func migrateObjectsFromAlwaysAccessibleThisDeviceOnlyValet(removeOnCompletion: Bool) throws {
428 | var keychainQuery = baseKeychainQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:505:6: error: Objective-C interoperability is disabled
503 | /// - Returns: A Valet that reads/writes keychain elements with the desired accessibility.
504 | @available(swift, obsoleted: 1.0)
505 | @objc(valetWithIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
506 | public class func 🚫swift_vanillaValet(with identifier: String, accessibility: Accessibility) -> Valet? {
507 | guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:518:6: error: Objective-C interoperability is disabled
516 | /// - Returns: A Valet that reads/writes iCloud-shared keychain elements with the desired accessibility.
517 | @available(swift, obsoleted: 1.0)
518 | @objc(iCloudValetWithIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
519 | public class func 🚫swift_iCloudValet(with identifier: String, accessibility: CloudAccessibility) -> Valet? {
520 | guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:533:6: error: Objective-C interoperability is disabled
531 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
532 | @available(swift, obsoleted: 1.0)
533 | @objc(sharedGroupValetWithAppIDPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
534 | public class func 🚫swift_vanillaSharedGroupValet(appIDPrefix: String, nonEmptyIdentifier identifier: String, accessibility: Accessibility) -> Valet? {
535 | guard let identifier = SharedGroupIdentifier(appIDPrefix: appIDPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:548:6: error: Objective-C interoperability is disabled
546 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
547 | @available(swift, obsoleted: 1.0)
548 | @objc(sharedGroupValetWithGroupPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
549 | public class func 🚫swift_vanillaSharedGroupValet(groupPrefix: String, nonEmptyIdentifier identifier: String, accessibility: Accessibility) -> Valet? {
550 | guard let identifier = SharedGroupIdentifier(groupPrefix: groupPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:562:6: error: Objective-C interoperability is disabled
560 | /// - Returns: A Valet that reads/writes iCloud-shared keychain elements that can be shared across applications written by the same development team.
561 | @available(swift, obsoleted: 1.0)
562 | @objc(iCloudValetWithAppIDPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
563 | public class func 🚫swift_iCloudSharedGroupValet(appIDPrefix: String, nonEmptyIdentifier identifier: String, accessibility: CloudAccessibility) -> Valet? {
564 | guard let identifier = SharedGroupIdentifier(appIDPrefix: appIDPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:576:6: error: Objective-C interoperability is disabled
574 | /// - Returns: A Valet that reads/writes iCloud-shared keychain elements that can be shared across applications written by the same development team.
575 | @available(swift, obsoleted: 1.0)
576 | @objc(iCloudValetWithGroupPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
577 | public class func 🚫swift_iCloudSharedGroupValet(groupPrefix: String, nonEmptyIdentifier identifier: String, accessibility: CloudAccessibility) -> Valet? {
578 | guard let identifier = SharedGroupIdentifier(groupPrefix: groupPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:660:6: error: Objective-C interoperability is disabled
658 | /// - Note: Will never prompt the user for Face ID, Touch ID, or password.
659 | @available(swift, obsoleted: 1.0)
660 | @objc(containsObjectForKey:)
| `- error: Objective-C interoperability is disabled
661 | public func 🚫swift_containsObject(forKey key: String) -> Bool {
662 | guard let containsObject = try? containsObject(forKey: key) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:674:6: error: Objective-C interoperability is disabled
672 | /// - error: An error of type `KeychainError` or `MigrationError`.
673 | @available(swift, obsoleted: 1.0)
674 | @objc(migrateObjectsMatching:compactMap:error:)
| `- error: Objective-C interoperability is disabled
675 | public func 🚫swift_migrateObjects(matching query: [String : AnyHashable], compactMap: (ObjectiveCCompatibilityMigratableKeyValuePairInput) -> ObjectiveCCompatibilityMigratableKeyValuePairOutput?) throws {
676 | try objc_compatibility_migrateObjects(matching: query, compactMap: compactMap)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:685:6: error: Objective-C interoperability is disabled
683 | /// - error: An error of type `KeychainError` or `MigrationError`.
684 | @available(swift, obsoleted: 1.0)
685 | @objc(migrateObjectsFrom:compactMap:error:)
| `- error: Objective-C interoperability is disabled
686 | public func 🚫swift_migrateObjects(from valet: Valet, compactMap: (ObjectiveCCompatibilityMigratableKeyValuePairInput) -> ObjectiveCCompatibilityMigratableKeyValuePairOutput?) throws {
687 | try objc_compatibility_migrateObjects(matching: valet.baseKeychainQuery, compactMap: compactMap)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:130:94: error: cannot find type 'OSStatus' in scope
128 | // MARK: Contains
129 |
130 | internal static func performCopy(forKey key: String, options: [String : AnyHashable]) -> OSStatus {
| `- error: cannot find type 'OSStatus' in scope
131 | guard !key.isEmpty else {
132 | return errSecParam
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:402:23: error: cannot find 'kSecAttrAccessible' in scope
400 | #endif
401 |
402 | keychainQuery[kSecAttrAccessible as String] = "dk" // kSecAttrAccessibleAlways, but with the value hardcoded to avoid a build warning.
| `- error: cannot find 'kSecAttrAccessible' in scope
403 | let accessibilityDescription = "AccessibleAlways"
404 | let serviceAttribute: String
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:417:23: error: cannot find 'kSecAttrService' in scope
415 | #endif
416 | }
417 | keychainQuery[kSecAttrService as String] = serviceAttribute
| `- error: cannot find 'kSecAttrService' in scope
418 | try migrateObjects(matching: keychainQuery, removeOnCompletion: removeOnCompletion)
419 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:437:23: error: cannot find 'kSecAttrAccessible' in scope
435 | #endif
436 |
437 | keychainQuery[kSecAttrAccessible as String] = "dku" // kSecAttrAccessibleAlwaysThisDeviceOnly, but with the value hardcoded to avoid a build warning.
| `- error: cannot find 'kSecAttrAccessible' in scope
438 | let accessibilityDescription = "AccessibleAlwaysThisDeviceOnly"
439 | let serviceAttribute: String
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:452:23: error: cannot find 'kSecAttrService' in scope
450 | #endif
451 | }
452 | keychainQuery[kSecAttrService as String] = serviceAttribute
| `- error: cannot find 'kSecAttrService' in scope
453 | try migrateObjects(matching: keychainQuery, removeOnCompletion: removeOnCompletion)
454 | }
[20/20] Compiling Valet Valet.swift
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:21:2: error: Objective-C interoperability is disabled
19 |
20 | /// Reads and writes keychain elements.
21 | @objc(VALValet)
| `- error: Objective-C interoperability is disabled
22 | public final class Valet: NSObject, Sendable {
23 |
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:115:47: error: cannot find 'NSMapTable' in scope
113 | // MARK: Private Class Properties
114 |
115 | private static let identifierToValetMap = NSMapTable<NSString, Valet>.strongToWeakObjects()
| `- error: cannot find 'NSMapTable' in scope
116 |
117 | // MARK: Private Class Functions
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:233:6: error: Objective-C interoperability is disabled
231 | // MARK: Public Properties
232 |
233 | @objc
| `- error: Objective-C interoperability is disabled
234 | public let accessibility: Accessibility
235 | public let identifier: Identifier
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:241:6: error: Objective-C interoperability is disabled
239 | /// - Returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
240 | /// - Note: Determined by writing a value to the keychain and then reading it back out.
241 | @objc
| `- error: Objective-C interoperability is disabled
242 | public func canAccessKeychain() -> Bool {
243 | execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:253:6: error: Objective-C interoperability is disabled
251 | /// - Throws: An error of type `KeychainError`.
252 | /// - Important: Inserted data should be no larger than 4kb.
253 | @objc
| `- error: Objective-C interoperability is disabled
254 | public func setObject(_ object: Data, forKey key: String) throws {
255 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:263:6: error: Objective-C interoperability is disabled
261 | /// - Returns: The data currently stored in the keychain for the provided key.
262 | /// - Throws: An error of type `KeychainError`.
263 | @objc
| `- error: Objective-C interoperability is disabled
264 | public func object(forKey key: String) throws -> Data {
265 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:292:6: error: Objective-C interoperability is disabled
290 | /// - Throws: An error of type `KeychainError`.
291 | /// - Important: Inserted data should be no larger than 4kb.
292 | @objc
| `- error: Objective-C interoperability is disabled
293 | public func setString(_ string: String, forKey key: String) throws {
294 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:302:6: error: Objective-C interoperability is disabled
300 | /// - Returns: The string currently stored in the keychain for the provided key.
301 | /// - Throws: An error of type `KeychainError`.
302 | @objc
| `- error: Objective-C interoperability is disabled
303 | public func string(forKey key: String) throws -> String {
304 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:311:6: error: Objective-C interoperability is disabled
309 | /// - Returns: The set of all (String) keys currently stored in this Valet instance. If no items are found, will return an empty set.
310 | /// - Throws: An error of type `KeychainError`.
311 | @objc
| `- error: Objective-C interoperability is disabled
312 | public func allKeys() throws -> Set<String> {
313 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:322:6: error: Objective-C interoperability is disabled
320 | /// - Throws: An error of type `KeychainError`.
321 | /// - Note: No error is thrown if the `key` is not found in the keychain.
322 | @objc
| `- error: Objective-C interoperability is disabled
323 | public func removeObject(forKey key: String) throws {
324 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:331:6: error: Objective-C interoperability is disabled
329 | /// Removes all key/object pairs accessible by this Valet instance from the keychain.
330 | /// - Throws: An error of type `KeychainError`.
331 | @objc
| `- error: Objective-C interoperability is disabled
332 | public func removeAllObjects() throws {
333 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:356:6: error: Objective-C interoperability is disabled
354 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
355 | /// - Note: The keychain is not modified if an error is thrown.
356 | @objc
| `- error: Objective-C interoperability is disabled
357 | public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) throws {
358 | try execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:381:6: error: Objective-C interoperability is disabled
379 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
380 | /// - Note: The keychain is not modified if an error is thrown.
381 | @objc
| `- error: Objective-C interoperability is disabled
382 | public func migrateObjects(from valet: Valet, removeOnCompletion: Bool) throws {
383 | try migrateObjects(matching: valet.baseKeychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:391:6: error: Objective-C interoperability is disabled
389 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
390 | /// - Note: The keychain is not modified if an error is thrown.
391 | @objc
| `- error: Objective-C interoperability is disabled
392 | public func migrateObjectsFromAlwaysAccessibleValet(removeOnCompletion: Bool) throws {
393 | var keychainQuery = baseKeychainQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:426:6: error: Objective-C interoperability is disabled
424 | /// - Throws: An error of type `KeychainError` or `MigrationError`.
425 | /// - Note: The keychain is not modified if an error is thrown.
426 | @objc
| `- error: Objective-C interoperability is disabled
427 | public func migrateObjectsFromAlwaysAccessibleThisDeviceOnlyValet(removeOnCompletion: Bool) throws {
428 | var keychainQuery = baseKeychainQuery
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:505:6: error: Objective-C interoperability is disabled
503 | /// - Returns: A Valet that reads/writes keychain elements with the desired accessibility.
504 | @available(swift, obsoleted: 1.0)
505 | @objc(valetWithIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
506 | public class func 🚫swift_vanillaValet(with identifier: String, accessibility: Accessibility) -> Valet? {
507 | guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:518:6: error: Objective-C interoperability is disabled
516 | /// - Returns: A Valet that reads/writes iCloud-shared keychain elements with the desired accessibility.
517 | @available(swift, obsoleted: 1.0)
518 | @objc(iCloudValetWithIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
519 | public class func 🚫swift_iCloudValet(with identifier: String, accessibility: CloudAccessibility) -> Valet? {
520 | guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:533:6: error: Objective-C interoperability is disabled
531 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
532 | @available(swift, obsoleted: 1.0)
533 | @objc(sharedGroupValetWithAppIDPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
534 | public class func 🚫swift_vanillaSharedGroupValet(appIDPrefix: String, nonEmptyIdentifier identifier: String, accessibility: Accessibility) -> Valet? {
535 | guard let identifier = SharedGroupIdentifier(appIDPrefix: appIDPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:548:6: error: Objective-C interoperability is disabled
546 | /// - SeeAlso: https://developer.apple.com/documentation/security/keychain_services/keychain_items/sharing_access_to_keychain_items_among_a_collection_of_apps
547 | @available(swift, obsoleted: 1.0)
548 | @objc(sharedGroupValetWithGroupPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
549 | public class func 🚫swift_vanillaSharedGroupValet(groupPrefix: String, nonEmptyIdentifier identifier: String, accessibility: Accessibility) -> Valet? {
550 | guard let identifier = SharedGroupIdentifier(groupPrefix: groupPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:562:6: error: Objective-C interoperability is disabled
560 | /// - Returns: A Valet that reads/writes iCloud-shared keychain elements that can be shared across applications written by the same development team.
561 | @available(swift, obsoleted: 1.0)
562 | @objc(iCloudValetWithAppIDPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
563 | public class func 🚫swift_iCloudSharedGroupValet(appIDPrefix: String, nonEmptyIdentifier identifier: String, accessibility: CloudAccessibility) -> Valet? {
564 | guard let identifier = SharedGroupIdentifier(appIDPrefix: appIDPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:576:6: error: Objective-C interoperability is disabled
574 | /// - Returns: A Valet that reads/writes iCloud-shared keychain elements that can be shared across applications written by the same development team.
575 | @available(swift, obsoleted: 1.0)
576 | @objc(iCloudValetWithGroupPrefix:sharedGroupIdentifier:accessibility:)
| `- error: Objective-C interoperability is disabled
577 | public class func 🚫swift_iCloudSharedGroupValet(groupPrefix: String, nonEmptyIdentifier identifier: String, accessibility: CloudAccessibility) -> Valet? {
578 | guard let identifier = SharedGroupIdentifier(groupPrefix: groupPrefix, nonEmptyGroup: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:660:6: error: Objective-C interoperability is disabled
658 | /// - Note: Will never prompt the user for Face ID, Touch ID, or password.
659 | @available(swift, obsoleted: 1.0)
660 | @objc(containsObjectForKey:)
| `- error: Objective-C interoperability is disabled
661 | public func 🚫swift_containsObject(forKey key: String) -> Bool {
662 | guard let containsObject = try? containsObject(forKey: key) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:674:6: error: Objective-C interoperability is disabled
672 | /// - error: An error of type `KeychainError` or `MigrationError`.
673 | @available(swift, obsoleted: 1.0)
674 | @objc(migrateObjectsMatching:compactMap:error:)
| `- error: Objective-C interoperability is disabled
675 | public func 🚫swift_migrateObjects(matching query: [String : AnyHashable], compactMap: (ObjectiveCCompatibilityMigratableKeyValuePairInput) -> ObjectiveCCompatibilityMigratableKeyValuePairOutput?) throws {
676 | try objc_compatibility_migrateObjects(matching: query, compactMap: compactMap)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:685:6: error: Objective-C interoperability is disabled
683 | /// - error: An error of type `KeychainError` or `MigrationError`.
684 | @available(swift, obsoleted: 1.0)
685 | @objc(migrateObjectsFrom:compactMap:error:)
| `- error: Objective-C interoperability is disabled
686 | public func 🚫swift_migrateObjects(from valet: Valet, compactMap: (ObjectiveCCompatibilityMigratableKeyValuePairInput) -> ObjectiveCCompatibilityMigratableKeyValuePairOutput?) throws {
687 | try objc_compatibility_migrateObjects(matching: valet.baseKeychainQuery, compactMap: compactMap)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift:130:94: error: cannot find type 'OSStatus' in scope
128 | // MARK: Contains
129 |
130 | internal static func performCopy(forKey key: String, options: [String : AnyHashable]) -> OSStatus {
| `- error: cannot find type 'OSStatus' in scope
131 | guard !key.isEmpty else {
132 | return errSecParam
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:402:23: error: cannot find 'kSecAttrAccessible' in scope
400 | #endif
401 |
402 | keychainQuery[kSecAttrAccessible as String] = "dk" // kSecAttrAccessibleAlways, but with the value hardcoded to avoid a build warning.
| `- error: cannot find 'kSecAttrAccessible' in scope
403 | let accessibilityDescription = "AccessibleAlways"
404 | let serviceAttribute: String
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:417:23: error: cannot find 'kSecAttrService' in scope
415 | #endif
416 | }
417 | keychainQuery[kSecAttrService as String] = serviceAttribute
| `- error: cannot find 'kSecAttrService' in scope
418 | try migrateObjects(matching: keychainQuery, removeOnCompletion: removeOnCompletion)
419 | }
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:437:23: error: cannot find 'kSecAttrAccessible' in scope
435 | #endif
436 |
437 | keychainQuery[kSecAttrAccessible as String] = "dku" // kSecAttrAccessibleAlwaysThisDeviceOnly, but with the value hardcoded to avoid a build warning.
| `- error: cannot find 'kSecAttrAccessible' in scope
438 | let accessibilityDescription = "AccessibleAlwaysThisDeviceOnly"
439 | let serviceAttribute: String
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:452:23: error: cannot find 'kSecAttrService' in scope
450 | #endif
451 | }
452 | keychainQuery[kSecAttrService as String] = serviceAttribute
| `- error: cannot find 'kSecAttrService' in scope
453 | try migrateObjects(matching: keychainQuery, removeOnCompletion: removeOnCompletion)
454 | }
BUILD FAILURE 6.0 linux