Build Information
Failed to build Valet-THOTP, reference master (299e0b), with Swift 6.4 for Android on 15 Sep 2026 21:43:47 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-53886769-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ericlewis/Valet-THOTP.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/ericlewis/Valet-THOTP
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 299e0b9 more secure.. wow.
Cloned https://github.com/ericlewis/Valet-THOTP.git
Revision (git rev-parse @):
299e0b9c83d2a32028c8c420128ac0da8c4c8f6d
SUCCESS checkout https://github.com/ericlewis/Valet-THOTP.git at master
========================================
Build
========================================
Selected platform: android
Swift version: 6.4
Building package at path: $PWD
https://github.com/ericlewis/Valet-THOTP.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-53886769-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:abadcff584c273feba50641b454858d377ba30b35ea7287a94f45ebd8afd0ea0
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.4-latest
Fetching https://github.com/Square/Valet
Fetching https://github.com/ericlewis/THOTP
[1/849] Fetching thotp
[850/6993] Fetching thotp, valet
Fetched https://github.com/ericlewis/THOTP (0.57s)
Fetched https://github.com/Square/Valet (0.57s)
Computing version for https://github.com/Square/Valet
Computed https://github.com/Square/Valet at 3.2.8 (0.77s)
Computing version for https://github.com/ericlewis/THOTP
Computed https://github.com/ericlewis/THOTP at 1.0.66 (0.19s)
Fetching https://github.com/ericlewis/URL-QueryItem.git
Fetching https://github.com/norio-nomura/Base32.git
[1/17] Fetching url-queryitem
[18/1185] Fetching url-queryitem, base32
Fetched https://github.com/ericlewis/URL-QueryItem.git (0.45s)
Fetched https://github.com/norio-nomura/Base32.git (0.45s)
Computing version for https://github.com/ericlewis/URL-QueryItem.git
Computed https://github.com/ericlewis/URL-QueryItem.git at 1.0.0 (0.64s)
Computing version for https://github.com/norio-nomura/Base32.git
Computed https://github.com/norio-nomura/Base32.git at 0.9.0 (1.07s)
Creating working copy for https://github.com/Square/Valet
Working copy of https://github.com/Square/Valet resolved at 3.2.8
Creating working copy for https://github.com/ericlewis/URL-QueryItem.git
Working copy of https://github.com/ericlewis/URL-QueryItem.git resolved at 1.0.0
Creating working copy for https://github.com/norio-nomura/Base32.git
Working copy of https://github.com/norio-nomura/Base32.git resolved at 0.9.0
Creating working copy for https://github.com/ericlewis/THOTP
Working copy of https://github.com/ericlewis/THOTP resolved at 1.0.66
Building for debugging...
[Provisioning 2 / 11]
[Pre-planning 1 / 186]
[Starting]
[54 / 100] Valet
error: SwiftCompile normal aarch64 failed with a nonzero exit code. Command line: cd /host
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:39:20: [1;31merror: [1;39mcannot find type 'OSStatus' in scope[0;0m
[0;36m37 |[0;0m internal enum DataResult<SuccessType> {
[0;36m38 |[0;0m case success(SuccessType)
[0;36m39 |[0;0m case error([4;39mOSStatus[0;0m)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'OSStatus' in scope[0;0m
[0;36m40 |[0;0m
[0;36m41 |[0;0m var value: SuccessType? {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift:55:20: [1;31merror: [1;39mcannot find type 'OSStatus' in scope[0;0m
[0;36m53 |[0;0m internal enum Result {
[0;36m54 |[0;0m case success
[0;36m55 |[0;0m case error([4;39mOSStatus[0;0m)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'OSStatus' in scope[0;0m
[0;36m56 |[0;0m
[0;36m57 |[0;0m var didSucceed: Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainQueryConvertible.swift:24:2: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m22 |[0;0m
[0;36m23 |[0;0m
[0;36m24 |[0;0m @objc(VALKeychainQueryConvertible)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m25 |[0;0m public protocol KeychainQueryConvertible {
[0;36m26 |[0;0m
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift:73:36: [1;31merror: [1;39mcannot find type 'SecAccessControlCreateFlags' in scope[0;0m
[0;36m71 |[0;0m // MARK: Internal Properties
[0;36m72 |[0;0m
[0;36m73 |[0;0m internal var secAccessControl: [4;39mSecAccessControlCreateFlags[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'SecAccessControlCreateFlags' in scope[0;0m
[0;36m74 |[0;0m switch self {
[0;36m75 |[0;0m case .userPresence:
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:26:2: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m24 |[0;0m /// 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.
[0;36m25 |[0;0m @available(macOS 10.11, *)
[0;36m26 |[0;0m @objc(VALSecureEnclaveValet)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m27 |[0;0m public final class SecureEnclaveValet: NSObject {
[0;36m28 |[0;0m
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:68:47: [1;31merror: [1;39mcannot find 'NSMapTable' in scope[0;0m
[0;36m66 |[0;0m // MARK: Private Class Properties
[0;36m67 |[0;0m
[0;36m68 |[0;0m private static let identifierToValetMap = [4;39mNSMapTable[0;0m<NSString, SecureEnclaveValet>.strongToWeakObjects()
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'NSMapTable' in scope[0;0m
[0;36m69 |[0;0m
[0;36m70 |[0;0m // MARK: Initialization
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:100:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m98 |[0;0m
[0;36m99 |[0;0m public let identifier: Identifier
[0;36m100 |[0;0m @objc
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m101 |[0;0m public let accessControl: SecureEnclaveAccessControl
[0;36m102 |[0;0m
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:107:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m105 |[0;0m /// - returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
[0;36m106 |[0;0m /// - 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.
[0;36m107 |[0;0m @objc
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m108 |[0;0m public func canAccessKeychain() -> Bool {
[0;36m109 |[0;0m return SecureEnclave.canAccessKeychain(with: service, identifier: identifier)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:115:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m113 |[0;0m /// - parameter key: A Key that can be used to retrieve the `object` from the keychain.
[0;36m114 |[0;0m /// - returns: `false` if the keychain is not accessible.
[0;36m115 |[0;0m @objc(setObject:forKey:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m116 |[0;0m @discardableResult
[0;36m117 |[0;0m public func set(object: Data, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:135:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m133 |[0;0m /// - returns: `true` if a value has been set for the given key, `false` otherwise.
[0;36m134 |[0;0m /// - note: Will never prompt the user for Face ID, Touch ID, or password.
[0;36m135 |[0;0m @objc(containsObjectForKey:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m136 |[0;0m public func containsObject(forKey key: String) -> Bool {
[0;36m137 |[0;0m return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:145:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m143 |[0;0m /// - parameter key: A Key that can be used to retrieve the `string` from the keychain.
[0;36m144 |[0;0m /// - returns: `true` if the operation succeeded, or `false` if the keychain is not accessible.
[0;36m145 |[0;0m @objc(setString:forKey:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m146 |[0;0m @discardableResult
[0;36m147 |[0;0m public func set(string: String, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:164:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m162 |[0;0m /// Removes a key/object pair from the keychain.
[0;36m163 |[0;0m /// - returns: `false` if the keychain is not accessible.
[0;36m164 |[0;0m @objc(removeObjectForKey:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m165 |[0;0m @discardableResult
[0;36m166 |[0;0m public func removeObject(forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:174:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m172 |[0;0m /// Removes all key/object pairs accessible by this Valet instance from the keychain.
[0;36m173 |[0;0m /// - returns: `false` if the keychain is not accessible.
[0;36m174 |[0;0m @objc
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m175 |[0;0m @discardableResult
[0;36m176 |[0;0m public func removeAllObjects() -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:187:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m185 |[0;0m /// - returns: Whether the migration succeeded or failed.
[0;36m186 |[0;0m /// - note: The keychain is not modified if a failure occurs.
[0;36m187 |[0;0m @objc(migrateObjectsMatchingQuery:removeOnCompletion:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m188 |[0;0m public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) -> MigrationResult {
[0;36m189 |[0;0m return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:199:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m197 |[0;0m /// - returns: Whether the migration succeeded or failed.
[0;36m198 |[0;0m /// - note: The keychain is not modified if a failure occurs.
[0;36m199 |[0;0m @objc(migrateObjectsFromKeychain:removeOnCompletion:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m200 |[0;0m public func migrateObjects(from keychain: KeychainQueryConvertible, removeOnCompletion: Bool) -> MigrationResult {
[0;36m201 |[0;0m return migrateObjects(matching: keychain.keychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:225:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m223 |[0;0m /// - parameter identifier: A non-empty string that uniquely identifies a SecureEnclaveValet.
[0;36m224 |[0;0m /// - returns: A SecureEnclaveValet that reads/writes keychain elements with the desired flavor.
[0;36m225 |[0;0m @objc(valetWithIdentifier:accessControl:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m226 |[0;0m public class func 🚫swift_valet(with identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
[0;36m227 |[0;0m guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:235:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m233 |[0;0m /// - parameter identifier: A non-empty string that must correspond with the value for keychain-access-groups in your Entitlements file.
[0;36m234 |[0;0m /// - returns: A SecureEnclaveValet that reads/writes keychain elements that can be shared across applications written by the same development team.
[0;36m235 |[0;0m @objc(sharedAccessGroupValetWithIdentifier:accessControl:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m236 |[0;0m public class func 🚫swift_sharedAccessGroupValet(with identifier: String, accessControl: SecureEnclaveAccessControl) -> SecureEnclaveValet? {
[0;36m237 |[0;0m guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:249:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m247 |[0;0m /// - returns: The data currently stored in the keychain for the provided key. Returns `nil` if no object exists in the keychain for the specified key, or if the keychain is inaccessible.
[0;36m248 |[0;0m @available(swift, obsoleted: 1.0)
[0;36m249 |[0;0m @objc(objectForKey:userPrompt:userCancelled:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m250 |[0;0m public func 🚫swift_object(forKey key: String, withPrompt userPrompt: String, userCancelled: UnsafeMutablePointer<ObjCBool>?) -> Data? {
[0;36m251 |[0;0m switch object(forKey: key, withPrompt: userPrompt) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift:266:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m264 |[0;0m /// - returns: The string currently stored in the keychain for the provided key. Returns `nil` if no string exists in the keychain for the specified key, or if the keychain is inaccessible.
[0;36m265 |[0;0m @available(swift, obsoleted: 1.0)
[0;36m266 |[0;0m @objc(stringForKey:userPrompt:userCancelled:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m267 |[0;0m public func 🚫swift_string(forKey key: String, withPrompt userPrompt: String, userCancelled: UnsafeMutablePointer<ObjCBool>?) -> String? {
[0;36m268 |[0;0m switch string(forKey: key, withPrompt: userPrompt) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:25:2: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m23 |[0;0m
[0;36m24 |[0;0m /// Reads and writes keychain elements.
[0;36m25 |[0;0m @objc(VALValet)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m26 |[0;0m public final class Valet: NSObject, KeychainQueryConvertible {
[0;36m27 |[0;0m
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:67:47: [1;31merror: [1;39mcannot find 'NSMapTable' in scope[0;0m
[0;36m65 |[0;0m // MARK: Private Class Properties
[0;36m66 |[0;0m
[0;36m67 |[0;0m private static let identifierToValetMap = [4;39mNSMapTable[0;0m<NSString, Valet>.strongToWeakObjects()
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'NSMapTable' in scope[0;0m
[0;36m68 |[0;0m
[0;36m69 |[0;0m // MARK: Private Class Functions
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:131:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m129 |[0;0m // MARK: Public Properties
[0;36m130 |[0;0m
[0;36m131 |[0;0m @objc
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m132 |[0;0m public let accessibility: Accessibility
[0;36m133 |[0;0m public let identifier: Identifier
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:139:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m137 |[0;0m /// - returns: `true` if the keychain is accessible for reading and writing, `false` otherwise.
[0;36m138 |[0;0m /// - note: Determined by writing a value to the keychain and then reading it back out.
[0;36m139 |[0;0m @objc
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m140 |[0;0m public func canAccessKeychain() -> Bool {
[0;36m141 |[0;0m return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:149:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m147 |[0;0m /// - parameter key: A Key that can be used to retrieve the `object` from the keychain.
[0;36m148 |[0;0m /// - returns: `false` if the keychain is not accessible.
[0;36m149 |[0;0m @objc(setObject:forKey:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m150 |[0;0m @discardableResult
[0;36m151 |[0;0m public func set(object: Data, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:159:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m157 |[0;0m /// - parameter key: A Key used to retrieve the desired object from the keychain.
[0;36m158 |[0;0m /// - returns: The data currently stored in the keychain for the provided key. Returns `nil` if no object exists in the keychain for the specified key, or if the keychain is inaccessible.
[0;36m159 |[0;0m @objc(objectForKey:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m160 |[0;0m public func object(forKey key: String) -> Data? {
[0;36m161 |[0;0m return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:168:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m166 |[0;0m /// - parameter key: The key to look up in the keychain.
[0;36m167 |[0;0m /// - returns: `true` if a value has been set for the given key, `false` otherwise.
[0;36m168 |[0;0m @objc(containsObjectForKey:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m169 |[0;0m public func containsObject(forKey key: String) -> Bool {
[0;36m170 |[0;0m return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:178:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m176 |[0;0m /// - parameter key: A Key that can be used to retrieve the `string` from the keychain.
[0;36m177 |[0;0m /// - returns: `true` if the operation succeeded, or `false` if the keychain is not accessible.
[0;36m178 |[0;0m @objc(setString:forKey:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m179 |[0;0m @discardableResult
[0;36m180 |[0;0m public func set(string: String, forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:188:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m186 |[0;0m /// - parameter key: A Key used to retrieve the desired object from the keychain.
[0;36m187 |[0;0m /// - returns: The string currently stored in the keychain for the provided key. Returns `nil` if no string exists in the keychain for the specified key, or if the keychain is inaccessible.
[0;36m188 |[0;0m @objc(stringForKey:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m189 |[0;0m public func string(forKey key: String) -> String? {
[0;36m190 |[0;0m return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:196:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m194 |[0;0m
[0;36m195 |[0;0m /// - returns: The set of all (String) keys currently stored in this Valet instance.
[0;36m196 |[0;0m @objc
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m197 |[0;0m public func allKeys() -> Set<String> {
[0;36m198 |[0;0m return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:205:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m203 |[0;0m /// Removes a key/object pair from the keychain.
[0;36m204 |[0;0m /// - returns: `false` if the keychain is not accessible.
[0;36m205 |[0;0m @objc(removeObjectForKey:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m206 |[0;0m @discardableResult
[0;36m207 |[0;0m public func removeObject(forKey key: String) -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:215:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m213 |[0;0m /// Removes all key/object pairs accessible by this Valet instance from the keychain.
[0;36m214 |[0;0m /// - returns: `false` if the keychain is not accessible.
[0;36m215 |[0;0m @objc
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m216 |[0;0m @discardableResult
[0;36m217 |[0;0m public func removeAllObjects() -> Bool {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:228:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m226 |[0;0m /// - returns: Whether the migration succeeded or failed.
[0;36m227 |[0;0m /// - note: The keychain is not modified if a failure occurs.
[0;36m228 |[0;0m @objc(migrateObjectsMatchingQuery:removeOnCompletion:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m229 |[0;0m public func migrateObjects(matching query: [String : AnyHashable], removeOnCompletion: Bool) -> MigrationResult {
[0;36m230 |[0;0m return execute(in: lock) {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:240:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m238 |[0;0m /// - returns: Whether the migration succeeded or failed.
[0;36m239 |[0;0m /// - note: The keychain is not modified if a failure occurs.
[0;36m240 |[0;0m @objc(migrateObjectsFromValet:removeOnCompletion:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m241 |[0;0m public func migrateObjects(from keychain: KeychainQueryConvertible, removeOnCompletion: Bool) -> MigrationResult {
[0;36m242 |[0;0m return migrateObjects(matching: keychain.keychainQuery, removeOnCompletion: removeOnCompletion)
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:286:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m284 |[0;0m /// - returns: A Valet that reads/writes keychain elements with the desired accessibility.
[0;36m285 |[0;0m @available(swift, obsoleted: 1.0)
[0;36m286 |[0;0m @objc(valetWithIdentifier:accessibility:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m287 |[0;0m public class func 🚫swift_vanillaValet(with identifier: String, accessibility: Accessibility) -> Valet? {
[0;36m288 |[0;0m guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:298:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m296 |[0;0m /// - returns: A Valet that reads/writes iCloud-shared keychain elements with the desired accessibility.
[0;36m297 |[0;0m @available(swift, obsoleted: 1.0)
[0;36m298 |[0;0m @objc(iCloudValetWithIdentifier:accessibility:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m299 |[0;0m public class func 🚫swift_iCloudValet(with identifier: String, accessibility: CloudAccessibility) -> Valet? {
[0;36m300 |[0;0m guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:310:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m308 |[0;0m /// - returns: A Valet that reads/writes keychain elements that can be shared across applications written by the same development team.
[0;36m309 |[0;0m @available(swift, obsoleted: 1.0)
[0;36m310 |[0;0m @objc(valetWithSharedAccessGroupIdentifier:accessibility:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m311 |[0;0m public class func 🚫swift_vanillaSharedAccessGroupValet(with identifier: String, accessibility: Accessibility) -> Valet? {
[0;36m312 |[0;0m guard let identifier = Identifier(nonEmpty: identifier) else {
/host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift:322:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m320 |[0;0m /// - returns: A Valet that reads/writes iCloud-shared keychain elements that can be shared across applications written by the same development team.
[0;36m321 |[0;0m @available(swift, obsoleted: 1.0)
[0;36m322 |[0;0m @objc(iCloudValetWithSharedAccessGroupIdentifier:accessibility:)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m323 |[0;0m public class func 🚫swift_iCloudSharedAccessGroupValet(with identifier: String, accessibility: CloudAccessibility) -> Valet? {
[0;36m324 |[0;0m guard let identifier = Identifier(nonEmpty: identifier) else {
Failed frontend command:
/root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Accessibility.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/CloudAccessibility.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/ErrorHandler.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Identifier.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Configuration.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Keychain.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/SecItem.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Internal/Service.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/KeychainQueryConvertible.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/MigrationResult.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclave.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveAccessControl.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SecureEnclaveValet.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SinglePromptSecureEnclaveValet.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/SwiftCompatibility.swift /host/spi-builder-workspace/.build/checkouts/Valet/Sources/Valet/Valet.swift -target aarch64-unknown-linux-android28 -Xllvm -aarch64-use-tbi -disable-objc-interop -sdk /android-ndk/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -sysroot /android-ndk/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -I /host/spi-builder-workspace/.build/out/Products/Debug-android-aarch64 -module-cache-path /host/spi-builder-workspace/.build/out/ModuleCache.noindex -color-diagnostics -Xcc -fcolor-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -suppress-warnings -swift-version 5 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -external-plugin-path /root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/lib/swift/host/plugins/testing\#/root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/bin/swift-plugin-server -validate-clang-modules-once -clang-build-session-file /host/spi-builder-workspace/.build/out/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /host -resource-dir /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_android.artifactbundle/swift-android/swift-resources/usr/lib/swift-aarch64 -enable-anonymous-context-mangled-names -file-compilation-dir /host -Xcc -resource-dir -Xcc /android-ndk/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -Xcc -fno-omit-frame-pointer -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/host/spi-builder-workspace/.build/out/Products/Debug-android-aarch64/include -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Valet.build/Debug-android-aarch64/Valet-t.build/DerivedSources-normal/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Valet.build/Debug-android-aarch64/Valet-t.build/DerivedSources/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Valet.build/Debug-android-aarch64/Valet-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Valet -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/Valet.build/Debug-android-aarch64/Valet-t.build/Objects-normal/aarch64/Valet_const_extract_protocols.json -in-process-plugin-server-path /root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/lib/swift/host/plugins -plugin-path /root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/local/lib/swift/host/plugins -emit-module-doc-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Valet.build/Debug-android-aarch64/Valet-t.build/Objects-normal/aarch64/Modules/Valet.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Valet.build/Debug-android-aarch64/Valet-t.build/Objects-normal/aarch64/Modules/Valet.swiftsourceinfo -emit-objc-header-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Valet.build/Debug-android-aarch64/Valet-t.build/Objects-normal/aarch64/Valet-Swift.h -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Valet.build/Debug-android-aarch64/Valet-t.build/Objects-normal/aarch64/Valet-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Valet.build/Debug-android-aarch64/Valet-t.build/Objects-normal/aarch64/Valet-primary-emit-module.d -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/Valet.build/Debug-android-aarch64/Valet-t.build/Objects-normal/aarch64/Modules/Valet.swiftmodule
error: Build failed
BUILD FAILURE 6.4 android