Build Information
Successful build of NextLevelSessionExporter, reference 0.4.6 (b6c0cc
), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 03:10:20 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Build Log
========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/NextLevel/NextLevelSessionExporter.git
Reference: 0.4.6
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/NextLevel/NextLevelSessionExporter
* tag 0.4.6 -> FETCH_HEAD
HEAD is now at b6c0cce bump version
Cloned https://github.com/NextLevel/NextLevelSessionExporter.git
Revision (git rev-parse @):
b6c0cce1aa37fe1547d694f958fac3c3524b74da
SUCCESS checkout https://github.com/NextLevel/NextLevelSessionExporter.git at 0.4.6
========================================
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",
"dependencies": [
{
"identity": "nextlevelsessionexporter",
"name": "NextLevelSessionExporter",
"url": "https://github.com/NextLevel/NextLevelSessionExporter.git",
"version": "unspecified",
"path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/NextLevelSessionExporter",
"dependencies": [
]
}
]
}
Fetching https://github.com/NextLevel/NextLevelSessionExporter.git
[1/772] Fetching nextlevelsessionexporter
Fetched https://github.com/NextLevel/NextLevelSessionExporter.git from cache (2.89s)
Creating working copy for https://github.com/NextLevel/NextLevelSessionExporter.git
Working copy of https://github.com/NextLevel/NextLevelSessionExporter.git resolved at 0.4.6 (b6c0cce)
warning: '.resolve-product-dependencies': dependency 'nextlevelsessionexporter' is not used by any target
Found 0 product dependencies
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/NextLevel/NextLevelSessionExporter.git
https://github.com/NextLevel/NextLevelSessionExporter.git
{
"dependencies" : [
],
"manifest_display_name" : "NextLevelSessionExporter",
"name" : "NextLevelSessionExporter",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "10.0"
}
],
"products" : [
{
"name" : "NextLevelSessionExporter",
"targets" : [
"SessionExporter"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "SessionExporter",
"module_type" : "SwiftTarget",
"name" : "SessionExporter",
"path" : "Sources",
"product_memberships" : [
"NextLevelSessionExporter"
],
"sources" : [
"NextLevelSessionExporter.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/4] Emitting module SessionExporter
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:652:5: warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
650 |
651 | // subclass and add more checks, if needed
652 | open func validateVideoOutputConfiguration() -> Bool {
| `- warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
653 | guard let videoOutputConfiguration = self.videoOutputConfiguration else {
654 | return false
[4/4] Compiling SessionExporter NextLevelSessionExporter.swift
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:652:5: warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
650 |
651 | // subclass and add more checks, if needed
652 | open func validateVideoOutputConfiguration() -> Bool {
| `- warning: non-'@objc' instance method in extensions cannot be overridden; use 'public' instead
653 | guard let videoOutputConfiguration = self.videoOutputConfiguration else {
654 | return false
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:286:20: warning: capture of 'self' with non-sendable type 'NextLevelSessionExporter' in a '@Sendable' closure
53 |
54 | /// 🔄 NextLevelSessionExporter, export and transcode media in Swift
55 | open class NextLevelSessionExporter: NSObject {
| `- note: class 'NextLevelSessionExporter' does not conform to the 'Sendable' protocol
56 |
57 | /// Input asset for export, provided when initialized.
:
284 | videoTracks.count > 0 {
285 | videoInput.requestMediaDataWhenReady(on: self._inputQueue, using: {
286 | if self.encode(readySamplesFromReaderOutput: videoOutput, toWriterInput: videoInput) == false {
| `- warning: capture of 'self' with non-sendable type 'NextLevelSessionExporter' in a '@Sendable' closure
287 | videoSemaphore.signal()
288 | }
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:286:62: warning: capture of 'videoOutput' with non-sendable type 'AVAssetReaderVideoCompositionOutput' in a '@Sendable' closure
284 | videoTracks.count > 0 {
285 | videoInput.requestMediaDataWhenReady(on: self._inputQueue, using: {
286 | if self.encode(readySamplesFromReaderOutput: videoOutput, toWriterInput: videoInput) == false {
| `- warning: capture of 'videoOutput' with non-sendable type 'AVAssetReaderVideoCompositionOutput' in a '@Sendable' closure
287 | videoSemaphore.signal()
288 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h:416:12: note: class 'AVAssetReaderVideoCompositionOutput' does not conform to the 'Sendable' protocol
414 | */
415 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
416 | @interface AVAssetReaderVideoCompositionOutput : AVAssetReaderOutput
| `- note: class 'AVAssetReaderVideoCompositionOutput' does not conform to the 'Sendable' protocol
417 | {
418 | @private
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:25:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
23 |
24 | import Foundation
25 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
26 |
27 | // MARK: - types
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:286:90: warning: capture of 'videoInput' with non-sendable type 'AVAssetWriterInput' in a '@Sendable' closure
284 | videoTracks.count > 0 {
285 | videoInput.requestMediaDataWhenReady(on: self._inputQueue, using: {
286 | if self.encode(readySamplesFromReaderOutput: videoOutput, toWriterInput: videoInput) == false {
| `- warning: capture of 'videoInput' with non-sendable type 'AVAssetWriterInput' in a '@Sendable' closure
287 | videoSemaphore.signal()
288 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:43:12: note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
41 | */
42 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
43 | @interface AVAssetWriterInput : NSObject
| `- note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
44 | {
45 | @private
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:297:20: warning: capture of 'self' with non-sendable type 'NextLevelSessionExporter' in a '@Sendable' closure
53 |
54 | /// 🔄 NextLevelSessionExporter, export and transcode media in Swift
55 | open class NextLevelSessionExporter: NSObject {
| `- note: class 'NextLevelSessionExporter' does not conform to the 'Sendable' protocol
56 |
57 | /// Input asset for export, provided when initialized.
:
295 | let audioOutput = self._audioOutput {
296 | audioInput.requestMediaDataWhenReady(on: self._inputQueue, using: {
297 | if self.encode(readySamplesFromReaderOutput: audioOutput, toWriterInput: audioInput) == false {
| `- warning: capture of 'self' with non-sendable type 'NextLevelSessionExporter' in a '@Sendable' closure
298 | audioSemaphore.signal()
299 | }
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:297:62: warning: capture of 'audioOutput' with non-sendable type 'AVAssetReaderAudioMixOutput' in a '@Sendable' closure
295 | let audioOutput = self._audioOutput {
296 | audioInput.requestMediaDataWhenReady(on: self._inputQueue, using: {
297 | if self.encode(readySamplesFromReaderOutput: audioOutput, toWriterInput: audioInput) == false {
| `- warning: capture of 'audioOutput' with non-sendable type 'AVAssetReaderAudioMixOutput' in a '@Sendable' closure
298 | audioSemaphore.signal()
299 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetReaderOutput.h:300:12: note: class 'AVAssetReaderAudioMixOutput' does not conform to the 'Sendable' protocol
298 | */
299 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
300 | @interface AVAssetReaderAudioMixOutput : AVAssetReaderOutput
| `- note: class 'AVAssetReaderAudioMixOutput' does not conform to the 'Sendable' protocol
301 | {
302 | @private
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:297:90: warning: capture of 'audioInput' with non-sendable type 'AVAssetWriterInput' in a '@Sendable' closure
295 | let audioOutput = self._audioOutput {
296 | audioInput.requestMediaDataWhenReady(on: self._inputQueue, using: {
297 | if self.encode(readySamplesFromReaderOutput: audioOutput, toWriterInput: audioInput) == false {
| `- warning: capture of 'audioInput' with non-sendable type 'AVAssetWriterInput' in a '@Sendable' closure
298 | audioSemaphore.signal()
299 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetWriterInput.h:43:12: note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
41 | */
42 | API_AVAILABLE(macos(10.7), ios(4.1), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
43 | @interface AVAssetWriterInput : NSObject
| `- note: class 'AVAssetWriterInput' does not conform to the 'Sendable' protocol
44 | {
45 | @private
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:309:17: warning: capture of 'self' with non-sendable type 'NextLevelSessionExporter' in a '@Sendable' closure
53 |
54 | /// 🔄 NextLevelSessionExporter, export and transcode media in Swift
55 | open class NextLevelSessionExporter: NSObject {
| `- note: class 'NextLevelSessionExporter' does not conform to the 'Sendable' protocol
56 |
57 | /// Input asset for export, provided when initialized.
:
307 | videoSemaphore.wait()
308 | DispatchQueue.main.async {
309 | self.finish()
| `- warning: capture of 'self' with non-sendable type 'NextLevelSessionExporter' in a '@Sendable' closure
310 | }
311 | }
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:317:16: warning: capture of 'self' with non-sendable type 'NextLevelSessionExporter' in a '@Sendable' closure
53 |
54 | /// 🔄 NextLevelSessionExporter, export and transcode media in Swift
55 | open class NextLevelSessionExporter: NSObject {
| `- note: class 'NextLevelSessionExporter' does not conform to the 'Sendable' protocol
56 |
57 | /// Input asset for export, provided when initialized.
:
315 | public func cancelExport() {
316 | self._inputQueue.async {
317 | if self._writer?.status == .writing {
| `- warning: capture of 'self' with non-sendable type 'NextLevelSessionExporter' in a '@Sendable' closure
318 | self._writer?.cancelWriting()
319 | }
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:584:17: warning: capture of 'self' with non-sendable type 'NextLevelSessionExporter' in a '@Sendable' closure
53 |
54 | /// 🔄 NextLevelSessionExporter, export and transcode media in Swift
55 | open class NextLevelSessionExporter: NSObject {
| `- note: class 'NextLevelSessionExporter' does not conform to the 'Sendable' protocol
56 |
57 | /// Input asset for export, provided when initialized.
:
582 | } else {
583 | self._writer?.finishWriting {
584 | self.complete()
| `- warning: capture of 'self' with non-sendable type 'NextLevelSessionExporter' in a '@Sendable' closure
585 | }
586 | }
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:238:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
236 | print("NextLevelSessionExporter, could not setup with the specified video output configuration")
237 | DispatchQueue.main.async {
238 | self._completionHandler?(.failure(NextLevelSessionExporterError.setupFailure))
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
239 | }
240 | }
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:199:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
197 | print("NextLevelSessionExporter, an asset and output URL are required for encoding")
198 | DispatchQueue.main.async {
199 | self._completionHandler?(.failure(NextLevelSessionExporterError.setupFailure))
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
200 | }
201 | return
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:221:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
219 | print("NextLevelSessionExporter, could not setup a reader for the provided asset \(asset)")
220 | DispatchQueue.main.async {
221 | self._completionHandler?(.failure(NextLevelSessionExporterError.setupFailure))
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
222 | }
223 | }
/Users/admin/builder/spi-builder-workspace/Sources/NextLevelSessionExporter.swift:230:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
228 | print("NextLevelSessionExporter, could not setup a reader for the provided asset \(asset)")
229 | DispatchQueue.main.async {
230 | self._completionHandler?(.failure(NextLevelSessionExporterError.setupFailure))
| |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
231 | }
232 | }
Build complete! (7.20s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "NextLevelSessionExporter",
"name" : "NextLevelSessionExporter",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "10.0"
}
],
"products" : [
{
"name" : "NextLevelSessionExporter",
"targets" : [
"SessionExporter"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"swift_languages_versions" : [
"5"
],
"targets" : [
{
"c99name" : "SessionExporter",
"module_type" : "SwiftTarget",
"name" : "SessionExporter",
"path" : "Sources",
"product_memberships" : [
"NextLevelSessionExporter"
],
"sources" : [
"NextLevelSessionExporter.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
Done.