Build Information
Successful build of audd-swift, reference v1.5.21 (ee2bc4), with Swift 6.4 for macOS (SPM) on 14 Oct 2026 06:40:04 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/AudDMusic/audd-swift.git
Reference: v1.5.21
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/AudDMusic/audd-swift
* tag v1.5.21 -> FETCH_HEAD
HEAD is now at ee2bc43 Release v1.5.21
Cloned https://github.com/AudDMusic/audd-swift.git
Revision (git rev-parse @):
ee2bc4337b498cb8c49b4c6f15bf7ab5c7b46c70
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/AudDMusic/audd-swift.git at v1.5.21
Fetching https://github.com/apple/swift-docc-plugin
[1/2345] Fetching swift-docc-plugin
Fetched https://github.com/apple/swift-docc-plugin (1.36s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.5.0 (11.37s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3838] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit (1.33s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (2.09s)
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.5.0
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
"identity": ".resolve-product-dependencies",
"name": "resolve-dependencies",
"url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
"traits": [
"default"
],
"dependencies": [
{
"identity": "audd-swift",
"name": "audd-swift",
"url": "https://github.com/AudDMusic/audd-swift.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/audd-swift",
"traits": [
"default"
],
"dependencies": [
]
}
]
}
Fetching https://github.com/AudDMusic/audd-swift.git
[1/360] Fetching audd-swift
Fetched https://github.com/AudDMusic/audd-swift.git (0.90s)
Creating working copy for https://github.com/AudDMusic/audd-swift.git
Working copy of https://github.com/AudDMusic/audd-swift.git resolved at v1.5.21 (ee2bc43)
warning: '.resolve-product-dependencies': dependency 'audd-swift' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/AudDMusic/audd-swift.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0.app xcrun swift build --arch arm64
Building for debugging...
[Pre-planning 1 / 95]
[Planning deferred tasks]
[31 / 40]
[32 / 41] AudD
[42 / 88]
[47 / 88]
[51 / 88]
[52 / 88]
[56 / 88]
[58 / 88]
[61 / 88]
[65 / 88]
[67 / 88]
[68 / 88]
[79 / 88] AudD
[80 / 88] AudD
[85 / 88] AudD
Build complete! (9.07 sec)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.3.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin"
}
],
"manifest_display_name" : "audd-swift",
"name" : "audd-swift",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "8.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "AudD",
"targets" : [
"AudD"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "AudDTests",
"module_type" : "SwiftTarget",
"name" : "AudDTests",
"path" : "Tests/AudDTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/AudDTests/Fixtures",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"ContractTests.swift",
"CustomCatalogTests.swift",
"EnvironmentTokenTests.swift",
"EventHookTests.swift",
"LongpollConsumerTests.swift",
"MockURLProtocol.swift",
"RecognitionTests.swift",
"RetryTests.swift",
"SmokeTests.swift",
"SourceTests.swift",
"StreamingHelpersTests.swift",
"StreamsTests.swift"
],
"target_dependencies" : [
"AudD"
],
"type" : "test"
},
{
"c99name" : "AudD",
"module_type" : "SwiftTarget",
"name" : "AudD",
"path" : "Sources/AudD",
"product_memberships" : [
"AudD"
],
"sources" : [
"Advanced.swift",
"AnyCodable.swift",
"AudD.swift",
"CustomCatalog.swift",
"Errors.swift",
"HTTPClient.swift",
"Logger.swift",
"LongpollConsumer.swift",
"MD5.swift",
"Models.swift",
"RetryPolicy.swift",
"Source.swift",
"Streams.swift",
"UserAgent.swift",
"Version.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/auddmusic/audd-swift/v1.5.21
Repository: AudDMusic/audd-swift
Swift version used: 6.4
.package(url: "https://github.com/apple/swift-docc-plugin", from: "1.3.0"),
Target: AudD
Extracting symbol information for 'AudD'...
Finished extracting symbol information for 'AudD'. (1.73s)
Building documentation for 'AudD'...
warning: 'recognize(_:return:market:)-7jkwp' doesn't exist at '/AudD/AudD'
--> Articles/Recognition.md:9:10-9:43
7 | The SDK exposes two recognition endpoints:
8 |
9 + - ``AudD/recognize(_:return:market:)-7jkwp`` — the standard endpoint. The first
| ╰─suggestion: Replace 'recognize(_:return:market:)-7jkwp' with 'recognize(_:returnMetadata:market:extraParameters:)'
10 | 12 seconds of audio are analyzed; short clips of YouTube/Spotify/etc. by
11 | URL also work.
warning: 'recognizeEnterprise(_:return:skip:every:limit:skipFirstSeconds:useTimecode:accurateOffsets:)' doesn't exist at '/AudD/AudD'
--> Articles/Recognition.md:12:10-12:102
10 | 12 seconds of audio are analyzed; short clips of YouTube/Spotify/etc. by
11 | URL also work.
12 + - ``AudD/recognizeEnterprise(_:return:skip:every:limit:skipFirstSeconds:useTimecode:accurateOffsets:)``
| ╰─suggestion: Replace 'recognizeEnterprise(_:return:skip:every:limit:skipFirstSeconds:useTimecode:accurateOffsets:)' with 'recognizeEnterprise(_:returnMetadata:skip:every:limit:skipFirstSeconds:useTimecode:accurateOffsets:extraParameters:)'
13 | — the enterprise endpoint. Scans the whole file; chunks the input server-side and
14 | returns one or more matches. Default `limit: 1`.
warning: Article 'Streams.md' (Streams) would override structure 'Streams'. [ArticleCollideWithSymbol]
DocC computes unique URLs for symbols, even if they have the same name, but doesn't account for article filenames that collide with symbols because of a bug.
Until rdar://79745455 (issue #593) is fixed, DocC favors the symbol in this collision and drops the article to have deterministic behavior.
--> Articles/Streams.md
Rename 'Streams.md'
warning: 'recognize(_:return:market:)-7jkwp' doesn't exist at '/AudD/AudD'
--> AudD.md:36:30-36:63
34 | ### Capabilities
35 |
36 + - **Recognition** — ``AudD/recognize(_:return:market:)-7jkwp`` analyzes the
| ╰─suggestion: Replace 'recognize(_:return:market:)-7jkwp' with 'recognize(_:returnMetadata:market:extraParameters:)'
37 | first 12 seconds of audio; ``AudD/recognizeEnterprise(_:return:skip:every:limit:skipFirstSeconds:useTimecode:accurateOffsets:)``
38 | scans the whole file.
warning: 'recognizeEnterprise(_:return:skip:every:limit:skipFirstSeconds:useTimecode:accurateOffsets:)' doesn't exist at '/AudD/AudD'
--> AudD.md:37:37-37:129
35 |
36 | - **Recognition** — ``AudD/recognize(_:return:market:)-7jkwp`` analyzes the
37 + first 12 seconds of audio; ``AudD/recognizeEnterprise(_:return:skip:every:limit:skipFirstSeconds:useTimecode:accurateOffsets:)``
| ╰─suggestion: Replace 'recognizeEnterprise(_:return:skip:every:limit:skipFirstSeconds:useTimecode:accurateOffsets:)' with 'recognizeEnterprise(_:returnMetadata:skip:every:limit:skipFirstSeconds:useTimecode:accurateOffsets:extraParameters:)'
38 | scans the whole file.
39 | - **Custom catalog** — ``CustomCatalog/add(audioID:source:)`` adds songs to your
warning: 'add(url:radioID:callbacks:)' doesn't exist at '/AudD/Streams'
--> AudD.md:43:13-43:40
41 | for music recognition.
42 | - **Streams** — subscribe live audio streams and receive recognition events:
43 + ``Streams/add(url:radioID:callbacks:)``, ``Streams/longpoll(category:options:)``,
| ╰─suggestion: Replace 'add(url:radioID:callbacks:)' with 'add(url:radioID:callbacks:extraParameters:)'
44 | ``Streams/parseCallback(_:)``.
45 | - **Lyrics** — ``Advanced/findLyrics(_:)``.
warning: Parameter 'maxRetries' is missing documentation
--> ../AudD.swift:129:58-129:58
127 | /// leaves, `.response` once a response is decoded, `.exception` if the
128 | /// request failed (network, decoding, or API error). Hook exceptions
129 + /// are swallowed; the api_token is never included.
130 | public init(
131 | apiToken: String? = nil,
warning: Parameter 'urlSession' is missing documentation
--> ../AudD.swift:129:58-129:58
127 | /// leaves, `.response` once a response is decoded, `.exception` if the
128 | /// request failed (network, decoding, or API error). Hook exceptions
129 + /// are swallowed; the api_token is never included.
130 | public init(
131 | apiToken: String? = nil,
warning: Parameter 'apiToken' is missing documentation
--> ../AudD.swift:129:58-129:58
127 | /// leaves, `.response` once a response is decoded, `.exception` if the
128 | /// request failed (network, decoding, or API error). Hook exceptions
129 + /// are swallowed; the api_token is never included.
130 | public init(
131 | apiToken: String? = nil,
warning: Parameter 'backoffFactor' is missing documentation
--> ../AudD.swift:129:58-129:58
127 | /// leaves, `.response` once a response is decoded, `.exception` if the
128 | /// request failed (network, decoding, or API error). Hook exceptions
129 + /// are swallowed; the api_token is never included.
130 | public init(
131 | apiToken: String? = nil,
warning: Parameter 'enterpriseBase' is missing documentation
--> ../AudD.swift:129:58-129:58
127 | /// leaves, `.response` once a response is decoded, `.exception` if the
128 | /// request failed (network, decoding, or API error). Hook exceptions
129 + /// are swallowed; the api_token is never included.
130 | public init(
131 | apiToken: String? = nil,
warning: Parameter 'enterpriseURLSession' is missing documentation
--> ../AudD.swift:129:58-129:58
127 | /// leaves, `.response` once a response is decoded, `.exception` if the
128 | /// request failed (network, decoding, or API error). Hook exceptions
129 + /// are swallowed; the api_token is never included.
130 | public init(
131 | apiToken: String? = nil,
warning: Parameter 'apiBase' is missing documentation
--> ../AudD.swift:129:58-129:58
127 | /// leaves, `.response` once a response is decoded, `.exception` if the
128 | /// request failed (network, decoding, or API error). Hook exceptions
129 + /// are swallowed; the api_token is never included.
130 | public init(
131 | apiToken: String? = nil,
warning: Parameter 'returnMetadata' is missing documentation
--> ../AudD.swift:332:43-332:43
330 | /// `true`; pass `false` to opt out.
331 | /// - extraParameters: additional form fields the typed params don't cover.
332 + /// Typed params win on collision.
333 | public func recognizeEnterprise(
334 | _ source: Source,
warning: Parameter 'useTimecode' is missing documentation
--> ../AudD.swift:332:43-332:43
330 | /// `true`; pass `false` to opt out.
331 | /// - extraParameters: additional form fields the typed params don't cover.
332 + /// Typed params win on collision.
333 | public func recognizeEnterprise(
334 | _ source: Source,
warning: Parameter 'skipFirstSeconds' is missing documentation
--> ../AudD.swift:332:43-332:43
330 | /// `true`; pass `false` to opt out.
331 | /// - extraParameters: additional form fields the typed params don't cover.
332 + /// Typed params win on collision.
333 | public func recognizeEnterprise(
334 | _ source: Source,
warning: Parameter 'limit' is missing documentation
--> ../AudD.swift:332:43-332:43
330 | /// `true`; pass `false` to opt out.
331 | /// - extraParameters: additional form fields the typed params don't cover.
332 + /// Typed params win on collision.
333 | public func recognizeEnterprise(
334 | _ source: Source,
warning: Parameter 'source' is missing documentation
--> ../AudD.swift:332:43-332:43
330 | /// `true`; pass `false` to opt out.
331 | /// - extraParameters: additional form fields the typed params don't cover.
332 + /// Typed params win on collision.
333 | public func recognizeEnterprise(
334 | _ source: Source,
warning: Parameter 'every' is missing documentation
--> ../AudD.swift:332:43-332:43
330 | /// `true`; pass `false` to opt out.
331 | /// - extraParameters: additional form fields the typed params don't cover.
332 + /// Typed params win on collision.
333 | public func recognizeEnterprise(
334 | _ source: Source,
warning: Parameter 'skip' is missing documentation
--> ../AudD.swift:332:43-332:43
330 | /// `true`; pass `false` to opt out.
331 | /// - extraParameters: additional form fields the typed params don't cover.
332 + /// Typed params win on collision.
333 | public func recognizeEnterprise(
334 | _ source: Source,
warning: Parameter 'url' is missing documentation
--> ../Streams.swift:78:56-78:56
76 | ///
77 | /// - Parameter extraParameters: additional form fields the typed params don't
| ╰─suggestion: Document 'url' parameter
78 + /// cover. Typed params (`url`) win on collision.
79 | public func setCallbackURL(
80 | _ url: String,
warning: Parameter 'returnMetadata' is missing documentation
--> ../Streams.swift:78:56-78:56
76 | ///
77 | /// - Parameter extraParameters: additional form fields the typed params don't
| ╰─suggestion: Document 'returnMetadata' parameter
78 + /// cover. Typed params (`url`) win on collision.
79 | public func setCallbackURL(
80 | _ url: String,
warning: Parameter 'url' is missing documentation
--> ../Streams.swift:102:81-102:81
100 | ///
101 | /// - Parameter extraParameters: additional form fields the typed params don't
| ╰─suggestion: Document 'url' parameter
102 + /// cover. Typed params (`url`, `radio_id`, `callbacks`) win on collision.
103 | public func add(
104 | url: String,
warning: Parameter 'callbacks' is missing documentation
--> ../Streams.swift:102:81-102:81
100 | ///
101 | /// - Parameter extraParameters: additional form fields the typed params don't
| ╰─suggestion: Document 'callbacks' parameter
102 + /// cover. Typed params (`url`, `radio_id`, `callbacks`) win on collision.
103 | public func add(
104 | url: String,
warning: Parameter 'radioID' is missing documentation
--> ../Streams.swift:102:81-102:81
100 | ///
101 | /// - Parameter extraParameters: additional form fields the typed params don't
| ╰─suggestion: Document 'radioID' parameter
102 + /// cover. Typed params (`url`, `radio_id`, `callbacks`) win on collision.
103 | public func add(
104 | url: String,
warning: 'add(url:radioID:callbacks:)' doesn't exist at '/AudD/Streams/longpoll(radioID:options:)'
--> ../Streams.swift:203:62-203:89
201 | ///
202 | /// - Parameters:
203 + /// - radioID: the stream's radio_id (as returned by ``add(url:radioID:callbacks:)``).
204 | /// - options: subscription options. Defaults to "start from now, 50s
205 | /// timeout, preflight on".
Finished building documentation for 'AudD' (0.26s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/auddmusic/audd-swift/v1.5.21
Building for debugging...
[Planning deferred tasks]
[20 / 43] Snippets
[31 / 58] SymbolKit
[35 / 58] Snippets
[52 / 59] SymbolKit
[56 / 63] SymbolKit
[58 / 63] snippet-extract-product
[59 / 63] snippet-extract-product
[61 / 63] snippet-extract-product
Build complete! (2.21 sec)
Building for debugging...
[Planning deferred tasks]
[2 / 10]
[3 / 11] AudD
[14 / 22] AudD
[16 / 18] AudD
Build complete! (1.54 sec)
742
5 /Users/admin/builder/spi-builder-workspace/.docs/auddmusic/audd-swift/v1.5.21
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/auddmusic/audd-swift/v1.5.21
File count: 742
Doc size: 5.0MB
Preparing doc bundle ...
Using presigned URL upload - AWS credentials not required
Uploading -auddmusic-audd-swift-v1.5.21-22ccc5e3.zip to presigned URL
Starting upload of 1166114 bytes...
Upload completed successfully
Done.