Build Information
Failed to build Airgap, reference 1.7.0 (f24874), with Swift 6.4 for Android on 24 Sep 2026 07:03:15 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/garry-jeromson/swift-airgap.git
Reference: 1.7.0
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/garry-jeromson/swift-airgap
* tag 1.7.0 -> FETCH_HEAD
HEAD is now at f248742 Bump version to 1.7.0 in README and CHANGELOG
Cloned https://github.com/garry-jeromson/swift-airgap.git
Revision (git rev-parse @):
f248742a53f390b5427c3af3a7321c48d2b633ce
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/garry-jeromson/swift-airgap.git at 1.7.0
========================================
Build
========================================
Selected platform: android
Swift version: 6.4
Building package at path: $PWD
https://github.com/garry-jeromson/swift-airgap.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
Building for debugging...
[Planning deferred tasks]
error: SwiftCompile normal aarch64 failed with a nonzero exit code. Command line: cd /host
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:100:72: [1;31merror: [1;39m'URLProtocol' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m98 |[0;0m // ```
[0;36m99 |[0;0m #if compiler(>=6.0)
[0;36m100 |[0;0m private nonisolated(unsafe) static var _passthroughProtocols: [[4;39mURLProtocol[0;0m.Type] = []
[0;36m|[0;0m `- [1;31merror: [1;39m'URLProtocol' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m101 |[0;0m #else
[0;36m102 |[0;0m private static var _passthroughProtocols: [URLProtocol.Type] = []
Foundation.URLProtocol:2:18: [1;39mnote: [1;39m'URLProtocol' has been explicitly marked unavailable here[0;0m
[0;36m1 |[0;0m @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
[0;36m2 |[0;0m public typealias URLProtocol = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLProtocol' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:104:46: [1;31merror: [1;39m'URLProtocol' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m102 |[0;0m private static var _passthroughProtocols: [URLProtocol.Type] = []
[0;36m103 |[0;0m #endif
[0;36m104 |[0;0m public static var passthroughProtocols: [[4;39mURLProtocol[0;0m.Type] {
[0;36m|[0;0m `- [1;31merror: [1;39m'URLProtocol' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m105 |[0;0m get { lock.withLock { _passthroughProtocols } }
[0;36m106 |[0;0m set { lock.withLock { _passthroughProtocols = newValue } }
Foundation.URLProtocol:2:18: [1;39mnote: [1;39m'URLProtocol' has been explicitly marked unavailable here[0;0m
[0;36m1 |[0;0m @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
[0;36m2 |[0;0m public typealias URLProtocol = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLProtocol' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:399:110: [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m397 |[0;0m
[0;36m398 |[0;0m /// Reports a network violation through the configured handler.
[0;36m399 |[0;0m static func reportViolation(method: String, url: String, callStack: [String], testName: String, request: [4;39mURLRequest[0;0m? = nil) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m400 |[0;0m // Always collect violations for programmatic access via violations/violationSummary()
[0;36m401 |[0;0m let violation = Violation(
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:514:53: [1;31merror: [1;39m'URLSessionConfiguration' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m512 |[0;0m }
[0;36m513 |[0;0m
[0;36m514 |[0;0m private static func injectProtocol(into config: [4;39mURLSessionConfiguration[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39m'URLSessionConfiguration' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m515 |[0;0m var protocols = config.protocolClasses ?? []
[0;36m516 |[0;0m if !protocols.contains(where: { $0 == AirgapURLProtocol.self }) {
Foundation.URLSessionConfiguration:2:18: [1;39mnote: [1;39m'URLSessionConfiguration' has been explicitly marked unavailable here[0;0m
[0;36m1 |[0;0m @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
[0;36m2 |[0;0m public typealias URLSessionConfiguration = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLSessionConfiguration' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:523:17: [1;31merror: [1;39m'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m521 |[0;0m
[0;36m522 |[0;0m private static func interceptWebSocketIfNeeded(
[0;36m523 |[0;0m _ task: [4;39mURLSessionTask[0;0m,
[0;36m|[0;0m `- [1;31merror: [1;39m'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m524 |[0;0m url: URL?,
[0;36m525 |[0;0m urlString: String) -> Bool {
Foundation.URLSessionTask:2:18: [1;39mnote: [1;39m'URLSessionTask' has been explicitly marked unavailable here[0;0m
[0;36m1 |[0;0m @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
[0;36m2 |[0;0m public typealias URLSessionTask = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLSessionTask' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:561:71: [1;31merror: [1;39mcannot find type 'Selector' in scope[0;0m
[0;36m559 |[0;0m }
[0;36m560 |[0;0m
[0;36m561 |[0;0m private static func swizzleConfigurationProperty(getter original: [4;39mSelector[0;0m, label _: String) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'Selector' in scope[0;0m
[0;36m562 |[0;0m guard let method = class_getClassMethod(URLSessionConfiguration.self, original) else {
[0;36m563 |[0;0m return
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:562:28: [1;31merror: [1;39mcannot find 'class_getClassMethod' in scope[0;0m
[0;36m560 |[0;0m
[0;36m561 |[0;0m private static func swizzleConfigurationProperty(getter original: Selector, label _: String) {
[0;36m562 |[0;0m guard let method = [4;39mclass_getClassMethod[0;0m(URLSessionConfiguration.self, original) else {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'class_getClassMethod' in scope[0;0m
[0;36m563 |[0;0m return
[0;36m564 |[0;0m }
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:566:27: [1;31merror: [1;39mcannot find 'method_getImplementation' in scope[0;0m
[0;36m564 |[0;0m }
[0;36m565 |[0;0m
[0;36m566 |[0;0m let originalIMP = [4;39mmethod_getImplementation[0;0m(method)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'method_getImplementation' in scope[0;0m
[0;36m567 |[0;0m
[0;36m568 |[0;0m typealias OriginalFunction = @convention(c) (AnyObject, Selector) -> URLSessionConfiguration
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:568:65: [1;31merror: [1;39mcannot find type 'Selector' in scope[0;0m
[0;36m566 |[0;0m let originalIMP = method_getImplementation(method)
[0;36m567 |[0;0m
[0;36m568 |[0;0m typealias OriginalFunction = @convention(c) (AnyObject, [4;39mSelector[0;0m) -> URLSessionConfiguration
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'Selector' in scope[0;0m
[0;36m569 |[0;0m
[0;36m570 |[0;0m let originalFunction = unsafeBitCast(originalIMP, to: OriginalFunction.self)
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:572:62: [1;31merror: [1;39m'URLSessionConfiguration' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m570 |[0;0m let originalFunction = unsafeBitCast(originalIMP, to: OriginalFunction.self)
[0;36m571 |[0;0m
[0;36m572 |[0;0m let swizzledBlock: @convention(block) (AnyObject) -> [4;39mURLSessionConfiguration[0;0m = { obj in
[0;36m|[0;0m `- [1;31merror: [1;39m'URLSessionConfiguration' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m573 |[0;0m let config = originalFunction(obj, original)
[0;36m574 |[0;0m injectProtocol(into: config)
Foundation.URLSessionConfiguration:2:18: [1;39mnote: [1;39m'URLSessionConfiguration' has been explicitly marked unavailable here[0;0m
[0;36m1 |[0;0m @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
[0;36m2 |[0;0m public typealias URLSessionConfiguration = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLSessionConfiguration' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:578:27: [1;31merror: [1;39mcannot find 'imp_implementationWithBlock' in scope[0;0m
[0;36m576 |[0;0m }
[0;36m577 |[0;0m
[0;36m578 |[0;0m let swizzledIMP = [4;39mimp_implementationWithBlock[0;0m(swizzledBlock)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'imp_implementationWithBlock' in scope[0;0m
[0;36m579 |[0;0m method_setImplementation(method, swizzledIMP)
[0;36m580 |[0;0m }
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:579:9: [1;31merror: [1;39mcannot find 'method_setImplementation' in scope[0;0m
[0;36m577 |[0;0m
[0;36m578 |[0;0m let swizzledIMP = imp_implementationWithBlock(swizzledBlock)
[0;36m579 |[0;0m [4;39mmethod_setImplementation[0;0m(method, swizzledIMP)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'method_setImplementation' in scope[0;0m
[0;36m580 |[0;0m }
[0;36m581 |[0;0m
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:590:24: [1;31merror: [1;39mcannot find 'NSSelectorFromString' in scope[0;0m
[0;36m588 |[0;0m /// the property-getter swizzle, the protocol is injected when the session is created.
[0;36m589 |[0;0m private static func swizzleSessionInit() {
[0;36m590 |[0;0m let selector = [4;39mNSSelectorFromString[0;0m("sessionWithConfiguration:delegate:delegateQueue:")
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'NSSelectorFromString' in scope[0;0m
[0;36m591 |[0;0m guard let method = class_getClassMethod(URLSession.self, selector) else {
[0;36m592 |[0;0m return
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:591:28: [1;31merror: [1;39mcannot find 'class_getClassMethod' in scope[0;0m
[0;36m589 |[0;0m private static func swizzleSessionInit() {
[0;36m590 |[0;0m let selector = NSSelectorFromString("sessionWithConfiguration:delegate:delegateQueue:")
[0;36m591 |[0;0m guard let method = [4;39mclass_getClassMethod[0;0m(URLSession.self, selector) else {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'class_getClassMethod' in scope[0;0m
[0;36m592 |[0;0m return
[0;36m593 |[0;0m }
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:595:27: [1;31merror: [1;39mcannot find 'method_getImplementation' in scope[0;0m
[0;36m593 |[0;0m }
[0;36m594 |[0;0m
[0;36m595 |[0;0m let originalIMP = [4;39mmethod_getImplementation[0;0m(method)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'method_getImplementation' in scope[0;0m
[0;36m596 |[0;0m typealias OriginalFunction = @convention(c) (AnyObject, Selector, URLSessionConfiguration, URLSessionDelegate?, OperationQueue?) -> URLSession
[0;36m597 |[0;0m let originalFunction = unsafeBitCast(originalIMP, to: OriginalFunction.self)
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:596:65: [1;31merror: [1;39mcannot find type 'Selector' in scope[0;0m
[0;36m594 |[0;0m
[0;36m595 |[0;0m let originalIMP = method_getImplementation(method)
[0;36m596 |[0;0m typealias OriginalFunction = @convention(c) (AnyObject, [4;39mSelector[0;0m, URLSessionConfiguration, URLSessionDelegate?, OperationQueue?) -> URLSession
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'Selector' in scope[0;0m
[0;36m597 |[0;0m let originalFunction = unsafeBitCast(originalIMP, to: OriginalFunction.self)
[0;36m598 |[0;0m
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:596:100: [1;31merror: [1;39mcannot find type 'URLSessionDelegate' in scope[0;0m
[0;36m594 |[0;0m
[0;36m595 |[0;0m let originalIMP = method_getImplementation(method)
[0;36m596 |[0;0m typealias OriginalFunction = @convention(c) (AnyObject, Selector, URLSessionConfiguration, [4;39mURLSessionDelegate[0;0m?, OperationQueue?) -> URLSession
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLSessionDelegate' in scope[0;0m
[0;36m597 |[0;0m let originalFunction = unsafeBitCast(originalIMP, to: OriginalFunction.self)
[0;36m598 |[0;0m
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:600:49: [1;31merror: [1;39mcannot find type 'URLSessionDelegate' in scope[0;0m
[0;36m598 |[0;0m
[0;36m599 |[0;0m let swizzledBlock: @convention(block) (
[0;36m600 |[0;0m AnyObject, URLSessionConfiguration, [4;39mURLSessionDelegate[0;0m?, OperationQueue?) -> URLSession = { obj, config, delegate, queue in
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLSessionDelegate' in scope[0;0m
[0;36m601 |[0;0m injectProtocol(into: config)
[0;36m602 |[0;0m return originalFunction(obj, selector, config, delegate, queue)
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:605:27: [1;31merror: [1;39mcannot find 'imp_implementationWithBlock' in scope[0;0m
[0;36m603 |[0;0m }
[0;36m604 |[0;0m
[0;36m605 |[0;0m let swizzledIMP = [4;39mimp_implementationWithBlock[0;0m(swizzledBlock)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'imp_implementationWithBlock' in scope[0;0m
[0;36m606 |[0;0m method_setImplementation(method, swizzledIMP)
[0;36m607 |[0;0m }
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:606:9: [1;31merror: [1;39mcannot find 'method_setImplementation' in scope[0;0m
[0;36m604 |[0;0m
[0;36m605 |[0;0m let swizzledIMP = imp_implementationWithBlock(swizzledBlock)
[0;36m606 |[0;0m [4;39mmethod_setImplementation[0;0m(method, swizzledIMP)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'method_setImplementation' in scope[0;0m
[0;36m607 |[0;0m }
[0;36m608 |[0;0m
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:614:24: [1;31merror: [1;39m'#selector' can only be used with the Objective-C runtime[0;0m
[0;36m612 |[0;0m /// URL loading system internals, not the user's code that initiated the request.
[0;36m613 |[0;0m private static func swizzleTaskResume() {
[0;36m614 |[0;0m let selector = #selector(URLSessionTask.resume)
[0;36m|[0;0m `- [1;31merror: [1;39m'#selector' can only be used with the Objective-C runtime[0;0m
[0;36m615 |[0;0m guard let method = class_getInstanceMethod(URLSessionTask.self, selector) else {
[0;36m616 |[0;0m return
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:615:28: [1;31merror: [1;39mcannot find 'class_getInstanceMethod' in scope[0;0m
[0;36m613 |[0;0m private static func swizzleTaskResume() {
[0;36m614 |[0;0m let selector = #selector(URLSessionTask.resume)
[0;36m615 |[0;0m guard let method = [4;39mclass_getInstanceMethod[0;0m(URLSessionTask.self, selector) else {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'class_getInstanceMethod' in scope[0;0m
[0;36m616 |[0;0m return
[0;36m617 |[0;0m }
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:619:27: [1;31merror: [1;39mcannot find 'method_getImplementation' in scope[0;0m
[0;36m617 |[0;0m }
[0;36m618 |[0;0m
[0;36m619 |[0;0m let originalIMP = [4;39mmethod_getImplementation[0;0m(method)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'method_getImplementation' in scope[0;0m
[0;36m620 |[0;0m typealias OriginalFunction = @convention(c) (AnyObject, Selector) -> Void
[0;36m621 |[0;0m let originalFunction = unsafeBitCast(originalIMP, to: OriginalFunction.self)
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:620:65: [1;31merror: [1;39mcannot find type 'Selector' in scope[0;0m
[0;36m618 |[0;0m
[0;36m619 |[0;0m let originalIMP = method_getImplementation(method)
[0;36m620 |[0;0m typealias OriginalFunction = @convention(c) (AnyObject, [4;39mSelector[0;0m) -> Void
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'Selector' in scope[0;0m
[0;36m621 |[0;0m let originalFunction = unsafeBitCast(originalIMP, to: OriginalFunction.self)
[0;36m622 |[0;0m
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:624:42: [1;33mwarning: [1;39mconditional cast from 'AnyObject' to 'URLSessionTask' (aka 'AnyObject') always succeeds[0;0m
[0;36m622 |[0;0m
[0;36m623 |[0;0m let swizzledBlock: @convention(block) (AnyObject) -> Void = { task in
[0;36m624 |[0;0m guard let sessionTask = task as? URLSessionTask else {
[0;36m|[0;0m `- [1;33mwarning: [1;39mconditional cast from 'AnyObject' to 'URLSessionTask' (aka 'AnyObject') always succeeds[0;0m
[0;36m625 |[0;0m originalFunction(task, selector)
[0;36m626 |[0;0m return
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:645:27: [1;31merror: [1;39mcannot find 'imp_implementationWithBlock' in scope[0;0m
[0;36m643 |[0;0m }
[0;36m644 |[0;0m
[0;36m645 |[0;0m let swizzledIMP = [4;39mimp_implementationWithBlock[0;0m(swizzledBlock)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'imp_implementationWithBlock' in scope[0;0m
[0;36m646 |[0;0m method_setImplementation(method, swizzledIMP)
[0;36m647 |[0;0m }
/host/spi-builder-workspace/Sources/Airgap/Airgap.swift:646:9: [1;31merror: [1;39mcannot find 'method_setImplementation' in scope[0;0m
[0;36m644 |[0;0m
[0;36m645 |[0;0m let swizzledIMP = imp_implementationWithBlock(swizzledBlock)
[0;36m646 |[0;0m [4;39mmethod_setImplementation[0;0m(method, swizzledIMP)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'method_setImplementation' in scope[0;0m
[0;36m647 |[0;0m }
[0;36m648 |[0;0m }
/host/spi-builder-workspace/Sources/Airgap/AirgapObserver.swift:29:2: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m27 |[0;0m ///
[0;36m28 |[0;0m /// Individual tests that need real network access call `Airgap.allowNetworkAccess()`.
[0;36m29 |[0;0m @objc(AirgapObserver)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m30 |[0;0m open class AirgapObserver: NSObject, XCTestObservation, @unchecked Sendable {
[0;36m31 |[0;0m override public init() {
/host/spi-builder-workspace/Sources/Airgap/AirgapURLProtocol.swift:57:76: [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m55 |[0;0m // Captured request metadata keyed by URL string, for including body/header info in violations.
[0;36m56 |[0;0m #if compiler(>=6.0)
[0;36m57 |[0;0m private nonisolated(unsafe) static var _capturedRequests: [String: [4;39mURLRequest[0;0m] = [:]
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m58 |[0;0m #else
[0;36m59 |[0;0m private static var _capturedRequests: [String: URLRequest] = [:]
/host/spi-builder-workspace/Sources/Airgap/AirgapURLProtocol.swift:64:55: [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m62 |[0;0m // MARK: - URLProtocol overrides
[0;36m63 |[0;0m
[0;36m64 |[0;0m override public static func canInit(with request: [4;39mURLRequest[0;0m) -> Bool {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m65 |[0;0m guard isActive, !isAllowed else { return false }
[0;36m66 |[0;0m
/host/spi-builder-workspace/Sources/Airgap/AirgapURLProtocol.swift:101:78: [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m99 |[0;0m }
[0;36m100 |[0;0m
[0;36m101 |[0;0m override public static func canonicalRequest(for request: URLRequest) -> [4;39mURLRequest[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m102 |[0;0m request
[0;36m103 |[0;0m }
/host/spi-builder-workspace/Sources/Airgap/AirgapURLProtocol.swift:101:63: [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m99 |[0;0m }
[0;36m100 |[0;0m
[0;36m101 |[0;0m override public static func canonicalRequest(for request: [4;39mURLRequest[0;0m) -> URLRequest {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m102 |[0;0m request
[0;36m103 |[0;0m }
/host/spi-builder-workspace/Sources/Airgap/AirgapURLProtocol.swift:105:26: [1;31merror: [1;39mmethod does not override any method from its superclass[0;0m
[0;36m103 |[0;0m }
[0;36m104 |[0;0m
[0;36m105 |[0;0m [4;39moverride[0;0m public func startLoading() {
[0;36m|[0;0m `- [1;31merror: [1;39mmethod does not override any method from its superclass[0;0m
[0;36m106 |[0;0m let url = request.url?.absoluteString ?? "<unknown URL>"
[0;36m107 |[0;0m let method = request.httpMethod ?? "GET"
/host/spi-builder-workspace/Sources/Airgap/AirgapURLProtocol.swift:141:26: [1;31merror: [1;39mmethod does not override any method from its superclass[0;0m
[0;36m139 |[0;0m }
[0;36m140 |[0;0m
[0;36m141 |[0;0m [4;39moverride[0;0m public func stopLoading() {
[0;36m|[0;0m `- [1;31merror: [1;39mmethod does not override any method from its superclass[0;0m
[0;36m142 |[0;0m // Nothing to clean up
[0;36m143 |[0;0m }
/host/spi-builder-workspace/Sources/Airgap/AirgapURLProtocol.swift:149:72: [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m147 |[0;0m /// Called by the swizzled `URLSessionTask.resume()` to provide accurate caller attribution.
[0;36m148 |[0;0m /// These take priority over stacks captured in `canInit(with:)`.
[0;36m149 |[0;0m static func storeCapturedCallStack(_ callStack: [String], request: [4;39mURLRequest[0;0m?, forURL urlString: String) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m150 |[0;0m lock.withLock {
[0;36m151 |[0;0m _capturedCallStacks[urlString] = callStack
/host/spi-builder-workspace/Sources/Airgap/AirgapURLProtocol.swift:8:39: [1;31merror: [1;39m'URLProtocol' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m6 |[0;0m /// and injected into `URLSessionConfiguration.default` and `.ephemeral` via swizzling to catch
[0;36m7 |[0;0m /// custom session configurations.
[0;36m8 |[0;0m public final class AirgapURLProtocol: [4;39mURLProtocol[0;0m, @unchecked Sendable {
[0;36m|[0;0m `- [1;31merror: [1;39m'URLProtocol' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m9 |[0;0m // MARK: - Thread-safe state
[0;36m10 |[0;0m
Foundation.URLProtocol:2:18: [1;39mnote: [1;39m'URLProtocol' has been explicitly marked unavailable here[0;0m
[0;36m1 |[0;0m @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
[0;36m2 |[0;0m public typealias URLProtocol = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLProtocol' has been explicitly marked unavailable here[0;0m
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/Sources/Airgap/Airgap.swift /host/spi-builder-workspace/Sources/Airgap/AirgapObserver.swift /host/spi-builder-workspace/Sources/Airgap/AirgapTestCase.swift /host/spi-builder-workspace/Sources/Airgap/AirgapTrait.swift /host/spi-builder-workspace/Sources/Airgap/AirgapURLProtocol.swift /host/spi-builder-workspace/Sources/Airgap/AsyncMutex.swift /host/spi-builder-workspace/Sources/Airgap/Violation.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 -swift-version 6 -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/Airgap.build/Debug-android-aarch64/Airgap-t.build/DerivedSources-normal/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Airgap.build/Debug-android-aarch64/Airgap-t.build/DerivedSources/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Airgap.build/Debug-android-aarch64/Airgap-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Airgap -package-name spi_builder_workspace -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/Airgap.build/Debug-android-aarch64/Airgap-t.build/Objects-normal/aarch64/Airgap_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/Airgap.build/Debug-android-aarch64/Airgap-t.build/Objects-normal/aarch64/Modules/Airgap.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Airgap.build/Debug-android-aarch64/Airgap-t.build/Objects-normal/aarch64/Modules/Airgap.swiftsourceinfo -emit-objc-header-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Airgap.build/Debug-android-aarch64/Airgap-t.build/Objects-normal/aarch64/Airgap-Swift.h -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Airgap.build/Debug-android-aarch64/Airgap-t.build/Objects-normal/aarch64/Airgap-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Airgap.build/Debug-android-aarch64/Airgap-t.build/Objects-normal/aarch64/Airgap-primary-emit-module.d -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/Airgap.build/Debug-android-aarch64/Airgap-t.build/Objects-normal/aarch64/Modules/Airgap.swiftmodule
error: Build failed
BUILD FAILURE 6.4 android