Build Information
Failed to build FrameworkToolbox, reference main (b4cc12), with Swift 6.4 for Android on 8 Oct 2026 19:34:47 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344849-1":/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.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Mx-Iris/FrameworkToolbox.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/Mx-Iris/FrameworkToolbox
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at b4cc124 docs(FoundationToolbox): point AppKit and UIKit messages at UIFoundation
Cloned https://github.com/Mx-Iris/FrameworkToolbox.git
Revision (git rev-parse @):
b4cc124f50025bc29054681747dc926f0b7c94a8
SUCCESS checkout https://github.com/Mx-Iris/FrameworkToolbox.git at main
========================================
Build
========================================
Selected platform: android
Swift version: 6.4
Building package at path: $PWD
https://github.com/Mx-Iris/FrameworkToolbox.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344849-1":/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:34a00a57f57797b403a98b861c3ce940f20735b4cb78ef45654f0d4f3b0c0295
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.4-latest
Fetching https://github.com/pointfreeco/swift-macro-testing.git
Fetching https://github.com/swiftlang/swift-syntax.git
[1/1002] Fetching swift-macro-testing
[1003/81383] Fetching swift-macro-testing, swift-syntax
Fetched https://github.com/pointfreeco/swift-macro-testing.git (3.78s)
Fetched https://github.com/swiftlang/swift-syntax.git (3.82s)
Computing version for https://github.com/pointfreeco/swift-macro-testing.git
Computed https://github.com/pointfreeco/swift-macro-testing.git at 0.7.0 (4.14s)
Fetching https://github.com/pointfreeco/swift-snapshot-testing
[1/16500] Fetching swift-snapshot-testing
Fetched https://github.com/pointfreeco/swift-snapshot-testing (2.31s)
Computing version for https://github.com/swiftlang/swift-syntax.git
Computed https://github.com/swiftlang/swift-syntax.git at 603.0.2 (3.29s)
Computing version for https://github.com/pointfreeco/swift-snapshot-testing
Computed https://github.com/pointfreeco/swift-snapshot-testing at 1.19.6 (0.13s)
Fetching https://github.com/pointfreeco/swift-custom-dump
[1/5669] Fetching swift-custom-dump
Fetched https://github.com/pointfreeco/swift-custom-dump (0.55s)
Computing version for https://github.com/pointfreeco/swift-custom-dump
Computed https://github.com/pointfreeco/swift-custom-dump at 1.7.3 (0.70s)
Fetching https://github.com/pointfreeco/swift-issue-reporting
[1/6170] Fetching swift-issue-reporting
Fetched https://github.com/pointfreeco/swift-issue-reporting (1.99s)
Computing version for https://github.com/pointfreeco/swift-issue-reporting
Computed https://github.com/pointfreeco/swift-issue-reporting at 2.1.1 (2.88s)
Creating working copy for https://github.com/swiftlang/swift-syntax.git
Working copy of https://github.com/swiftlang/swift-syntax.git resolved at 603.0.2
Creating working copy for https://github.com/pointfreeco/swift-custom-dump
Working copy of https://github.com/pointfreeco/swift-custom-dump resolved at 1.7.3
Creating working copy for https://github.com/pointfreeco/swift-issue-reporting
Working copy of https://github.com/pointfreeco/swift-issue-reporting resolved at 2.1.1
Creating working copy for https://github.com/pointfreeco/swift-macro-testing.git
Working copy of https://github.com/pointfreeco/swift-macro-testing.git resolved at 0.7.0
Creating working copy for https://github.com/pointfreeco/swift-snapshot-testing
Working copy of https://github.com/pointfreeco/swift-snapshot-testing resolved at 1.19.6
Downloading package prebuilt https://download.swift.org/prebuilts/swift-syntax/603.0.2/swift-6.4.0-RELEASE-ubuntu_noble_x86_64-MacroSupport.tar.gz
Downloaded https://download.swift.org/prebuilts/swift-syntax/603.0.2/swift-6.4.0-RELEASE-ubuntu_noble_x86_64-MacroSupport.tar.gz (0.19s)
Building for debugging...
[Computing dependencies]
[Provisioning 5 / 58]
[Pre-planning 1 / 1523]
[Planning deferred tasks]
[Starting]
[72 / 512] SwiftSyntax509
[249 / 530] SwiftSyntax510
[280 / 531] SwiftSyntax
[283 / 540] SwiftSyntax
[285 / 542] SwiftSyntax509
[292 / 544] SwiftSyntax601
[301 / 545] SwiftSyntax602
[306 / 546] SwiftSyntax
[307 / 546]
[307 / 546] SwiftSyntax
[320 / 574] SwiftParser
[324 / 574] SwiftParser
[325 / 574] SwiftDiagnostics
[340 / 574] SwiftParser
[341 / 574] SwiftParser
[344 / 574] SwiftDiagnostics
[345 / 574] SwiftDiagnostics
[346 / 574] SwiftDiagnostics
[347 / 574] SwiftOperators
[351 / 575] SwiftParserDiagnostics
[353 / 575] SwiftParserDiagnostics
[357 / 575]
[362 / 595] SwiftParserDiagnostics
[363 / 596] SwiftParserDiagnostics
[367 / 596] SwiftOperators
[374 / 596] SwiftParserDiagnostics
[377 / 596] SwiftParserDiagnostics
[378 / 597] SwiftSyntaxBuilder
[379 / 597] SwiftParserDiagnostics
[382 / 597] SwiftParser
[384 / 597] SwiftSyntax
[387 / 597] SwiftOperators
[388 / 597] SwiftOperators
[394 / 607] SwiftSyntaxBuilder
[398 / 609] SwiftSyntaxBuilder
[400 / 609] SwiftSyntaxBuilder
[403 / 609] SwiftSyntaxBuilder
[414 / 619] SwiftIfConfig
[415 / 619] SwiftIfConfig
[424 / 620] SwiftIfConfig
[427 / 620] SwiftSyntaxMacros
[431 / 630] SwiftSyntaxMacros
[436 / 630] SwiftSyntaxMacros
[449 / 642] SwiftSyntaxMacroExpansion
[454 / 652] SwiftSyntaxMacros
[455 / 652] SwiftSyntaxMacros
[464 / 652] SwiftCompilerPluginMessageHandling
[468 / 652] MacroToolbox
[469 / 653] SwiftSyntaxMacroExpansion
[479 / 654] MacroToolbox
[483 / 663] SwiftCompilerPluginMessageHandling
[485 / 663] SwiftCompilerPluginMessageHandling
[486 / 663] SwiftCompilerPluginMessageHandling
[494 / 664] SwiftCompilerPlugin
[496 / 666] SwiftCompilerPluginMessageHandling
[501 / 666] SwiftCompilerPlugin
[503 / 667] MacroToolbox
[505 / 668] SwiftCompilerPluginMessageHandling
[507 / 669] SwiftSyntax
[510 / 670] SwiftSyntax
[517 / 670] SwiftIfConfig
[552 / 676] FrameworkToolboxMacros
[562 / 718] DyldToolboxMacros
[570 / 718] SwiftStdlibToolboxMacros
[575 / 719] ObjCRuntimeToolboxMacros
[578 / 719] SwiftStdlibToolboxMacros
[584 / 719] OSToolboxMacros
[587 / 719] ObjCRuntimeToolboxMacros
[590 / 719] FrameworkToolboxMacros
[595 / 719] FrameworkToolboxMacros
[603 / 721] ObjCRuntimeToolboxMacros
[612 / 722] DyldToolboxMacros
[619 / 723] FoundationToolboxMacros
[621 / 724] DyldToolboxMacros
[624 / 724] FrameworkToolboxMacros
[631 / 738] ObjCRuntimeToolbox
[636 / 738] ObjCRuntimeToolbox
[637 / 738] FrameworkToolbox
[646 / 738] ObjCRuntimeToolboxSoleImportClient-product
[652 / 742]
[666 / 768] CoreFoundationToolbox
error: SwiftCompile normal aarch64 /host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift failed with a nonzero exit code. Command line: cd /host
builtin-SwiftPerFileCompile main.swift
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:143:2: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m141 |[0;0m // replaced.
[0;36m142 |[0;0m
[0;36m143 |[0;0m @objc(IconTileRuntimeClient)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m144 |[0;0m final class IconTile: NSObject {
[0;36m145 |[0;0m @objc dynamic var displayedIconName: NSString?
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:145:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m143 |[0;0m @objc(IconTileRuntimeClient)
[0;36m144 |[0;0m final class IconTile: NSObject {
[0;36m145 |[0;0m @objc dynamic var displayedIconName: NSString?
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m146 |[0;0m
[0;36m147 |[0;0m @objc dynamic func setIcon(_ name: NSString?, animated: Bool) {
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:147:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m145 |[0;0m @objc dynamic var displayedIconName: NSString?
[0;36m146 |[0;0m
[0;36m147 |[0;0m @objc dynamic func setIcon(_ name: NSString?, animated: Bool) {
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m148 |[0;0m displayedIconName = name
[0;36m149 |[0;0m }
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:152:2: [1;31merror: [1;39munknown attribute 'RuntimeClassHook'[0;0m
[0;36m150 |[0;0m }
[0;36m151 |[0;0m
[0;36m152 |[0;0m @RuntimeClassHook("IconTileRuntimeClient")
[0;36m|[0;0m `- [1;31merror: [1;39munknown attribute 'RuntimeClassHook'[0;0m
[0;36m153 |[0;0m struct IconTileHooks {
[0;36m154 |[0;0m @RuntimeMethodReplacement
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:154:6: [1;31merror: [1;39munknown attribute 'RuntimeMethodReplacement'[0;0m
[0;36m152 |[0;0m @RuntimeClassHook("IconTileRuntimeClient")
[0;36m153 |[0;0m struct IconTileHooks {
[0;36m154 |[0;0m @RuntimeMethodReplacement
[0;36m|[0;0m `- [1;31merror: [1;39munknown attribute 'RuntimeMethodReplacement'[0;0m
[0;36m155 |[0;0m func setIcon(_ name: NSString?, animated: Bool) {
[0;36m156 |[0;0m // `host` is the receiver; `callOriginal` goes straight to the
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:164:2: [1;31merror: [1;39munknown attribute 'RuntimeClassProxy'[0;0m
[0;36m162 |[0;0m // MARK: - Scenario 7 — @RuntimeClassProxy: calling into that same class
[0;36m163 |[0;0m
[0;36m164 |[0;0m @RuntimeClassProxy("IconTileRuntimeClient")
[0;36m|[0;0m `- [1;31merror: [1;39munknown attribute 'RuntimeClassProxy'[0;0m
[0;36m165 |[0;0m protocol IconTileSurface {
[0;36m166 |[0;0m var displayedIconName: NSString? { get set }
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:178:23: [1;31merror: [1;39mtype 'IconTileHooks' has no member 'install'[0;0m
[0;36m176 |[0;0m
[0;36m177 |[0;0m do {
[0;36m178 |[0;0m try [4;39mIconTileHooks[0;0m.[4;39minstall[0;0m()
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'IconTileHooks' has no member 'install'[0;0m
[0;36m179 |[0;0m print(" install : ok")
[0;36m180 |[0;0m } catch {
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:188:33: [1;31merror: [1;39mtype 'IconTileHooks' has no member 'descriptors'[0;0m
[0;36m186 |[0;0m
[0;36m187 |[0;0m print(" derived descriptors:")
[0;36m188 |[0;0m for descriptor in [4;39mIconTileHooks[0;0m.[4;39mdescriptors[0;0m() {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'IconTileHooks' has no member 'descriptors'[0;0m
[0;36m189 |[0;0m print(" \(descriptor) encoding=\(descriptor.expectedTypeEncoding)")
[0;36m190 |[0;0m }
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:193:25: [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m191 |[0;0m
[0;36m192 |[0;0m print("== Scenario 7 — IconTileSurface (@RuntimeClassProxy) ==")
[0;36m193 |[0;0m print(" isSupported:", [4;39mIconTileSurfaceImplementation[0;0m.isSupported)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m194 |[0;0m if let surface = IconTileSurfaceImplementation(iconTile) {
[0;36m195 |[0;0m print(" read via proxy :", surface.displayedIconName ?? "<nil>")
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:194:18: [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m192 |[0;0m print("== Scenario 7 — IconTileSurface (@RuntimeClassProxy) ==")
[0;36m193 |[0;0m print(" isSupported:", IconTileSurfaceImplementation.isSupported)
[0;36m194 |[0;0m if let surface = [4;39mIconTileSurfaceImplementation[0;0m(iconTile) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m195 |[0;0m print(" read via proxy :", surface.displayedIconName ?? "<nil>")
[0;36m196 |[0;0m surface.setIcon("mail", animated: true)
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:201:47: [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m199 |[0;0m print(" proxy unavailable")
[0;36m200 |[0;0m }
[0;36m201 |[0;0m print(" proxy refuses an unrelated object:", [4;39mIconTileSurfaceImplementation[0;0m(NSObject()) == nil)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m202 |[0;0m
[0;36m203 |[0;0m // MARK: - Scenario 8 — DynamicObject (call a class with no header)
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:207:21: [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m205 |[0;0m print("== Scenario 8 — DynamicObject ==")
[0;36m206 |[0;0m
[0;36m207 |[0;0m let dateFormatter = [4;39mObjC[0;0m.NSDateFormatter()
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m208 |[0;0m dateFormatter.dateFormat = "yyyy-MM-dd"
[0;36m209 |[0;0m let formattedDate: String? = dateFormatter.stringFromDate(Date(timeIntervalSince1970: 1_600_000_000))
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:212:28: [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m210 |[0;0m print(" formatted date : \(formattedDate ?? "<nil>")")
[0;36m211 |[0;0m
[0;36m212 |[0;0m let processorCount: Int? = [4;39mObjC[0;0m.NSProcessInfo.processInfo.processorCount
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m213 |[0;0m print(" processor count: \(processorCount.map(String.init) ?? "<nil>") (native \(ProcessInfo.processInfo.processorCount))")
[0;36m214 |[0;0m
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:215:15: [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m213 |[0;0m print(" processor count: \(processorCount.map(String.init) ?? "<nil>") (native \(ProcessInfo.processInfo.processorCount))")
[0;36m214 |[0;0m
[0;36m215 |[0;0m let missing = [4;39mObjC[0;0m.NSDateFormatter().noSuchMethodExists()
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m216 |[0;0m print(" unknown selector is an error, not a crash: \(missing.isError)")
[0;36m217 |[0;0m
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:158:9: [1;31merror: [1;39mcannot find 'callOriginal' in scope[0;0m
[0;36m156 |[0;0m // `host` is the receiver; `callOriginal` goes straight to the
[0;36m157 |[0;0m // implementation this replacement displaced, so it cannot re-enter.
[0;36m158 |[0;0m [4;39mcallOriginal[0;0m("overridden:\(name ?? "")" as NSString, animated)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'callOriginal' in scope[0;0m
[0;36m159 |[0;0m }
[0;36m160 |[0;0m }
Failed frontend command:
/root/.local/share/swiftly/toolchains/6.4.0/usr/bin/swift-frontend -frontend -c -primary-file /host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/main.d -emit-const-values-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/main.swiftconstvalues -emit-reference-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/main.swiftdeps -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/main.dia -target aarch64-unknown-linux-android28 -Xllvm -aarch64-use-tbi -disable-objc-interop -sdk /android-ndk/android-ndk-r30/toolchains/llvm/prebuilt/linux-x86_64/sysroot -sysroot /android-ndk/android-ndk-r30/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 5 -Onone -D SWIFT_PACKAGE -D DEBUG -D Xcode -serialize-debugging-options -load-plugin-executable /host/spi-builder-workspace/.build/out/Products/Debug-linux-x86_64/ObjCRuntimeToolboxMacros\#ObjCRuntimeToolboxMacros -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.0:\ macOS\ 10.14.4,\ iOS\ 12.2,\ watchOS\ 5.2,\ tvOS\ 12.2 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.1:\ macOS\ 10.15,\ iOS\ 13.0,\ watchOS\ 6.0,\ tvOS\ 13.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.6:\ macOS\ 12.3,\ iOS\ 15.4,\ watchOS\ 8.5,\ tvOS\ 15.4 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.7:\ macOS\ 13.0,\ iOS\ 16.0,\ watchOS\ 9.0,\ tvOS\ 16.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.8:\ macOS\ 13.3,\ iOS\ 16.4,\ watchOS\ 9.4,\ tvOS\ 16.4 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.9:\ macOS\ 14.0,\ iOS\ 17.0,\ watchOS\ 10.0,\ tvOS\ 17.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.10:\ macOS\ 14.4,\ iOS\ 17.4,\ watchOS\ 10.4,\ tvOS\ 17.4,\ visionOS\ 1.1 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.0:\ macOS\ 15.0,\ iOS\ 18.0,\ watchOS\ 11.0,\ tvOS\ 18.0,\ visionOS\ 2.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.1:\ macOS\ 15.4,\ iOS\ 18.4,\ watchOS\ 11.4,\ tvOS\ 18.4,\ visionOS\ 2.4 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.2:\ macOS\ 26.0,\ iOS\ 26.0,\ watchOS\ 26.0,\ tvOS\ 26.0,\ visionOS\ 26.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.3:\ macOS\ 26.4,\ iOS\ 26.4,\ watchOS\ 26.4,\ tvOS\ 26.4,\ visionOS\ 26.4 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.4:\ macOS\ 27.0,\ iOS\ 27.0,\ watchOS\ 27.0,\ tvOS\ 27.0,\ visionOS\ 27.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.5:\ macOS\ 9999,\ iOS\ 9999,\ watchOS\ 9999,\ tvOS\ 9999,\ visionOS\ 9999 -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -external-plugin-path /root/.local/share/swiftly/toolchains/6.4.0/usr/lib/swift/host/plugins/testing\#/root/.local/share/swiftly/toolchains/6.4.0/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.0-RELEASE_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-r30/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/21 -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/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/DerivedSources-normal/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/DerivedSources/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name ObjCRuntimeToolboxClient -package-name spi_builder_workspace -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/ObjCRuntimeToolboxClient_const_extract_protocols.json -in-process-plugin-server-path /root/.local/share/swiftly/toolchains/6.4.0/usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /root/.local/share/swiftly/toolchains/6.4.0/usr/lib/swift/host/plugins -plugin-path /root/.local/share/swiftly/toolchains/6.4.0/usr/local/lib/swift/host/plugins -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/main.o -index-unit-output-path /FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/main.o -index-store-path /host/spi-builder-workspace/.build/out -index-system-modules
error: SwiftCompile normal aarch64 failed with a nonzero exit code. Command line: cd /host
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:143:2: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m141 |[0;0m // replaced.
[0;36m142 |[0;0m
[0;36m143 |[0;0m @objc(IconTileRuntimeClient)
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m144 |[0;0m final class IconTile: NSObject {
[0;36m145 |[0;0m @objc dynamic var displayedIconName: NSString?
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:145:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m143 |[0;0m @objc(IconTileRuntimeClient)
[0;36m144 |[0;0m final class IconTile: NSObject {
[0;36m145 |[0;0m @objc dynamic var displayedIconName: NSString?
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m146 |[0;0m
[0;36m147 |[0;0m @objc dynamic func setIcon(_ name: NSString?, animated: Bool) {
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:147:6: [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m145 |[0;0m @objc dynamic var displayedIconName: NSString?
[0;36m146 |[0;0m
[0;36m147 |[0;0m @objc dynamic func setIcon(_ name: NSString?, animated: Bool) {
[0;36m|[0;0m `- [1;31merror: [1;39mObjective-C interoperability is disabled[0;0m
[0;36m148 |[0;0m displayedIconName = name
[0;36m149 |[0;0m }
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:152:2: [1;31merror: [1;39munknown attribute 'RuntimeClassHook'[0;0m
[0;36m150 |[0;0m }
[0;36m151 |[0;0m
[0;36m152 |[0;0m @RuntimeClassHook("IconTileRuntimeClient")
[0;36m|[0;0m `- [1;31merror: [1;39munknown attribute 'RuntimeClassHook'[0;0m
[0;36m153 |[0;0m struct IconTileHooks {
[0;36m154 |[0;0m @RuntimeMethodReplacement
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:154:6: [1;31merror: [1;39munknown attribute 'RuntimeMethodReplacement'[0;0m
[0;36m152 |[0;0m @RuntimeClassHook("IconTileRuntimeClient")
[0;36m153 |[0;0m struct IconTileHooks {
[0;36m154 |[0;0m @RuntimeMethodReplacement
[0;36m|[0;0m `- [1;31merror: [1;39munknown attribute 'RuntimeMethodReplacement'[0;0m
[0;36m155 |[0;0m func setIcon(_ name: NSString?, animated: Bool) {
[0;36m156 |[0;0m // `host` is the receiver; `callOriginal` goes straight to the
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:164:2: [1;31merror: [1;39munknown attribute 'RuntimeClassProxy'[0;0m
[0;36m162 |[0;0m // MARK: - Scenario 7 — @RuntimeClassProxy: calling into that same class
[0;36m163 |[0;0m
[0;36m164 |[0;0m @RuntimeClassProxy("IconTileRuntimeClient")
[0;36m|[0;0m `- [1;31merror: [1;39munknown attribute 'RuntimeClassProxy'[0;0m
[0;36m165 |[0;0m protocol IconTileSurface {
[0;36m166 |[0;0m var displayedIconName: NSString? { get set }
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:178:23: [1;31merror: [1;39mtype 'IconTileHooks' has no member 'install'[0;0m
[0;36m176 |[0;0m
[0;36m177 |[0;0m do {
[0;36m178 |[0;0m try [4;39mIconTileHooks[0;0m.[4;39minstall[0;0m()
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'IconTileHooks' has no member 'install'[0;0m
[0;36m179 |[0;0m print(" install : ok")
[0;36m180 |[0;0m } catch {
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:188:33: [1;31merror: [1;39mtype 'IconTileHooks' has no member 'descriptors'[0;0m
[0;36m186 |[0;0m
[0;36m187 |[0;0m print(" derived descriptors:")
[0;36m188 |[0;0m for descriptor in [4;39mIconTileHooks[0;0m.[4;39mdescriptors[0;0m() {
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'IconTileHooks' has no member 'descriptors'[0;0m
[0;36m189 |[0;0m print(" \(descriptor) encoding=\(descriptor.expectedTypeEncoding)")
[0;36m190 |[0;0m }
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:193:25: [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m191 |[0;0m
[0;36m192 |[0;0m print("== Scenario 7 — IconTileSurface (@RuntimeClassProxy) ==")
[0;36m193 |[0;0m print(" isSupported:", [4;39mIconTileSurfaceImplementation[0;0m.isSupported)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m194 |[0;0m if let surface = IconTileSurfaceImplementation(iconTile) {
[0;36m195 |[0;0m print(" read via proxy :", surface.displayedIconName ?? "<nil>")
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:194:18: [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m192 |[0;0m print("== Scenario 7 — IconTileSurface (@RuntimeClassProxy) ==")
[0;36m193 |[0;0m print(" isSupported:", IconTileSurfaceImplementation.isSupported)
[0;36m194 |[0;0m if let surface = [4;39mIconTileSurfaceImplementation[0;0m(iconTile) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m195 |[0;0m print(" read via proxy :", surface.displayedIconName ?? "<nil>")
[0;36m196 |[0;0m surface.setIcon("mail", animated: true)
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:201:47: [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m199 |[0;0m print(" proxy unavailable")
[0;36m200 |[0;0m }
[0;36m201 |[0;0m print(" proxy refuses an unrelated object:", [4;39mIconTileSurfaceImplementation[0;0m(NSObject()) == nil)
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'IconTileSurfaceImplementation' in scope[0;0m
[0;36m202 |[0;0m
[0;36m203 |[0;0m // MARK: - Scenario 8 — DynamicObject (call a class with no header)
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:207:21: [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m205 |[0;0m print("== Scenario 8 — DynamicObject ==")
[0;36m206 |[0;0m
[0;36m207 |[0;0m let dateFormatter = [4;39mObjC[0;0m.NSDateFormatter()
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m208 |[0;0m dateFormatter.dateFormat = "yyyy-MM-dd"
[0;36m209 |[0;0m let formattedDate: String? = dateFormatter.stringFromDate(Date(timeIntervalSince1970: 1_600_000_000))
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:212:28: [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m210 |[0;0m print(" formatted date : \(formattedDate ?? "<nil>")")
[0;36m211 |[0;0m
[0;36m212 |[0;0m let processorCount: Int? = [4;39mObjC[0;0m.NSProcessInfo.processInfo.processorCount
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m213 |[0;0m print(" processor count: \(processorCount.map(String.init) ?? "<nil>") (native \(ProcessInfo.processInfo.processorCount))")
[0;36m214 |[0;0m
/host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift:215:15: [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m213 |[0;0m print(" processor count: \(processorCount.map(String.init) ?? "<nil>") (native \(ProcessInfo.processInfo.processorCount))")
[0;36m214 |[0;0m
[0;36m215 |[0;0m let missing = [4;39mObjC[0;0m.NSDateFormatter().noSuchMethodExists()
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'ObjC' in scope[0;0m
[0;36m216 |[0;0m print(" unknown selector is an error, not a crash: \(missing.isError)")
[0;36m217 |[0;0m
Failed frontend command:
/root/.local/share/swiftly/toolchains/6.4.0/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /host/spi-builder-workspace/Sources/ObjCRuntimeToolboxClient/main.swift -target aarch64-unknown-linux-android28 -Xllvm -aarch64-use-tbi -disable-objc-interop -sdk /android-ndk/android-ndk-r30/toolchains/llvm/prebuilt/linux-x86_64/sysroot -sysroot /android-ndk/android-ndk-r30/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 5 -Onone -D SWIFT_PACKAGE -D DEBUG -D Xcode -serialize-debugging-options -load-plugin-executable /host/spi-builder-workspace/.build/out/Products/Debug-linux-x86_64/ObjCRuntimeToolboxMacros\#ObjCRuntimeToolboxMacros -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.0:\ macOS\ 10.14.4,\ iOS\ 12.2,\ watchOS\ 5.2,\ tvOS\ 12.2 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.1:\ macOS\ 10.15,\ iOS\ 13.0,\ watchOS\ 6.0,\ tvOS\ 13.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.6:\ macOS\ 12.3,\ iOS\ 15.4,\ watchOS\ 8.5,\ tvOS\ 15.4 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.7:\ macOS\ 13.0,\ iOS\ 16.0,\ watchOS\ 9.0,\ tvOS\ 16.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.8:\ macOS\ 13.3,\ iOS\ 16.4,\ watchOS\ 9.4,\ tvOS\ 16.4 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.9:\ macOS\ 14.0,\ iOS\ 17.0,\ watchOS\ 10.0,\ tvOS\ 17.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 5.10:\ macOS\ 14.4,\ iOS\ 17.4,\ watchOS\ 10.4,\ tvOS\ 17.4,\ visionOS\ 1.1 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.0:\ macOS\ 15.0,\ iOS\ 18.0,\ watchOS\ 11.0,\ tvOS\ 18.0,\ visionOS\ 2.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.1:\ macOS\ 15.4,\ iOS\ 18.4,\ watchOS\ 11.4,\ tvOS\ 18.4,\ visionOS\ 2.4 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.2:\ macOS\ 26.0,\ iOS\ 26.0,\ watchOS\ 26.0,\ tvOS\ 26.0,\ visionOS\ 26.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.3:\ macOS\ 26.4,\ iOS\ 26.4,\ watchOS\ 26.4,\ tvOS\ 26.4,\ visionOS\ 26.4 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.4:\ macOS\ 27.0,\ iOS\ 27.0,\ watchOS\ 27.0,\ tvOS\ 27.0,\ visionOS\ 27.0 -enable-experimental-feature AvailabilityMacro\=SwiftStdlib\ 6.5:\ macOS\ 9999,\ iOS\ 9999,\ watchOS\ 9999,\ tvOS\ 9999,\ visionOS\ 9999 -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -external-plugin-path /root/.local/share/swiftly/toolchains/6.4.0/usr/lib/swift/host/plugins/testing\#/root/.local/share/swiftly/toolchains/6.4.0/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.0-RELEASE_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-r30/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/21 -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/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/DerivedSources-normal/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/DerivedSources/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name ObjCRuntimeToolboxClient -package-name spi_builder_workspace -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/ObjCRuntimeToolboxClient_const_extract_protocols.json -in-process-plugin-server-path /root/.local/share/swiftly/toolchains/6.4.0/usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /root/.local/share/swiftly/toolchains/6.4.0/usr/lib/swift/host/plugins -plugin-path /root/.local/share/swiftly/toolchains/6.4.0/usr/local/lib/swift/host/plugins -emit-module-doc-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/Modules/ObjCRuntimeToolboxClient.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/Modules/ObjCRuntimeToolboxClient.swiftsourceinfo -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/ObjCRuntimeToolboxClient-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/ObjCRuntimeToolboxClient-primary-emit-module.d -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/FrameworkToolbox.build/Debug-android-aarch64/ObjCRuntimeToolboxClient-p.build/Objects-normal/aarch64/Modules/ObjCRuntimeToolboxClient.swiftmodule
error: Build failed
BUILD FAILURE 6.4 android