Build Information
Successful build of Phoros, reference main (e6c78c), with Swift 6.3 for macOS (SPM) on 5 Oct 2026 17:19:42 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.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/kevinerikjs/phoros.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/kevinerikjs/phoros
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at e6c78c7 feat(BEAM-104): encrypt the Phoros connection (X25519 + AES-256-GCM)
Cloned https://github.com/kevinerikjs/phoros.git
Revision (git rev-parse @):
e6c78c744d8e11c2f4726f5158e2579e785b62b9
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/kevinerikjs/phoros.git at main
Downloading binary artifact https://github.com/kevinerikjs/phoros/releases/download/1.4.2/PhorosCore.xcframework.zip
[16375/56921555] Downloading https://github.com/kevinerikjs/phoros/releases/download/1.4.2/PhorosCore.xcframework.zip
Downloaded https://github.com/kevinerikjs/phoros/releases/download/1.4.2/PhorosCore.xcframework.zip (2.57s)
========================================
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": "phoros",
"name": "Phoros",
"url": "https://github.com/kevinerikjs/phoros.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/phoros",
"traits": [
"default"
],
"dependencies": [
]
}
]
}
Fetching https://github.com/kevinerikjs/phoros.git
[1/837] Fetching phoros
Fetched https://github.com/kevinerikjs/phoros.git from cache (1.53s)
Creating working copy for https://github.com/kevinerikjs/phoros.git
Working copy of https://github.com/kevinerikjs/phoros.git resolved at main (e6c78c7)
Fetching binary artifact https://github.com/kevinerikjs/phoros/releases/download/1.4.2/PhorosCore.xcframework.zip from cache
Fetched https://github.com/kevinerikjs/phoros/releases/download/1.4.2/PhorosCore.xcframework.zip from cache (2.05s)
warning: '.resolve-product-dependencies': dependency 'phoros' 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/kevinerikjs/phoros.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.5.0.app xcrun swift build --arch arm64
Building for debugging...
[0/8] Write sources
[1/8] Copying libphoros_core.a
[2/8] Write sources
[7/8] Write swift-version-69A768CDF2A0BEE1.txt
[9/21] Compiling Phoros VideoFragmentHeader.swift
[10/22] Compiling Phoros Codecs.swift
[11/22] Compiling Phoros ControllerReport.swift
[12/22] Compiling Phoros AudioChunkHeader.swift
[13/22] Compiling Phoros QualityPreset.swift
[14/22] Compiling Phoros PacketHeader.swift
[15/22] Compiling Phoros PairingMessage.swift
[16/22] Compiling Phoros ByteOrder.swift
[17/22] Compiling Phoros FrameDecoder.swift
[18/22] Compiling Phoros ControlMessage.swift
[19/22] Compiling Phoros KeyModifiers.swift
[20/22] Emitting module Phoros
[21/22] Compiling Phoros PeerCapabilities.swift
[22/22] Compiling Phoros Phoros.swift
[23/49] Compiling PhorosSession QualityLadder.swift
[24/50] Compiling PhorosSession LinkHealth.swift
[25/50] Emitting module PhorosSession
[26/50] Compiling PhorosSession ClockSync.swift
[27/50] Compiling PhorosSession FrameAssembler.swift
[28/50] Compiling PhorosSession PairingHost.swift
[29/50] Compiling PhorosSession PairingClient.swift
[30/50] Compiling PhorosSession SendScheduler.swift
[31/50] Compiling PhorosSession AudioSequenceGuard.swift
[32/50] Compiling PhorosSession BitrateController.swift
[33/50] Compiling PhorosSession SharedSecret.swift
[34/50] Compiling PhorosSession RealtimeTransport.swift
[35/50] Compiling PhorosSession SecureChannel.swift
[36/57] Compiling PhorosNetwork PhorosLegacyTransport.swift
[37/57] Compiling PhorosNetwork PhorosConnection.swift
[38/57] Emitting module PhorosNetwork
[39/57] Compiling PhorosCore PhorosCore.swift
[40/57] Compiling PhorosCore RealtimePeer.swift
[41/57] Compiling PhorosCore PhorosPeerTransport.swift
[42/57] Emitting module PhorosCore
[43/57] Compiling PhorosInput VirtualGamepad.swift
[44/57] Compiling PhorosInput PhorosInput.swift
[45/57] Compiling PhorosMedia VideoFormat.swift
[46/57] Compiling PhorosMedia AnnexB.swift
[47/57] Compiling PhorosMedia PCMChunk.swift
[48/57] Compiling PhorosMedia AACEncoder.swift
[49/57] Compiling PhorosMedia AACDecoder.swift
[50/57] Emitting module PhorosMedia
[51/57] Compiling PhorosMedia VideoEncoder.swift
[52/57] Compiling PhorosInput GamepadReport.swift
[53/57] Compiling PhorosInput GamepadProfile.swift
[54/57] Compiling PhorosInput FrameMapping.swift
[55/57] Compiling PhorosInput ControllerSampler.swift
[56/57] Emitting module PhorosInput
[57/57] Compiling PhorosInput InputReplay.swift
Build complete! (9.35s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Phoros",
"name" : "Phoros",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "macos",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "visionos",
"version" : "1.0"
}
],
"products" : [
{
"name" : "Phoros",
"targets" : [
"Phoros"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PhorosSession",
"targets" : [
"PhorosSession"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PhorosNetwork",
"targets" : [
"PhorosNetwork"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PhorosMedia",
"targets" : [
"PhorosMedia"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PhorosInput",
"targets" : [
"PhorosInput"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "PhorosCore",
"targets" : [
"PhorosCore"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "PhorosTests",
"module_type" : "SwiftTarget",
"name" : "PhorosTests",
"path" : "Tests/PhorosTests",
"sources" : [
"ControlTests.swift",
"FramingTests.swift",
"HandshakeTests.swift",
"MediaTests.swift"
],
"target_dependencies" : [
"Phoros"
],
"type" : "test"
},
{
"c99name" : "PhorosSessionTests",
"module_type" : "SwiftTarget",
"name" : "PhorosSessionTests",
"path" : "Tests/PhorosSessionTests",
"sources" : [
"SecureChannelTests.swift",
"SessionTests.swift"
],
"target_dependencies" : [
"PhorosSession"
],
"type" : "test"
},
{
"c99name" : "PhorosSession",
"module_type" : "SwiftTarget",
"name" : "PhorosSession",
"path" : "Sources/PhorosSession",
"product_memberships" : [
"PhorosSession",
"PhorosNetwork",
"PhorosCore"
],
"sources" : [
"AudioSequenceGuard.swift",
"BitrateController.swift",
"ClockSync.swift",
"FrameAssembler.swift",
"LinkHealth.swift",
"PairingClient.swift",
"PairingHost.swift",
"QualityLadder.swift",
"RealtimeTransport.swift",
"SecureChannel.swift",
"SendScheduler.swift",
"SharedSecret.swift"
],
"target_dependencies" : [
"Phoros"
],
"type" : "library"
},
{
"c99name" : "PhorosNetworkTests",
"module_type" : "SwiftTarget",
"name" : "PhorosNetworkTests",
"path" : "Tests/PhorosNetworkTests",
"sources" : [
"LegacyTransportTests.swift",
"SecureConnectionTests.swift"
],
"target_dependencies" : [
"PhorosNetwork"
],
"type" : "test"
},
{
"c99name" : "PhorosNetwork",
"module_type" : "SwiftTarget",
"name" : "PhorosNetwork",
"path" : "Sources/PhorosNetwork",
"product_memberships" : [
"PhorosNetwork"
],
"sources" : [
"PhorosConnection.swift",
"PhorosLegacyTransport.swift"
],
"target_dependencies" : [
"Phoros",
"PhorosSession"
],
"type" : "library"
},
{
"c99name" : "PhorosMediaTests",
"module_type" : "SwiftTarget",
"name" : "PhorosMediaTests",
"path" : "Tests/PhorosMediaTests",
"sources" : [
"MediaTests.swift"
],
"target_dependencies" : [
"PhorosMedia"
],
"type" : "test"
},
{
"c99name" : "PhorosMedia",
"module_type" : "SwiftTarget",
"name" : "PhorosMedia",
"path" : "Sources/PhorosMedia",
"product_memberships" : [
"PhorosMedia"
],
"sources" : [
"AACDecoder.swift",
"AACEncoder.swift",
"AnnexB.swift",
"PCMChunk.swift",
"VideoEncoder.swift",
"VideoFormat.swift"
],
"target_dependencies" : [
"Phoros"
],
"type" : "library"
},
{
"c99name" : "PhorosInputTests",
"module_type" : "SwiftTarget",
"name" : "PhorosInputTests",
"path" : "Tests/PhorosInputTests",
"sources" : [
"InputTests.swift"
],
"target_dependencies" : [
"PhorosInput"
],
"type" : "test"
},
{
"c99name" : "PhorosInput",
"module_type" : "SwiftTarget",
"name" : "PhorosInput",
"path" : "Sources/PhorosInput",
"product_memberships" : [
"PhorosInput"
],
"sources" : [
"ControllerSampler.swift",
"FrameMapping.swift",
"GamepadProfile.swift",
"GamepadReport.swift",
"InputReplay.swift",
"PhorosInput.swift",
"VirtualGamepad.swift"
],
"target_dependencies" : [
"Phoros"
],
"type" : "library"
},
{
"c99name" : "PhorosCoreTests",
"module_type" : "SwiftTarget",
"name" : "PhorosCoreTests",
"path" : "Tests/PhorosCoreTests",
"sources" : [
"BoundaryTests.swift",
"PeerTests.swift",
"PeerTransportTests.swift"
],
"target_dependencies" : [
"PhorosCore"
],
"type" : "test"
},
{
"c99name" : "PhorosCoreFFI",
"module_type" : "BinaryTarget",
"name" : "PhorosCoreFFI",
"path" : "remote/archive/PhorosCore.xcframework.zip",
"product_memberships" : [
"PhorosCore"
],
"sources" : [
],
"type" : "binary"
},
{
"c99name" : "PhorosCore",
"module_type" : "SwiftTarget",
"name" : "PhorosCore",
"path" : "Sources/PhorosCore",
"product_memberships" : [
"PhorosCore"
],
"sources" : [
"PhorosCore.swift",
"PhorosPeerTransport.swift",
"RealtimePeer.swift"
],
"target_dependencies" : [
"PhorosCoreFFI",
"Phoros",
"PhorosSession"
],
"type" : "library"
},
{
"c99name" : "Phoros",
"module_type" : "SwiftTarget",
"name" : "Phoros",
"path" : "Sources/Phoros",
"product_memberships" : [
"Phoros",
"PhorosSession",
"PhorosNetwork",
"PhorosMedia",
"PhorosInput",
"PhorosCore"
],
"sources" : [
"Control/ControlMessage.swift",
"Control/KeyModifiers.swift",
"Framing/ByteOrder.swift",
"Framing/FrameDecoder.swift",
"Framing/PacketHeader.swift",
"Handshake/PairingMessage.swift",
"Handshake/PeerCapabilities.swift",
"Media/AudioChunkHeader.swift",
"Media/Codecs.swift",
"Media/ControllerReport.swift",
"Media/QualityPreset.swift",
"Media/VideoFragmentHeader.swift",
"Phoros.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
✅ Doc result (pending) reported
========================================
GenerateDocs
========================================
Generating docs at path: $PWD/.docs/kevinerikjs/phoros/main
Repository: kevinerikjs/phoros
Swift version used: 6.3
Target: Phoros
Extracting symbol information for 'Phoros'...
Finished extracting symbol information for 'Phoros'. (27.04s)
Building documentation for 'Phoros'...
Finished building documentation for 'Phoros' (0.71s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/kevinerikjs/phoros/main
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.28s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (1.93s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3833] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.21s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.89s)
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
[3/8] Write snippet-extract-tool-entitlement.plist
[4/8] Write swift-version-69A768CDF2A0BEE1.txt
[6/54] Compiling SymbolKit Identifier.swift
[7/54] Compiling SymbolKit KindIdentifier.swift
[8/54] Compiling SymbolKit Location.swift
[9/54] Compiling SymbolKit Mutability.swift
[10/58] Compiling Snippets SnippetParser.swift
[11/58] Compiling SymbolKit GenericConstraint.swift
[12/58] Compiling SymbolKit GenericParameter.swift
[13/58] Compiling SymbolKit Generics.swift
[14/58] Compiling SymbolKit Namespace.swift
[15/58] Emitting module Snippets
[16/58] Compiling Snippets Snippet.swift
[17/58] Compiling Snippets SnippetLanguage.swift
[18/58] Compiling SymbolKit DeclarationFragments.swift
[19/58] Compiling SymbolKit Fragment.swift
[20/58] Compiling SymbolKit FragmentKind.swift
[21/58] Compiling SymbolKit FunctionParameter.swift
[22/58] Compiling SymbolKit FunctionSignature.swift
[23/58] Compiling SymbolKit Names.swift
[24/58] Compiling SymbolKit SPI.swift
[25/58] Compiling SymbolKit Snippet.swift
[26/58] Compiling SymbolKit Extension.swift
[27/58] Compiling SymbolKit Mixin+Equals.swift
[28/58] Compiling SymbolKit Mixin+Hash.swift
[29/58] Compiling SymbolKit Mixin.swift
[30/58] Compiling SymbolKit LineList.swift
[31/58] Compiling SymbolKit Position.swift
[32/58] Compiling SymbolKit Symbol.swift
[33/58] Compiling SymbolKit SymbolKind.swift
[34/58] Compiling SymbolKit SymbolGraph.swift
[35/58] Compiling SymbolKit GraphCollector.swift
[36/58] Compiling SymbolKit SemanticVersion.swift
[37/58] Compiling SymbolKit AccessControl.swift
[38/58] Compiling SymbolKit Availability.swift
[39/58] Compiling SymbolKit AvailabilityItem.swift
[40/58] Compiling SymbolKit Domain.swift
[41/58] Emitting module SymbolKit
[42/58] Compiling SymbolKit SourceRange.swift
[43/58] Compiling SymbolKit Metadata.swift
[44/58] Compiling SymbolKit Module.swift
[45/58] Compiling SymbolKit OperatingSystem.swift
[46/58] Compiling SymbolKit Platform.swift
[47/58] Compiling SymbolKit Relationship.swift
[48/58] Compiling SymbolKit RelationshipKind.swift
[49/58] Compiling SymbolKit SourceOrigin.swift
[50/58] Compiling SymbolKit GenericConstraints.swift
[51/58] Compiling SymbolKit Swift.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 SymbolGraph+Snippet.swift
[57/62] Emitting module snippet_extract
[58/62] Compiling snippet_extract URL+Status.swift
[59/62] Compiling snippet_extract SnippetBuildCommand.swift
[59/62] Write Objects.LinkFileList
[60/62] Linking snippet-extract-tool
[61/62] Applying snippet-extract-tool
Build of product 'snippet-extract' complete! (4.70s)
Building for debugging...
[0/1] Write swift-version-69A768CDF2A0BEE1.txt
Build of target: 'Phoros' complete! (0.21s)
Target: PhorosSession
Extracting symbol information for 'PhorosSession'...
Finished extracting symbol information for 'PhorosSession'. (1.99s)
Building documentation for 'PhorosSession'...
warning: Parameter 'policy' is missing documentation
--> Sources/PhorosSession/QualityLadder.swift:54:59-54:59
52 | /// - Parameters:
53 | /// - tiers: Presets in ascending quality. Must not be empty or contain `.auto`.
54 + /// - startingAt: Initial tier; defaults to the top.
| ╰─suggestion: Document 'policy' parameter
55 | public init(tiers: [QualityPreset], startingAt: QualityPreset? = nil, policy: QualityLadderPolicy = QualityLadderPolicy()) {
56 | precondition(!tiers.isEmpty && !tiers.contains(.auto), "tiers must be concrete presets")
Finished building documentation for 'PhorosSession' (0.29s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/kevinerikjs/phoros/main
Building for debugging...
[0/3] Write swift-version-69A768CDF2A0BEE1.txt
Build of product 'snippet-extract' complete! (0.27s)
Building for debugging...
[0/1] Write swift-version-69A768CDF2A0BEE1.txt
Build of target: 'PhorosSession' complete! (0.22s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/kevinerikjs/phoros/main/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/kevinerikjs/phoros/main/linkable-paths.json
Target: PhorosNetwork
Extracting symbol information for 'PhorosNetwork'...
Finished extracting symbol information for 'PhorosNetwork'. (1.75s)
Building documentation for 'PhorosNetwork'...
Finished building documentation for 'PhorosNetwork' (0.09s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/kevinerikjs/phoros/main
Building for debugging...
[0/3] Write swift-version-69A768CDF2A0BEE1.txt
Build of product 'snippet-extract' complete! (0.24s)
Building for debugging...
[0/1] Write swift-version-69A768CDF2A0BEE1.txt
Build of target: 'PhorosNetwork' complete! (0.24s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/kevinerikjs/phoros/main/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/kevinerikjs/phoros/main/linkable-paths.json
Target: PhorosMedia
Extracting symbol information for 'PhorosMedia'...
Finished extracting symbol information for 'PhorosMedia'. (9.66s)
Building documentation for 'PhorosMedia'...
Finished building documentation for 'PhorosMedia' (0.10s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/kevinerikjs/phoros/main
Building for debugging...
[0/3] Write swift-version-69A768CDF2A0BEE1.txt
Build of product 'snippet-extract' complete! (0.25s)
Building for debugging...
[0/1] Write swift-version-69A768CDF2A0BEE1.txt
Build of target: 'PhorosMedia' complete! (0.23s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/kevinerikjs/phoros/main/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/kevinerikjs/phoros/main/linkable-paths.json
Target: PhorosInput
Extracting symbol information for 'PhorosInput'...
Finished extracting symbol information for 'PhorosInput'. (8.12s)
Building documentation for 'PhorosInput'...
Finished building documentation for 'PhorosInput' (0.12s)
Generated documentation archive at:
/Users/admin/builder/spi-builder-workspace/.docs/kevinerikjs/phoros/main
Building for debugging...
[0/3] Write swift-version-69A768CDF2A0BEE1.txt
Build of product 'snippet-extract' complete! (0.22s)
Building for debugging...
[0/1] Write swift-version-69A768CDF2A0BEE1.txt
Build of target: 'PhorosInput' complete! (0.21s)
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/kevinerikjs/phoros/main/index/index.json
Successfully merged into /Users/admin/builder/spi-builder-workspace/.docs-staging/kevinerikjs/phoros/main/linkable-paths.json
2468
13 /Users/admin/builder/spi-builder-workspace/.docs/kevinerikjs/phoros/main
✅ Doc result (uploading) reported
========================================
SyncDocs
========================================
Doc archive source directory: $PWD/.docs/kevinerikjs/phoros/main
File count: 2468
Doc size: 13.0MB
Preparing doc bundle ...
Using presigned URL upload - AWS credentials not required
Uploading -kevinerikjs-phoros-main-c3708c9c.zip to presigned URL
Starting upload of 3080001 bytes...
Upload completed successfully
Done.