Build Information
Successful build of CachedAsyncImage, reference main (ad3fd9), with Swift 6.3 for macOS (SPM) on 5 Jul 2026 22:29:16 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: undefined version: run 'make version' to update
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/0xWDG/CachedAsyncImage.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/0xWDG/CachedAsyncImage
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at ad3fd91 Add iOS 15+ and macOS 12+ support
Cloned https://github.com/0xWDG/CachedAsyncImage.git
Revision (git rev-parse @):
ad3fd91bb07d08c2236f949f8969c107fa153e66
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/0xWDG/CachedAsyncImage.git at main
========================================
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": "cachedasyncimage",
"name": "CachedAsyncImage",
"url": "https://github.com/0xWDG/CachedAsyncImage.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/CachedAsyncImage",
"traits": [
"default"
],
"dependencies": [
]
}
]
}
Fetching https://github.com/0xWDG/CachedAsyncImage.git
[1/844] Fetching cachedasyncimage
Fetched https://github.com/0xWDG/CachedAsyncImage.git from cache (1.03s)
Creating working copy for https://github.com/0xWDG/CachedAsyncImage.git
Working copy of https://github.com/0xWDG/CachedAsyncImage.git resolved at main (ad3fd91)
warning: '.resolve-product-dependencies': dependency 'cachedasyncimage' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.3
Building package at path: $PWD
https://github.com/0xWDG/CachedAsyncImage.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.4.0.app xcrun swift build --arch arm64
Building for debugging...
[0/3] Write sources
[0/3] Copying PrivacyInfo.xcprivacy
[2/3] Write swift-version--6988338F2F200930.txt
[4/7] Compiling CachedAsyncImage CachedAsyncImageLoader.swift
[5/7] Compiling CachedAsyncImage CachedAsyncImage.swift
[6/7] Emitting module CachedAsyncImage
[7/7] Compiling CachedAsyncImage resource_bundle_accessor.swift
Build complete! (8.53s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "CachedAsyncImage",
"name" : "CachedAsyncImage",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "8.0"
}
],
"products" : [
{
"name" : "CachedAsyncImage",
"targets" : [
"CachedAsyncImage"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "CachedAsyncImageTests",
"module_type" : "SwiftTarget",
"name" : "CachedAsyncImageTests",
"path" : "Tests/CachedAsyncImageTests",
"sources" : [
"CachedAsyncImageTests.swift"
],
"target_dependencies" : [
"CachedAsyncImage"
],
"type" : "test"
},
{
"c99name" : "CachedAsyncImage",
"module_type" : "SwiftTarget",
"name" : "CachedAsyncImage",
"path" : "Sources/CachedAsyncImage",
"product_memberships" : [
"CachedAsyncImage"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/CachedAsyncImage/PrivacyInfo.xcprivacy",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"CachedAsyncImage.swift",
"CachedAsyncImageLoader.swift"
],
"type" : "library"
}
],
"tools_version" : "5.8"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/0xwdg/cachedasyncimage/main
Repository: 0xWDG/CachedAsyncImage
Swift version used: 6.3
Target: CachedAsyncImage
Extracting symbol information for 'CachedAsyncImage'...
Finished extracting symbol information for 'CachedAsyncImage'. (43.86s)
Building documentation for 'CachedAsyncImage'...
warning: No external resolver registered for 'com.apple.documentation'.
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:19:10-19:71
17 | ///
18 | /// This view uses the shared
19 + /// <doc://com.apple.documentation/documentation/Foundation/URLSession>
20 | /// instance to load an image from the specified URL, and then display it.
21 | /// For example, you can display an icon that's stored on a server:
warning: Resource 'AsyncImage-1' couldn't be found
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:31:5-33:59
29 | /// than the frame, and so appears smaller than the placeholder.
30 | ///
31 + /// 
34 | ///
35 | /// You can specify a custom placeholder using
warning: 'init(url:scale:content:placeholder:)' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:36:7-36:43
34 | ///
35 | /// You can specify a custom placeholder using
36 + /// ``init(url:scale:content:placeholder:)``. With this initializer, you can
| ╰─suggestion: Replace 'init(url:scale:content:placeholder:)' with 'init(url:urlCache:scale:content:placeholder:)'
37 | /// also use the `content` parameter to manipulate the loaded image.
38 | /// For example, you can add a modifier to make the loaded image resizable:
warning: 'ProgressView' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:47:41-47:53
45 | /// .frame(width: 50, height: 50)
46 | ///
47 + /// For this example, SwiftUI shows a ``ProgressView`` first, and then the
| ╰─suggestion: Replace 'ProgressView' with 'progressViewStyle(_:)'
48 | /// image scaled to fit in the specified frame:
49 | ///
warning: Resource 'AsyncImage-2' couldn't be found
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:50:5-51:78
48 | /// image scaled to fit in the specified frame:
49 | ///
50 + /// 
52 | ///
53 | /// > Important: You can't apply image-specific modifiers, like
warning: 'Image' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:54:9-54:14
52 | ///
53 | /// > Important: You can't apply image-specific modifiers, like
54 + /// ``Image/resizable(capInsets:resizingMode:)``, directly to an `AsyncImage`.
55 | /// Instead, apply them to the ``Image`` instance that your `content`
56 | /// closure gets when defining the view's appearance.
warning: 'Image' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:55:36-55:41
53 | /// > Important: You can't apply image-specific modifiers, like
54 | /// ``Image/resizable(capInsets:resizingMode:)``, directly to an `AsyncImage`.
55 + /// Instead, apply them to the ``Image`` instance that your `content`
56 | /// closure gets when defining the view's appearance.
57 | ///
warning: 'init(url:scale:transaction:content:)' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:59:7-59:43
57 | ///
58 | /// To gain more control over the loading process, use the
59 + /// ``init(url:scale:transaction:content:)`` initializer, which takes a
| ╰─suggestion: Replace 'init(url:scale:transaction:content:)' with 'init(url:urlCache:scale:transaction:content:)'
60 | /// `content` closure that receives an ``AsyncImagePhase`` to indicate
61 | /// the state of the loading operation. Return a view that's appropriate
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:60:42-60:57
58 | /// To gain more control over the loading process, use the
59 | /// ``init(url:scale:transaction:content:)`` initializer, which takes a
60 + /// `content` closure that receives an ``AsyncImagePhase`` to indicate
61 | /// the state of the loading operation. Return a view that's appropriate
62 | /// for the current phase:
warning: 'Image' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:)'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:110:30-110:35
108 | ///
109 | /// If you want to customize the placeholder or apply image-specific
110 + /// modifiers --- like ``Image/resizable(capInsets:resizingMode:)`` ---
111 | /// to the loaded image, use the ``init(url:scale:content:placeholder:)``
112 | /// initializer instead.
warning: 'init(url:scale:content:placeholder:)' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:)'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:111:40-111:76
109 | /// If you want to customize the placeholder or apply image-specific
110 | /// modifiers --- like ``Image/resizable(capInsets:resizingMode:)`` ---
111 + /// to the loaded image, use the ``init(url:scale:content:placeholder:)``
112 | /// initializer instead.
113 | ///
warning: 'init(url:scale:transaction:content:)' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:content:placeholder:)'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:156:19-156:55
154 | /// If the load operation fails, SwiftUI continues to display the
155 | /// placeholder. To be able to display a different view on a load error,
156 + /// use the ``init(url:scale:transaction:content:)`` initializer instead.
157 | ///
158 | /// - Parameters:
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:190:11-190:26
188 | /// If you set the asynchronous image's URL to `nil`, or after you set the
189 | /// URL to a value but before the load operation completes, the phase is
190 + /// ``AsyncImagePhase/empty``. After the operation completes, the phase
191 | /// becomes either ``AsyncImagePhase/failure(_:)`` or
192 | /// ``AsyncImagePhase/success(_:)``. In the first case, the phase's
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:191:26-191:41
189 | /// URL to a value but before the load operation completes, the phase is
190 | /// ``AsyncImagePhase/empty``. After the operation completes, the phase
191 + /// becomes either ``AsyncImagePhase/failure(_:)`` or
192 | /// ``AsyncImagePhase/success(_:)``. In the first case, the phase's
193 | /// ``AsyncImagePhase/error`` value indicates the reason for failure.
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:192:11-192:26
190 | /// ``AsyncImagePhase/empty``. After the operation completes, the phase
191 | /// becomes either ``AsyncImagePhase/failure(_:)`` or
192 + /// ``AsyncImagePhase/success(_:)``. In the first case, the phase's
193 | /// ``AsyncImagePhase/error`` value indicates the reason for failure.
194 | /// In the second case, the phase's ``AsyncImagePhase/image`` property
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:193:11-193:26
191 | /// becomes either ``AsyncImagePhase/failure(_:)`` or
192 | /// ``AsyncImagePhase/success(_:)``. In the first case, the phase's
193 + /// ``AsyncImagePhase/error`` value indicates the reason for failure.
194 | /// In the second case, the phase's ``AsyncImagePhase/image`` property
195 | /// contains the loaded image. Use the phase to drive the output of the
warning: 'AsyncImagePhase' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:194:43-194:58
192 | /// ``AsyncImagePhase/success(_:)``. In the first case, the phase's
193 | /// ``AsyncImagePhase/error`` value indicates the reason for failure.
194 + /// In the second case, the phase's ``AsyncImagePhase/image`` property
195 | /// contains the loaded image. Use the phase to drive the output of the
196 | /// `content` closure, which defines the view's appearance:
warning: 'AsyncImage' doesn't exist at '/CachedAsyncImage/CachedAsyncImage/init(url:urlCache:scale:transaction:content:)'
--> Sources/CachedAsyncImage/CachedAsyncImage.swift:209:11-209:21
207 | ///
208 | /// To add transitions when you change the URL, apply an identifier to the
209 + /// ``AsyncImage``.
210 | ///
211 | /// - Parameters:
Finished building documentation for 'CachedAsyncImage' (1.77s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/0xwdg/cachedasyncimage/main
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2325] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.27s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (3.50s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3749] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.23s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.92s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/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
Building for debugging...
[0/8] Write sources
[2/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version--6988338F2F200930.txt
[6/54] Emitting module SymbolKit
[7/58] Compiling SymbolKit Mixin+Equals.swift
[8/58] Compiling SymbolKit Mixin+Hash.swift
[9/58] Compiling SymbolKit Mixin.swift
[10/58] Compiling SymbolKit LineList.swift
[11/58] Compiling SymbolKit Position.swift
[12/58] Compiling SymbolKit Names.swift
[13/58] Compiling SymbolKit SPI.swift
[14/58] Compiling SymbolKit Snippet.swift
[15/58] Compiling SymbolKit Extension.swift
[16/58] Compiling Snippets SnippetLanguage.swift
[17/58] Compiling Snippets Snippet.swift
[18/58] Compiling Snippets SnippetParser.swift
[19/58] Emitting module Snippets
[20/58] Compiling SymbolKit SemanticVersion.swift
[21/58] Compiling SymbolKit AccessControl.swift
[22/58] Compiling SymbolKit Availability.swift
[23/58] Compiling SymbolKit AvailabilityItem.swift
[24/58] Compiling SymbolKit Domain.swift
[25/58] Compiling SymbolKit SourceRange.swift
[26/58] Compiling SymbolKit Metadata.swift
[27/58] Compiling SymbolKit Module.swift
[28/58] Compiling SymbolKit OperatingSystem.swift
[29/58] Compiling SymbolKit Platform.swift
[30/58] Compiling SymbolKit Relationship.swift
[31/58] Compiling SymbolKit RelationshipKind.swift
[32/58] Compiling SymbolKit SourceOrigin.swift
[33/58] Compiling SymbolKit GenericConstraints.swift
[34/58] Compiling SymbolKit Swift.swift
[35/58] Compiling SymbolKit DeclarationFragments.swift
[36/58] Compiling SymbolKit Fragment.swift
[37/58] Compiling SymbolKit FragmentKind.swift
[38/58] Compiling SymbolKit FunctionParameter.swift
[39/58] Compiling SymbolKit FunctionSignature.swift
[40/58] Compiling SymbolKit Identifier.swift
[41/58] Compiling SymbolKit KindIdentifier.swift
[42/58] Compiling SymbolKit Location.swift
[43/58] Compiling SymbolKit Mutability.swift
[44/58] Compiling SymbolKit GenericConstraint.swift
[45/58] Compiling SymbolKit GenericParameter.swift
[46/58] Compiling SymbolKit Generics.swift
[47/58] Compiling SymbolKit Namespace.swift
[48/58] Compiling SymbolKit Symbol.swift
[49/58] Compiling SymbolKit SymbolKind.swift
[50/58] Compiling SymbolKit SymbolGraph.swift
[51/58] Compiling SymbolKit GraphCollector.swift
[52/58] Compiling SymbolKit UnifiedSymbol+Encodable.swift
[53/58] Compiling SymbolKit UnifiedSymbol.swift
[54/58] Compiling SymbolKit UnifiedSymbolGraph+Encodable.swift
[55/58] Compiling SymbolKit UnifiedSymbolGraph.swift
[56/62] Compiling snippet_extract SnippetBuildCommand.swift
[57/62] Compiling snippet_extract URL+Status.swift
[58/62] Compiling snippet_extract SymbolGraph+Snippet.swift
[59/62] Emitting module snippet_extract
[59/62] Write Objects.LinkFileList
[60/62] Linking snippet-extract-tool
[61/62] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.56s)
Building for debugging...
[0/1] Write swift-version--6988338F2F200930.txt
Build of target: 'CachedAsyncImage' complete! (0.20s)
1704
13 /Users/admin/builder/spi-builder-workspace/.docs/0xwdg/cachedasyncimage/main
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/0xwdg/cachedasyncimage/main
WARNING: environment variable DOCS_MAX_SIZE_MB is not set
WARNING: environment variable DOCS_MAX_SIZE_MB_DEFAULT is not set
Directory size must not exceed 10.0 MB (was: 13.0 MB)
Error while generating docs: Documentation archive too large
✅ Doc result (failed) reported
Done.