Build Information
Successful build of AppShowcaseKit, reference 1.0.0 (c09b5c), with Swift 6.3 for macOS (SPM) on 21 Aug 2026 08:16:00 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.5.0.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.0.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ken0nek/AppShowcaseKit.git
Reference: 1.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/ken0nek/AppShowcaseKit
* tag 1.0.0 -> FETCH_HEAD
HEAD is now at c09b5cd AppShowcaseKit 1.0.0
Cloned https://github.com/ken0nek/AppShowcaseKit.git
Revision (git rev-parse @):
c09b5cdeb734d22370eda6e114567ed72351a174
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/ken0nek/AppShowcaseKit.git 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": "appshowcasekit",
"name": "AppShowcaseKit",
"url": "https://github.com/ken0nek/AppShowcaseKit.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/AppShowcaseKit",
"traits": [
"default"
],
"dependencies": [
]
}
]
}
Fetching https://github.com/ken0nek/AppShowcaseKit.git
[1/89] Fetching appshowcasekit
Fetched https://github.com/ken0nek/AppShowcaseKit.git from cache (0.94s)
Creating working copy for https://github.com/ken0nek/AppShowcaseKit.git
Working copy of https://github.com/ken0nek/AppShowcaseKit.git resolved at 1.0.0 (c09b5cd)
warning: '.resolve-product-dependencies': dependency 'appshowcasekit' 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/ken0nek/AppShowcaseKit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.5.0.app xcrun swift build --arch arm64
Building for debugging...
[0/7] Copying PrivacyInfo.xcprivacy
[2/7] Write sources
[6/7] Write swift-version-69A768CDF2A0BEE1.txt
[8/22] Compiling AppShowcaseCore StorefrontCode.swift
[9/22] Compiling AppShowcaseCore ShowcaseOverlay.swift
[10/22] Compiling AppShowcaseCore ShowcaseTapStyle.swift
[11/22] Compiling AppShowcaseCore ShowcasePlatform.swift
[12/23] Compiling AppShowcaseCore resource_bundle_accessor.swift
[13/23] Compiling AppShowcaseCore ShowcaseHostOverride.swift
[14/23] Compiling AppShowcaseCore ShowcaseLoader.swift
[15/23] Compiling AppShowcaseCore RunningOS.swift
[16/23] Compiling AppShowcaseCore ShowcaseApp.swift
[17/23] Compiling AppShowcaseCore LookupResponse.swift
[18/23] Compiling AppShowcaseCore RosterResolver.swift
[19/23] Emitting module AppShowcaseCore
[20/23] Compiling AppShowcaseCore AppShowcaseCore.swift
[21/23] Compiling AppShowcaseCore LookupEndpoint.swift
[22/23] Compiling AppShowcaseCore ShowcaseAttribution.swift
[23/23] Compiling AppShowcaseCore ShowcaseCache.swift
[24/28] Emitting module AppShowcaseStoreKit
[25/28] Compiling AppShowcaseStoreKit AppShowcaseStoreKit.swift
[26/28] Compiling AppShowcaseStoreKit ShowcaseLoader+Resolved.swift
[27/28] Compiling AppShowcaseStoreKit StorefrontCode+Current.swift
[28/28] Compiling AppShowcaseStoreKit resource_bundle_accessor.swift
[29/34] Compiling AppShowcaseUI resource_bundle_accessor.swift
[30/34] Compiling AppShowcaseUI ShowcasePresenter.swift
[31/34] Compiling AppShowcaseUI ShowcaseHostOverrideKey.swift
[32/34] Emitting module AppShowcaseUI
[33/34] Compiling AppShowcaseUI Presenters.swift
[34/34] Compiling AppShowcaseUI AppShowcaseSection.swift
Build complete! (10.92s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "AppShowcaseKit",
"name" : "AppShowcaseKit",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "18.0"
},
{
"name" : "macos",
"version" : "15.0"
}
],
"products" : [
{
"name" : "AppShowcaseCore",
"targets" : [
"AppShowcaseCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "AppShowcaseStoreKit",
"targets" : [
"AppShowcaseStoreKit"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "AppShowcaseUI",
"targets" : [
"AppShowcaseUI"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "AppShowcaseUITests",
"module_type" : "SwiftTarget",
"name" : "AppShowcaseUITests",
"path" : "Tests/AppShowcaseUITests",
"sources" : [
"HostOverrideEnvironmentTests.swift",
"PresenterMappingTests.swift",
"StoreSheetDismisserTests.swift"
],
"target_dependencies" : [
"AppShowcaseUI",
"AppShowcaseCore"
],
"type" : "test"
},
{
"c99name" : "AppShowcaseUI",
"module_type" : "SwiftTarget",
"name" : "AppShowcaseUI",
"path" : "Sources/AppShowcaseUI",
"product_memberships" : [
"AppShowcaseUI"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/AppShowcaseUI/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"AppShowcaseSection.swift",
"Presenters.swift",
"ShowcaseHostOverrideKey.swift",
"ShowcasePresenter.swift"
],
"target_dependencies" : [
"AppShowcaseCore",
"AppShowcaseStoreKit"
],
"type" : "library"
},
{
"c99name" : "AppShowcaseStoreKitTests",
"module_type" : "SwiftTarget",
"name" : "AppShowcaseStoreKitTests",
"path" : "Tests/AppShowcaseStoreKitTests",
"sources" : [
"ResolvedRosterTests.swift"
],
"target_dependencies" : [
"AppShowcaseStoreKit",
"AppShowcaseCore"
],
"type" : "test"
},
{
"c99name" : "AppShowcaseStoreKit",
"module_type" : "SwiftTarget",
"name" : "AppShowcaseStoreKit",
"path" : "Sources/AppShowcaseStoreKit",
"product_memberships" : [
"AppShowcaseStoreKit",
"AppShowcaseUI"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/AppShowcaseStoreKit/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"AppShowcaseStoreKit.swift",
"ShowcaseLoader+Resolved.swift",
"StorefrontCode+Current.swift"
],
"target_dependencies" : [
"AppShowcaseCore"
],
"type" : "library"
},
{
"c99name" : "AppShowcaseCoreTests",
"module_type" : "SwiftTarget",
"name" : "AppShowcaseCoreTests",
"path" : "Tests/AppShowcaseCoreTests",
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/AppShowcaseCoreTests/Fixtures/artist-no-entity.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/AppShowcaseCoreTests/Fixtures/artist-roster-jp.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/AppShowcaseCoreTests/Fixtures/artist-roster-mixed-platform.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/AppShowcaseCoreTests/Fixtures/artist-roster-us.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/AppShowcaseCoreTests/Fixtures/bundleid-brewsmart.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/AppShowcaseCoreTests/Fixtures/empty.json",
"rule" : {
"process" : {
}
}
},
{
"path" : "/Users/admin/builder/spi-builder-workspace/Tests/AppShowcaseCoreTests/Fixtures/malformed.json",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"FixtureLoading.swift",
"LiveSmokeTests.swift",
"LookupEndpointTests.swift",
"LookupResponseTests.swift",
"RosterResolverTests.swift",
"RunningOSTests.swift",
"ShowcaseCacheTests.swift",
"ShowcaseHostOverrideTests.swift",
"ShowcaseLoaderTests.swift",
"ShowcaseOverlayTests.swift",
"StorefrontCodeTests.swift",
"TapStyleTests.swift",
"TestSupport.swift",
"URLSessionTransportTests.swift"
],
"target_dependencies" : [
"AppShowcaseCore"
],
"type" : "test"
},
{
"c99name" : "AppShowcaseCore",
"module_type" : "SwiftTarget",
"name" : "AppShowcaseCore",
"path" : "Sources/AppShowcaseCore",
"product_memberships" : [
"AppShowcaseCore",
"AppShowcaseStoreKit",
"AppShowcaseUI"
],
"resources" : [
{
"path" : "/Users/admin/builder/spi-builder-workspace/Sources/AppShowcaseCore/PrivacyInfo.xcprivacy",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"AppShowcaseCore.swift",
"LookupEndpoint.swift",
"LookupResponse.swift",
"RosterResolver.swift",
"RunningOS.swift",
"ShowcaseApp.swift",
"ShowcaseAttribution.swift",
"ShowcaseCache.swift",
"ShowcaseHostOverride.swift",
"ShowcaseLoader.swift",
"ShowcaseOverlay.swift",
"ShowcasePlatform.swift",
"ShowcaseTapStyle.swift",
"StorefrontCode.swift"
],
"type" : "library"
}
],
"tools_version" : "6.2"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/ken0nek/appshowcasekit/1.0.0
Repository: ken0nek/AppShowcaseKit
Swift version used: 6.3
Target: AppShowcaseCore
Extracting symbol information for 'AppShowcaseCore'...
Finished extracting symbol information for 'AppShowcaseCore'. (26.64s)
Building documentation for 'AppShowcaseCore'...
warning: 'roster' doesn't exist at '/AppShowcaseCore/LookupEndpoint'
--> Sources/AppShowcaseCore/LookupEndpoint.swift:6:70-6:76
4 | ///
5 | /// Modeled as a closed enum, not a URL builder, specifically so that callers
6 + /// cannot assemble a request that omits `entity=software` — see ``roster``.
| ╰─suggestion: Replace 'roster' with 'roster(artistID:storefront:)'
7 | public enum LookupEndpoint: Sendable, Equatable {
8 | /// Step one: who publishes this app? Answers with the host's own record,
warning: Parameter 'overlay' is missing documentation
--> Sources/AppShowcaseCore/ShowcaseLoader.swift:94:76-94:76
92 | /// to fetch every time.
93 | /// - cacheLifetime: How long a stored roster counts as fresh. A day, by
94 + /// default — a roster only changes when you ship or pull an app.
95 | public init(
96 | transport: any LookupTransport = URLSessionTransport(),
warning: Parameter 'storefront' is missing documentation
--> Sources/AppShowcaseCore/ShowcaseLoader.swift:94:76-94:76
92 | /// to fetch every time.
93 | /// - cacheLifetime: How long a stored roster counts as fresh. A day, by
94 + /// default — a roster only changes when you ship or pull an app.
95 | public init(
96 | transport: any LookupTransport = URLSessionTransport(),
warning: Parameter 'running' is missing documentation
--> Sources/AppShowcaseCore/ShowcaseLoader.swift:94:76-94:76
92 | /// to fetch every time.
93 | /// - cacheLifetime: How long a stored roster counts as fresh. A day, by
94 + /// default — a roster only changes when you ship or pull an app.
95 | public init(
96 | transport: any LookupTransport = URLSessionTransport(),
warning: Parameter 'transport' is missing documentation
--> Sources/AppShowcaseCore/ShowcaseLoader.swift:94:76-94:76
92 | /// to fetch every time.
93 | /// - cacheLifetime: How long a stored roster counts as fresh. A day, by
94 + /// default — a roster only changes when you ship or pull an app.
95 | public init(
96 | transport: any LookupTransport = URLSessionTransport(),
warning: Parameter 'hostBundleID' is missing documentation
--> Sources/AppShowcaseCore/ShowcaseLoader.swift:94:76-94:76
92 | /// to fetch every time.
93 | /// - cacheLifetime: How long a stored roster counts as fresh. A day, by
94 + /// default — a roster only changes when you ship or pull an app.
95 | public init(
96 | transport: any LookupTransport = URLSessionTransport(),
Finished building documentation for 'AppShowcaseCore' (0.49s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/ken0nek/appshowcasekit/1.0.0
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2345] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.44s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (3.68s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3809] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.38s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (2.08s)
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
[1/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version-69A768CDF2A0BEE1.txt
[6/54] Compiling SymbolKit Mixin+Equals.swift
[7/54] Compiling SymbolKit Mixin+Hash.swift
[8/54] Compiling SymbolKit Mixin.swift
[9/54] Compiling SymbolKit LineList.swift
[10/54] Compiling SymbolKit Position.swift
[11/58] Emitting module Snippets
[12/58] Compiling Snippets SnippetParser.swift
[13/58] Compiling Snippets Snippet.swift
[14/58] Compiling Snippets SnippetLanguage.swift
[15/58] Compiling SymbolKit SemanticVersion.swift
[16/58] Compiling SymbolKit AccessControl.swift
[17/58] Compiling SymbolKit Availability.swift
[18/58] Compiling SymbolKit AvailabilityItem.swift
[19/58] Compiling SymbolKit Domain.swift
[20/58] Emitting module SymbolKit
[21/58] Compiling SymbolKit Relationship.swift
[22/58] Compiling SymbolKit RelationshipKind.swift
[23/58] Compiling SymbolKit SourceOrigin.swift
[24/58] Compiling SymbolKit GenericConstraints.swift
[25/58] Compiling SymbolKit Swift.swift
[26/58] Compiling SymbolKit Names.swift
[27/58] Compiling SymbolKit SPI.swift
[28/58] Compiling SymbolKit Snippet.swift
[29/58] Compiling SymbolKit Extension.swift
[30/58] Compiling SymbolKit Symbol.swift
[31/58] Compiling SymbolKit SymbolKind.swift
[32/58] Compiling SymbolKit SymbolGraph.swift
[33/58] Compiling SymbolKit GraphCollector.swift
[34/58] Compiling SymbolKit Identifier.swift
[35/58] Compiling SymbolKit KindIdentifier.swift
[36/58] Compiling SymbolKit Location.swift
[37/58] Compiling SymbolKit Mutability.swift
[38/58] Compiling SymbolKit GenericConstraint.swift
[39/58] Compiling SymbolKit GenericParameter.swift
[40/58] Compiling SymbolKit Generics.swift
[41/58] Compiling SymbolKit Namespace.swift
[42/58] Compiling SymbolKit DeclarationFragments.swift
[43/58] Compiling SymbolKit Fragment.swift
[44/58] Compiling SymbolKit FragmentKind.swift
[45/58] Compiling SymbolKit FunctionParameter.swift
[46/58] Compiling SymbolKit FunctionSignature.swift
[47/58] Compiling SymbolKit SourceRange.swift
[48/58] Compiling SymbolKit Metadata.swift
[49/58] Compiling SymbolKit Module.swift
[50/58] Compiling SymbolKit OperatingSystem.swift
[51/58] Compiling SymbolKit Platform.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.40s)
Building for debugging...
[0/1] Write swift-version-69A768CDF2A0BEE1.txt
Build of target: 'AppShowcaseCore' complete! (0.23s)
Target: AppShowcaseStoreKit
Extracting symbol information for 'AppShowcaseStoreKit'...
Finished extracting symbol information for 'AppShowcaseStoreKit'. (15.47s)
Building documentation for 'AppShowcaseStoreKit'...
warning: 'load()' doesn't exist at '/AppShowcaseStoreKit/AppShowcaseCore/ShowcaseLoader/resolved(overlay:override:)'
--> Sources/AppShowcaseStoreKit/ShowcaseLoader+Resolved.swift:12:70-12:76
10 | /// a caller can gate a row on `isEmpty` without handling an error.
11 | ///
12 + /// Cancellation resolves to empty along with everything else. ``load()``
13 | /// propagates it deliberately. This method promises never to throw, and its
14 | /// caller is a task that is going away regardless.
warning: 'ShowcaseHostOverride' doesn't exist at '/AppShowcaseStoreKit/AppShowcaseCore/ShowcaseLoader/resolved(overlay:override:)'
--> Sources/AppShowcaseStoreKit/ShowcaseLoader+Resolved.swift:16:60-16:80
14 | /// caller is a task that is going away regardless.
15 | /// - Parameter override: Host identity, for the cases where the running
16 + /// bundle is not the one on the App Store — see ``ShowcaseHostOverride``.
17 | /// Each `nil` field falls back to the environment, so naming an identifier
18 | /// does not commit the caller to naming a storefront too.
warning: Parameter 'overlay' is missing documentation
--> Sources/AppShowcaseStoreKit/ShowcaseLoader+Resolved.swift:18:65-18:65
16 | /// bundle is not the one on the App Store — see ``ShowcaseHostOverride``.
17 | /// Each `nil` field falls back to the environment, so naming an identifier
18 + /// does not commit the caller to naming a storefront too.
19 | public static func resolved(
20 | overlay: ShowcaseOverlay = .none,
warning: 'init(alpha3:)' doesn't exist at '/AppShowcaseStoreKit/AppShowcaseCore/StorefrontCode'
--> Sources/AppShowcaseStoreKit/StorefrontCode+Current.swift:11:26-11:39
9 | ///
10 | /// StoreKit reports alpha-3 and the lookup API takes alpha-2.
11 + /// ``StorefrontCode/init(alpha3:)`` converts. Falls back to the US
12 | /// storefront when StoreKit has no answer — offline on first launch, mostly.
13 | public static var current: StorefrontCode {
Finished building documentation for 'AppShowcaseStoreKit' (0.05s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/ken0nek/appshowcasekit/1.0.0
Building for debugging...
[0/3] Write swift-version-69A768CDF2A0BEE1.txt
Build of product 'snippet-extract' complete! (0.19s)
Building for debugging...
[0/1] Write swift-version-69A768CDF2A0BEE1.txt
Build of target: 'AppShowcaseStoreKit' complete! (0.22s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ken0nek/appshowcasekit/1.0.0/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ken0nek/appshowcasekit/1.0.0/linkable-paths.json
Target: AppShowcaseUI
Extracting symbol information for 'AppShowcaseUI'...
Finished extracting symbol information for 'AppShowcaseUI'. (3.60s)
Building documentation for 'AppShowcaseUI'...
warning: Parameter 'header' is missing documentation
--> Sources/AppShowcaseUI/AppShowcaseSection.swift:51:78-51:78
49 | /// - onSelect: Called with the tapped app, before the store is presented.
50 | /// For the host's own analytics — the kit reports the tap and names no
51 + /// event, because an event taxonomy belongs to the app that has one.
| ╰─suggestion: Document 'header' parameter
52 | public init(
53 | tapStyle: ShowcaseTapStyle = .default,
warning: 'ShowcaseHostOverride' doesn't exist at '/AppShowcaseUI/SwiftUICore/EnvironmentValues/showcaseHostOverride'
--> Sources/AppShowcaseUI/ShowcaseHostOverrideKey.swift:22:26-22:46
20 | /// ```
21 | ///
22 + /// The default is ``ShowcaseHostOverride/none``, and it has to be: every
23 | /// adopter inherits this value without asking for it, so a default carrying
24 | /// an identifier would point every zero-config host at someone else's
Finished building documentation for 'AppShowcaseUI' (0.55s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/ken0nek/appshowcasekit/1.0.0
Building for debugging...
[0/3] Write swift-version-69A768CDF2A0BEE1.txt
Build of product 'snippet-extract' complete! (0.21s)
Building for debugging...
[0/1] Write swift-version-69A768CDF2A0BEE1.txt
Build of target: 'AppShowcaseUI' complete! (0.24s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ken0nek/appshowcasekit/1.0.0/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/ken0nek/appshowcasekit/1.0.0/linkable-paths.json
2006
14 /Users/admin/builder/spi-builder-workspace/.docs/ken0nek/appshowcasekit/1.0.0
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/ken0nek/appshowcasekit/1.0.0
File count: 2006
Doc size: 14.0MB
Preparing doc bundle ...
Using presigned URL upload - AWS credentials not required
Uploading -ken0nek-appshowcasekit-1.0.0-62d8e24f.zip to presigned URL
Starting upload of 2866436 bytes...
Upload completed successfully
Done.