Structure
AssetUploader
Handles the multi-step asset upload protocol for App Store Connect.
struct AssetUploaderUpload Flow
Reserve the asset to get upload operations
Stream binary data in parts to presigned S3 URLs
Commit the upload with MD5 checksum verification
Assets are streamed from disk in chunks — the file is never fully loaded into memory, making this safe for large IPAs (200 MB+). Supports automatic retry with exponential backoff on transient part failures.
Usage
let uploader = AssetUploader()
let commit = try await uploader.upload(fileURL: ipaURL, to: reservation) { progress in
print("Upload progress: \(Int(progress * 100))%")
}Topics
Initializers
init(session: URLSession, retryPolicy: RetryPolicy)Creates an
AssetUploader.
Instance Methods
func upload(fileURL: URL, to: UploadReservation, progress: (Double) -> Void) async throws -> UploadCommitUpload a file asset using the App Store Connect multi-part protocol.
Relationships
Conforms To
Swift.SendableSwift.SendableMetatype