Build Information
Failed to build YouTubeKit, reference main (6532af), with Swift 6.4 for Android on 25 Sep 2026 20:05:04 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344845-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/b5i/YouTubeKit.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/b5i/YouTubeKit
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 6532af3 feat: add support for storyboards and more
Cloned https://github.com/b5i/YouTubeKit.git
Revision (git rev-parse @):
6532af39da4c1612b0a1af603792419d8fb0e67f
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/b5i/YouTubeKit.git at main
========================================
Build
========================================
Selected platform: android
Swift version: 6.4
Building package at path: $PWD
https://github.com/b5i/YouTubeKit.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344845-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]
[25 / 33] YouTubeKit
error: SwiftCompile normal aarch64 failed with a nonzero exit code. Command line: cd /host
/host/spi-builder-workspace/Sources/YouTubeKit/Logging/RequestLog.swift:26:18: [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m24 |[0;0m
[0;36m25 |[0;0m /// The request that has been sent over the network, can be nil if the request couldn't even be made, for example if one of the given RequestParameter didn't pass the verification tests.
[0;36m26 |[0;0m var request: [4;39mURLRequest[0;0m? { get }
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m27 |[0;0m
[0;36m28 |[0;0m /// The raw data from the response.
/host/spi-builder-workspace/Sources/YouTubeKit/Logging/RequestLog.swift:48:25: [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m46 |[0;0m public let providedParameters: RequestParameters
[0;36m47 |[0;0m
[0;36m48 |[0;0m public let request: [4;39mURLRequest[0;0m?
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m49 |[0;0m
[0;36m50 |[0;0m public let responseData: Data?
/host/spi-builder-workspace/Sources/YouTubeKit/Logging/RequestLog.swift:56:65: [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m54 |[0;0m public let result: Result<LogType, Error>
[0;36m55 |[0;0m
[0;36m56 |[0;0m public init(providedParameters: RequestParameters, request: [4;39mURLRequest[0;0m?, responseData: Data?, result: Result<LogType, Error>) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLRequest' in scope[0;0m
[0;36m57 |[0;0m self.providedParameters = providedParameters
[0;36m58 |[0;0m self.request = request
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift:1794:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m1792 |[0;0m }
[0;36m1793 |[0;0m #else
[0;36m1794 |[0;0m extension String: LocalizedError {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'String' to imported protocols 'LocalizedError', 'Error'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m1795 |[0;0m public var errorDescription: String? { self }
[0;36m1796 |[0;0m }
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:95:112: [1;31merror: [1;39mcannot find type 'Data' in scope[0;0m
[0;36m93 |[0;0m /// - instructions: Cipher decode instructions extracted from the player.
[0;36m94 |[0;0m /// - playerData: Raw contents of base.js for this player.
[0;36m95 |[0;0m static func saveToDisk(playerName: String, instructions: [Player.CipherDecodeInstruction], playerData: [4;39mData[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'Data' in scope[0;0m
[0;36m96 |[0;0m guard let cacheDirectory = try? getCacheDirectory() else { return }
[0;36m97 |[0;0m do {
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:143:63: [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m141 |[0;0m }
[0;36m142 |[0;0m
[0;36m143 |[0;0m private static func getPlayerDirectories() throws -> [[4;39mURL[0;0m] {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m144 |[0;0m var directories = [try getCacheDirectory()]
[0;36m145 |[0;0m // TODO: remove check for documents directory
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:155:59: [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m153 |[0;0m }
[0;36m154 |[0;0m
[0;36m155 |[0;0m private static func getCacheDirectory() throws -> [4;39mURL[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m156 |[0;0m guard let root = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first else {
[0;36m157 |[0;0m throw Player.ResponseError(step: .getDocumentDirectory, reason: "Failed to get the caches directory.")
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:263:82: [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m261 |[0;0m /// - Parameter cipher: The raw `signatureCipher` string from the streaming data JSON.
[0;36m262 |[0;0m /// - Returns: A fully formed URL with the signature applied.
[0;36m263 |[0;0m private func decipherFormatURL(signatureCipher cipher: String) throws -> [4;39mURL[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m264 |[0;0m guard let url = cipher.ytkFirstGroupMatch(for: "&?url=([^\\s|&]*)")?.removingPercentEncoding else { throw "Can't find URL in cipher" }
[0;36m265 |[0;0m
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:301:64: [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m299 |[0;0m /// - Returns: The same URL with its `n` parameter replaced by the decoded value.
[0;36m300 |[0;0m /// - Throws: If JavaScriptCore is unavailable or decoding fails.
[0;36m301 |[0;0m public func processNParameterInURL(url: URL) throws -> [4;39mURL[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m302 |[0;0m #if canImport(JavaScriptCore)
[0;36m303 |[0;0m guard var components = URLComponents(string: url.absoluteString),
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:301:49: [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m299 |[0;0m /// - Returns: The same URL with its `n` parameter replaced by the decoded value.
[0;36m300 |[0;0m /// - Throws: If JavaScriptCore is unavailable or decoding fails.
[0;36m301 |[0;0m public func processNParameterInURL(url: [4;39mURL[0;0m) throws -> URL {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m302 |[0;0m #if canImport(JavaScriptCore)
[0;36m303 |[0;0m guard var components = URLComponents(string: url.absoluteString),
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:346:78: [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m344 |[0;0m /// - Parameter urlString: The raw `hlsManifestUrl` string from the streaming data JSON.
[0;36m345 |[0;0m /// - Returns: The manifest URL with the `n` path segment replaced, or the original URL if decoding fails.
[0;36m346 |[0;0m public func decodeNParameterInHLSManifestURL(_ urlString: String) -> [4;39mURL[0;0m? {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m347 |[0;0m #if canImport(JavaScriptCore)
[0;36m348 |[0;0m guard
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:401:24: [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m399 |[0;0m private static func scrapePlayer(
[0;36m400 |[0;0m playerName: String,
[0;36m401 |[0;0m playerURL: [4;39mURL[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m402 |[0;0m ) throws -> (instructions: [CipherDecodeInstruction], playerJs: String) {
[0;36m403 |[0;0m let playerData = try downloadPlayer(playerURL: playerURL)
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:448:70: [1;31merror: [1;39mcannot find type 'Data' in scope[0;0m
[0;36m446 |[0;0m /// - Parameter playerURL: The URL of the player script.
[0;36m447 |[0;0m /// - Returns: The raw data for the player JavaScript file.
[0;36m448 |[0;0m private static func downloadPlayer(playerURL: URL) throws -> [4;39mData[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'Data' in scope[0;0m
[0;36m449 |[0;0m let downloadOperation = DownloadPlayerOperation(playerURL: playerURL)
[0;36m450 |[0;0m downloadOperation.start()
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:448:55: [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m446 |[0;0m /// - Parameter playerURL: The URL of the player script.
[0;36m447 |[0;0m /// - Returns: The raw data for the player JavaScript file.
[0;36m448 |[0;0m private static func downloadPlayer(playerURL: [4;39mURL[0;0m) throws -> Data {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m449 |[0;0m let downloadOperation = DownloadPlayerOperation(playerURL: playerURL)
[0;36m450 |[0;0m downloadOperation.start()
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:466:54: [1;31merror: [1;39mcannot find type 'Operation' in scope[0;0m
[0;36m464 |[0;0m
[0;36m465 |[0;0m /// Operation used to download the player.
[0;36m466 |[0;0m private final class DownloadPlayerOperation: [4;39mOperation[0;0m, @unchecked Sendable {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'Operation' in scope[0;0m
[0;36m467 |[0;0m override var isAsynchronous: Bool { true }
[0;36m468 |[0;0m override var isExecuting: Bool { result == nil }
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:467:26: [1;31merror: [1;39mproperty does not override any property from its superclass[0;0m
[0;36m465 |[0;0m /// Operation used to download the player.
[0;36m466 |[0;0m private final class DownloadPlayerOperation: Operation, @unchecked Sendable {
[0;36m467 |[0;0m [4;39moverride[0;0m var isAsynchronous: Bool { true }
[0;36m|[0;0m `- [1;31merror: [1;39mproperty does not override any property from its superclass[0;0m
[0;36m468 |[0;0m override var isExecuting: Bool { result == nil }
[0;36m469 |[0;0m override var isFinished: Bool { !isExecuting }
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:468:26: [1;31merror: [1;39mproperty does not override any property from its superclass[0;0m
[0;36m466 |[0;0m private final class DownloadPlayerOperation: Operation, @unchecked Sendable {
[0;36m467 |[0;0m override var isAsynchronous: Bool { true }
[0;36m468 |[0;0m [4;39moverride[0;0m var isExecuting: Bool { result == nil }
[0;36m|[0;0m `- [1;31merror: [1;39mproperty does not override any property from its superclass[0;0m
[0;36m469 |[0;0m override var isFinished: Bool { !isExecuting }
[0;36m470 |[0;0m
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:469:26: [1;31merror: [1;39mproperty does not override any property from its superclass[0;0m
[0;36m467 |[0;0m override var isAsynchronous: Bool { true }
[0;36m468 |[0;0m override var isExecuting: Bool { result == nil }
[0;36m469 |[0;0m [4;39moverride[0;0m var isFinished: Bool { !isExecuting }
[0;36m|[0;0m `- [1;31merror: [1;39mproperty does not override any property from its superclass[0;0m
[0;36m470 |[0;0m
[0;36m471 |[0;0m private let playerURL: URL
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:471:36: [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m469 |[0;0m override var isFinished: Bool { !isExecuting }
[0;36m470 |[0;0m
[0;36m471 |[0;0m private let playerURL: [4;39mURL[0;0m
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m472 |[0;0m private var task: URLSessionDataTask?
[0;36m473 |[0;0m
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:472:31: [1;31merror: [1;39mcannot find type 'URLSessionDataTask' in scope[0;0m
[0;36m470 |[0;0m
[0;36m471 |[0;0m private let playerURL: URL
[0;36m472 |[0;0m private var task: [4;39mURLSessionDataTask[0;0m?
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URLSessionDataTask' in scope[0;0m
[0;36m473 |[0;0m
[0;36m474 |[0;0m var result: Result<Data, Error>? {
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:474:32: [1;31merror: [1;39mcannot find type 'Data' in scope[0;0m
[0;36m472 |[0;0m private var task: URLSessionDataTask?
[0;36m473 |[0;0m
[0;36m474 |[0;0m var result: Result<[4;39mData[0;0m, Error>? {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'Data' in scope[0;0m
[0;36m475 |[0;0m didSet {
[0;36m476 |[0;0m if result != nil { self.task = nil }
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:480:29: [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m478 |[0;0m }
[0;36m479 |[0;0m
[0;36m480 |[0;0m init(playerURL: [4;39mURL[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'URL' in scope[0;0m
[0;36m481 |[0;0m self.playerURL = playerURL
[0;36m482 |[0;0m super.init()
/host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift:485:27: [1;31merror: [1;39mmethod does not override any method from its superclass[0;0m
[0;36m483 |[0;0m }
[0;36m484 |[0;0m
[0;36m485 |[0;0m [4;39moverride[0;0m func start() {
[0;36m|[0;0m `- [1;31merror: [1;39mmethod does not override any method from its superclass[0;0m
[0;36m486 |[0;0m guard !isCancelled else { return }
[0;36m487 |[0;0m let semaphore = DispatchSemaphore(value: 0)
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/out/Intermediates.noindex/YouTubeKit.build/Debug-android-aarch64/YouTubeKit-t.build/DerivedSources/resource_bundle_accessor.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseEnums/YTLikeStatus.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseEnums/YTPrivacy.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Channel/YouTubeChannel+fetchInfos.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Channel/YouTubeChannel+subscribeActions.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Channel/YouTubeChannel.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Continuation/AuthenticatedContinuableResponse+fetchContinuation.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Continuation/AuthenticatedContinuableResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Continuation/ContinuableResponse+fetchContinuation.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Continuation/ContinuableResponse+mergeContinuation.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Continuation/ContinuableResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Continuation/ResponseContinuation.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Video/YouTubeVideo+fetchAllPossibleHostPlaylists.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Video/YouTubeVideo+fetchMoreInfos.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Video/YouTubeVideo+fetchStreamingInfos.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Video/YouTubeVideo+fetchStreamingInfosWithDownloadFormats.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Video/YouTubeVideo+getCaptions.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Video/YouTubeVideo+likeActions.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseProtocols/Video/YouTubeVideo.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTCaption.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTChannel.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTComment+actions.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTComment.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTLittleChannelInfos.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTPlaylist+canShowBeDecoded.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTPlaylist+decodeShowFromJSON.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTPlaylist+fetchVideos.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTPlaylist.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTStoryboard.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTThumbnail.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTVideo+decodeShortFromJSON.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTVideo+decodeVideoFromPlaylist.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTVideo+timeStringToSeconds.swift /host/spi-builder-workspace/Sources/YouTubeKit/BaseStructs/YTVideo.swift /host/spi-builder-workspace/Sources/YouTubeKit/ErrorHandling/ErrorTypes/BadRequestDataError.swift /host/spi-builder-workspace/Sources/YouTubeKit/ErrorHandling/ErrorTypes/NetworkError.swift /host/spi-builder-workspace/Sources/YouTubeKit/ErrorHandling/ErrorTypes/ResponseExtractionError.swift /host/spi-builder-workspace/Sources/YouTubeKit/ErrorHandling/ParameterValidator+commonValidators.swift /host/spi-builder-workspace/Sources/YouTubeKit/ErrorHandling/ParameterValidator.swift /host/spi-builder-workspace/Sources/YouTubeKit/HeaderTypes+Hashable.swift /host/spi-builder-workspace/Sources/YouTubeKit/HeaderTypes+RawRepresentable.swift /host/spi-builder-workspace/Sources/YouTubeKit/HeaderTypes.swift /host/spi-builder-workspace/Sources/YouTubeKit/HeadersList.swift /host/spi-builder-workspace/Sources/YouTubeKit/Logging/RequestLog.swift /host/spi-builder-workspace/Sources/YouTubeKit/Logging/RequestLogger+defaultImplementations.swift /host/spi-builder-workspace/Sources/YouTubeKit/Logging/RequestsLogger.swift /host/spi-builder-workspace/Sources/YouTubeKit/SwiftyJSON/SwiftyJSON.swift /host/spi-builder-workspace/Sources/YouTubeKit/URL+AppendQueryItems.swift /host/spi-builder-workspace/Sources/YouTubeKit/Utils/Array+inoutMap.swift /host/spi-builder-workspace/Sources/YouTubeKit/Utils/String+ytkRegexMatches.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeModel.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/AccountResponses/AccountInfosResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/AccountResponses/AccountLibraryResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/AccountResponses/AccountPlaylistsResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/AccountResponses/AccountSubscriptionsFeedResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/AccountResponses/AccountSubscriptionsResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/AuthenticatedResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/ChannelsActions/SubscribeChannelResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/ChannelsActions/UnsubscribeChannelResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/CreateCommentResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/DeleteCommentResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/DislikeCommentResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/EditCommentResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/EditReplyCommandResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/LikeCommentResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/RemoveDislikeCommentResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/RemoveLikeCommentResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/CommentsActions/ReplyCommentResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/HistoryActions/HistoryBlockContent.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/HistoryActions/HistoryReponse+removeVideo.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/HistoryActions/HistoryResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/HistoryActions/RemoveVideoFromHistroryResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/AddVideoToPlaylistResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/AllPossibleHostPlaylistsResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/CreatePlaylistResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/DeletePlaylistResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/MoveVideoInPlaylistResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/RemoveVideoByIdFromPlaylistResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/PlaylistsActions/RemoveVideoFromPlaylistResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/SimpleOperationAuthenticatedResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/VideosActions/DislikeVideoResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/VideosActions/LikeVideoResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AuthenticatedResponses/VideosActions/RemoveLikeFromVideoResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/AutoCompletion/AutoCompletionResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelContent+canDecode.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelContent+decodeJSONFromTab.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelContent+getContinuationFromTab.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelContent.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ChannelInfosResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ListableChannelContent+addChannelInfos.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/ChannelInfos/ListableChannelContent.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/Home/HomeScreenResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/PlaylistInfos/PlaylistInfosResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/Search/SearchResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/Search/YTSearchResult+canBeDecoded.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/Search/YTSearchResult+decodeJSON.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/Search/YTSearchResult+filterTypes.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/Search/YTSearchResult.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/Search/YTSearchResultType.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/Trending/TrendingVideosResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/AudioOnlyFormat.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/CommentTranslationResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/DownloadFormat.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/EndScreen.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/EndScreenElement.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/MediaType.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/MoreVideoInfosResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/PlayerProcessing.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/VideoCaptionsResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/VideoCommentsResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/VideoDownloadFormat.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/VideoInfosResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/YouTubeResponseTypes/VideoInfos/VideoInfosWithDownloadFormatsResponse.swift /host/spi-builder-workspace/Sources/YouTubeKit/\[URLQueryItem\]+makeUnique.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 5 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_AVAILABLE -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/YouTubeKit.build/Debug-android-aarch64/YouTubeKit-t.build/DerivedSources-normal/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/YouTubeKit.build/Debug-android-aarch64/YouTubeKit-t.build/DerivedSources/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/YouTubeKit.build/Debug-android-aarch64/YouTubeKit-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name YouTubeKit -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/YouTubeKit.build/Debug-android-aarch64/YouTubeKit-t.build/Objects-normal/aarch64/YouTubeKit_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/YouTubeKit.build/Debug-android-aarch64/YouTubeKit-t.build/Objects-normal/aarch64/Modules/YouTubeKit.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/YouTubeKit.build/Debug-android-aarch64/YouTubeKit-t.build/Objects-normal/aarch64/Modules/YouTubeKit.swiftsourceinfo -emit-objc-header-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/YouTubeKit.build/Debug-android-aarch64/YouTubeKit-t.build/Objects-normal/aarch64/YouTubeKit-Swift.h -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/YouTubeKit.build/Debug-android-aarch64/YouTubeKit-t.build/Objects-normal/aarch64/YouTubeKit-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/YouTubeKit.build/Debug-android-aarch64/YouTubeKit-t.build/Objects-normal/aarch64/YouTubeKit-primary-emit-module.d -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/YouTubeKit.build/Debug-android-aarch64/YouTubeKit-t.build/Objects-normal/aarch64/Modules/YouTubeKit.swiftmodule
error: Build failed
BUILD FAILURE 6.4 android