Build Information
Failed to build V2exAPI, reference main (cf5e3c), with Swift 6.4 for Wasm on 24 Oct 2026 08:11:21 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:wasm-6.4-latest swift build --swift-sdk swift-6.4.0-RELEASE_wasm 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/isaced/V2exAPI.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/isaced/V2exAPI
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at cf5e3c8 docs: add a GitHub hero banner to both READMEs
Cloned https://github.com/isaced/V2exAPI.git
Revision (git rev-parse @):
cf5e3c8473fe2ea44b4737e2c78dc1d633d743c5
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/isaced/V2exAPI.git at main
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.4
Building package at path: $PWD
https://github.com/isaced/V2exAPI.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:wasm-6.4-latest swift build --swift-sdk swift-6.4.0-RELEASE_wasm 2>&1
wasm-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:0ad19d16955074ecc72bbe910025b19c4e4614184c1a48afc82660d4c7620121
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.4-latest
Building for debugging...
[Planning deferred tasks]
error: SwiftCompile normal wasm32 failed with a nonzero exit code. Command line: cd /host
/host/spi-builder-workspace/Sources/V2exAPI/V2exAPI.swift:35:37: [1;31merror: [1;39mtype 'URLSession' (aka 'AnyObject') has no member 'shared'[0;0m
[0;36m33 |[0;0m ///
[0;36m34 |[0;0m /// 可替换为自定义实例以启用缓存、代理或用于测试注入。
[0;36m35 |[0;0m public var session = [4;39mURLSession[0;0m.[4;39mshared[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mtype 'URLSession' (aka 'AnyObject') has no member 'shared'[0;0m
[0;36m36 |[0;0m
[0;36m37 |[0;0m /// 可重试的状态码,命中时按 `maxRetries` 指数退避重试
/host/spi-builder-workspace/Sources/V2exAPI/V2exAPI.swift:72:27: [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m70 |[0;0m endpoint: Endpoint = .v2,
[0;36m71 |[0;0m anonymous: Bool = false
[0;36m72 |[0;0m ) async throws -> (T, [4;39mURLResponse[0;0m) where T : Decodable {
[0;36m|[0;0m `- [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m73 |[0;0m let urlString = endpoint.baseURL + path
[0;36m74 |[0;0m guard let url = URL(string: urlString) else {
Foundation.URLResponse:2:18: [1;39mnote: [1;39m'URLResponse' 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 URLResponse = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLResponse' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/V2exAPI/V2exAPI.swift:137:64: [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m135 |[0;0m /// Apple 平台使用 `URLSession.data(for:)`;Linux 上的 Foundation
[0;36m136 |[0;0m /// 不提供 async 版本,需要用 completion handler 桥接。
[0;36m137 |[0;0m private static func loadData(session: URLSession, request: [4;39mURLRequest[0;0m) async throws -> (Data, URLResponse) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m138 |[0;0m #if canImport(FoundationNetworking)
[0;36m139 |[0;0m return try await withCheckedThrowingContinuation { continuation in
/host/spi-builder-workspace/Sources/V2exAPI/V2exAPI.swift:137:43: [1;31merror: [1;39m'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m135 |[0;0m /// Apple 平台使用 `URLSession.data(for:)`;Linux 上的 Foundation
[0;36m136 |[0;0m /// 不提供 async 版本,需要用 completion handler 桥接。
[0;36m137 |[0;0m private static func loadData(session: [4;39mURLSession[0;0m, request: URLRequest) async throws -> (Data, URLResponse) {
[0;36m|[0;0m `- [1;31merror: [1;39m'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m138 |[0;0m #if canImport(FoundationNetworking)
[0;36m139 |[0;0m return try await withCheckedThrowingContinuation { continuation in
Foundation.URLSession:2:18: [1;39mnote: [1;39m'URLSession' 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 URLSession = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLSession' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/V2exAPI/V2exAPI.swift:137:99: [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m135 |[0;0m /// Apple 平台使用 `URLSession.data(for:)`;Linux 上的 Foundation
[0;36m136 |[0;0m /// 不提供 async 版本,需要用 completion handler 桥接。
[0;36m137 |[0;0m private static func loadData(session: URLSession, request: URLRequest) async throws -> (Data, [4;39mURLResponse[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m138 |[0;0m #if canImport(FoundationNetworking)
[0;36m139 |[0;0m return try await withCheckedThrowingContinuation { continuation in
Foundation.URLResponse:2:18: [1;39mnote: [1;39m'URLResponse' 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 URLResponse = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLResponse' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/V2exAPI/V2exAPI.swift:158:37: [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m156 |[0;0m
[0;36m157 |[0;0m /// 执行请求,对限流与临时性服务端错误做指数退避重试
[0;36m158 |[0;0m private func perform(_ request: [4;39mURLRequest[0;0m) async throws -> (Data, URLResponse) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m159 |[0;0m var attempt = 0
[0;36m160 |[0;0m while true {
/host/spi-builder-workspace/Sources/V2exAPI/V2exAPI.swift:158:72: [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m156 |[0;0m
[0;36m157 |[0;0m /// 执行请求,对限流与临时性服务端错误做指数退避重试
[0;36m158 |[0;0m private func perform(_ request: URLRequest) async throws -> (Data, [4;39mURLResponse[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m159 |[0;0m var attempt = 0
[0;36m160 |[0;0m while true {
Foundation.URLResponse:2:18: [1;39mnote: [1;39m'URLResponse' 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 URLResponse = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLResponse' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/V2exAPI/V2exAPI.swift:191:50: [1;31merror: [1;39m'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m189 |[0;0m
[0;36m190 |[0;0m /// 指数退避,若服务端给出 X-Rate-Limit-Reset 则优先采用
[0;36m191 |[0;0m private func backoff(attempt: Int, response: [4;39mHTTPURLResponse[0;0m? = nil) async throws {
[0;36m|[0;0m `- [1;31merror: [1;39m'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m192 |[0;0m var delay = retryDelay * pow(2, Double(attempt))
[0;36m193 |[0;0m if let reset = V2exAPIError.intValue(response?.allHeaderFields, "X-Rate-Limit-Reset") {
Foundation.HTTPURLResponse:2:18: [1;39mnote: [1;39m'HTTPURLResponse' 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 HTTPURLResponse = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'HTTPURLResponse' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/V2exAPI/V2exAPIError.swift:27:83: [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m25 |[0;0m /// - message: 从响应体或 `V2Response.message` 中提取的错误信息
[0;36m26 |[0;0m /// - rateLimit: 从响应头解析出的限流信息(如果服务端返回了)
[0;36m27 |[0;0m case http(statusCode: Int, message: String?, rateLimit: RateLimit?, response: [4;39mURLResponse[0;0m?)
[0;36m|[0;0m `- [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m28 |[0;0m
[0;36m29 |[0;0m /// 响应体无法解码为期望的模型
Foundation.URLResponse:2:18: [1;39mnote: [1;39m'URLResponse' 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 URLResponse = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLResponse' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/V2exAPI/V2exAPIError.swift:33:49: [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m31 |[0;0m
[0;36m32 |[0;0m /// V2 接口返回 `success: false`
[0;36m33 |[0;0m case apiFailure(message: String?, response: [4;39mURLResponse[0;0m?)
[0;36m|[0;0m `- [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m34 |[0;0m
[0;36m35 |[0;0m /// 网络层错误(无网络、超时、TLS 失败等)
Foundation.URLResponse:2:18: [1;39mnote: [1;39m'URLResponse' 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 URLResponse = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLResponse' has been explicitly marked unavailable here[0;0m
/host/spi-builder-workspace/Sources/V2exAPI/V2exAPIError.swift:160:42: [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m158 |[0;0m
[0;36m159 |[0;0m /// 从响应头构造限流信息
[0;36m160 |[0;0m static func rateLimit(from response: [4;39mURLResponse[0;0m?) -> RateLimit? {
[0;36m|[0;0m `- [1;31merror: [1;39m'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.[0;0m
[0;36m161 |[0;0m RateLimit(headers: (response as? HTTPURLResponse)?.allHeaderFields)
[0;36m162 |[0;0m }
Foundation.URLResponse:2:18: [1;39mnote: [1;39m'URLResponse' 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 URLResponse = AnyObject
[0;36m|[0;0m `- [1;39mnote: [1;39m'URLResponse' has been explicitly marked unavailable here[0;0m
Failed frontend command:
/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /host/spi-builder-workspace/Sources/V2exAPI/Models/SingleOrArray.swift /host/spi-builder-workspace/Sources/V2exAPI/Models/V2Comment.swift /host/spi-builder-workspace/Sources/V2exAPI/Models/V2EmptyResult.swift /host/spi-builder-workspace/Sources/V2exAPI/Models/V2Member.swift /host/spi-builder-workspace/Sources/V2exAPI/Models/V2Node.swift /host/spi-builder-workspace/Sources/V2exAPI/Models/V2Notification.swift /host/spi-builder-workspace/Sources/V2exAPI/Models/V2Response.swift /host/spi-builder-workspace/Sources/V2exAPI/Models/V2Token.swift /host/spi-builder-workspace/Sources/V2exAPI/Models/V2Topic.swift /host/spi-builder-workspace/Sources/V2exAPI/V2exAPI.swift /host/spi-builder-workspace/Sources/V2exAPI/V2exAPIError.swift -target wasm32-unknown-wasip1 -disable-objc-interop -sdk /root/.swiftpm/swift-sdks/swift-6.4.0-RELEASE_wasm.artifactbundle/swift-6.4.0-RELEASE_wasm/wasm32-unknown-wasip1/WASI.sdk -sysroot /root/.swiftpm/swift-sdks/swift-6.4.0-RELEASE_wasm.artifactbundle/swift-6.4.0-RELEASE_wasm/wasm32-unknown-wasip1/WASI.sdk -I /host/spi-builder-workspace/.build/out/Products/Debug-webassembly-wasm32 -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 SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-upcoming-feature ExistentialAny -enable-upcoming-feature ForwardTrailingClosures -enable-upcoming-feature DisableOutwardActorInference -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -external-plugin-path /usr/lib/swift/host/plugins/testing\#/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_wasm.artifactbundle/swift-6.4.0-RELEASE_wasm/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static -use-static-resource-dir -enable-anonymous-context-mangled-names -file-compilation-dir /host -Xcc -resource-dir -Xcc /root/.swiftpm/swift-sdks/swift-6.4.0-RELEASE_wasm.artifactbundle/swift-6.4.0-RELEASE_wasm/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang -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-webassembly-wasm32/include -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/V2exAPI.build/Debug-webassembly-wasm32/V2exAPI-t.build/DerivedSources-normal/wasm32 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/V2exAPI.build/Debug-webassembly-wasm32/V2exAPI-t.build/DerivedSources/wasm32 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/V2exAPI.build/Debug-webassembly-wasm32/V2exAPI-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name V2exAPI -package-name spi_builder_workspace -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/V2exAPI.build/Debug-webassembly-wasm32/V2exAPI-t.build/Objects-normal/wasm32/V2exAPI_const_extract_protocols.json -in-process-plugin-server-path /usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /usr/lib/swift/host/plugins -plugin-path /usr/local/lib/swift/host/plugins -emit-module-doc-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/V2exAPI.build/Debug-webassembly-wasm32/V2exAPI-t.build/Objects-normal/wasm32/Modules/V2exAPI.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/V2exAPI.build/Debug-webassembly-wasm32/V2exAPI-t.build/Objects-normal/wasm32/Modules/V2exAPI.swiftsourceinfo -emit-objc-header-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/V2exAPI.build/Debug-webassembly-wasm32/V2exAPI-t.build/Objects-normal/wasm32/V2exAPI-Swift.h -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/V2exAPI.build/Debug-webassembly-wasm32/V2exAPI-t.build/Objects-normal/wasm32/V2exAPI-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/V2exAPI.build/Debug-webassembly-wasm32/V2exAPI-t.build/Objects-normal/wasm32/V2exAPI-primary-emit-module.d -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/V2exAPI.build/Debug-webassembly-wasm32/V2exAPI-t.build/Objects-normal/wasm32/Modules/V2exAPI.swiftmodule
error: Build failed
BUILD FAILURE 6.4 wasm