Build Information
Successful build of MediaUtilities, reference 0.0.14 (d7bb76), with Swift 6.1 for macOS (SPM) on 20 Apr 2026 06:59:17 UTC.
Swift 6 data race errors: 14
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 InferSendableFromCapturesBuild Log
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:99:79: warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
97 | self.progress = Double(exporter.progress)
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
| `- warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
100 | self.timer?.invalidate()
101 | if exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:150:25: warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | public final class VideoUtil: ObservableObject {
| `- note: class 'VideoUtil' does not conform to the 'Sendable' protocol
14 | @Published var progress: Double = .zero
15 | @Published var videoImageFrames: [UnifiedImage] = []
:
148 | let image = UnifiedImage(cgImage: img)
149 | DispatchQueue.main.async {
150 | self.videoImageFrames.append(image)
| `- warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/CustomVideoPlayer.swift:99:20: warning: main actor-isolated property 'playerVM' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
61 | @available(macOS 10.15, *)
62 | public struct CustomVideoPlayer: NSViewRepresentable {
63 | @EnvironmentObject private var playerVM: PlayerViewModel
| `- note: property declared here
64 |
65 | public init() { }
:
97 |
98 | private var playerVM: PlayerViewModel {
99 | parent.playerVM
| `- warning: main actor-isolated property 'playerVM' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
100 | }
101 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:79:33: warning: main actor-isolated property 'asset' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
77 | .filter({ $0 == .readyToPlay })
78 | .sink(receiveValue: { [weak self] _ in
79 | let time = item.asset.duration.seconds
| `- warning: main actor-isolated property 'asset' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
80 | self?.duration = time
81 | self?.endPlayingAt = time
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItem.h:218:42: note: property declared here
216 | @abstract Accessor for underlying AVAsset.
217 | */
218 | @property (nonatomic, readonly) AVAsset *asset;
| `- note: property declared here
219 |
220 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:82:30: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
80 | self?.duration = time
81 | self?.endPlayingAt = time
82 | self?.player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
83 | })
84 | .store(in: &subscriptions)
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:93:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
85 | }
86 |
87 | public func seekForward() {
| `- note: add '@MainActor' to make instance method 'seekForward()' part of global actor 'MainActor'
88 | var time = currentTime + 10
89 | if time >= duration {
:
91 | }
92 | player.seek(to: CMTime(seconds: time, preferredTimescale: 1000))
93 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
94 | }
95 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:102:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
94 | }
95 |
96 | public func seekBackward() {
| `- note: add '@MainActor' to make instance method 'seekBackward()' part of global actor 'MainActor'
97 | var time = currentTime - 10
98 | if time <= 0 {
:
100 | }
101 | player.seek(to: CMTime(seconds: time, preferredTimescale: 1000))
102 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
103 | }
104 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:106:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
103 | }
104 |
105 | public func play() {
| `- note: add '@MainActor' to make instance method 'play()' part of global actor 'MainActor'
106 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:110:16: warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | public func pause() {
| `- note: add '@MainActor' to make instance method 'pause()' part of global actor 'MainActor'
110 | player.pause()
| `- warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
111 | }
112 |
AVFoundation.AVPlayer.pause:2:22: note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func pause()}
| `- note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:139:30: warning: capture of 'self' with non-sendable type 'PlayerViewModel?' in a '@Sendable' closure
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | final public class PlayerViewModel: ObservableObject {
| `- note: class 'PlayerViewModel' does not conform to the 'Sendable' protocol
14 | public var player = AVPlayer()
15 | @Published public var allowsPictureInPicturePlayback: Bool = true
:
137 | let interval = CMTime(seconds: isShowingControls ? 1 : 0.25, preferredTimescale: 60)
138 | timeObserver = player.addPeriodicTimeObserver(forInterval: interval, queue: .main) { [weak self] time in
139 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'PlayerViewModel?' in a '@Sendable' closure
140 | self.updateCurrentTime(time)
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:166:20: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
161 | }
162 |
163 | private func endPlayingAtReached() {
| `- note: add '@MainActor' to make instance method 'endPlayingAtReached()' part of global actor 'MainActor'
164 | if loopPlayback {
165 | seekTo(startPlayingAt)
166 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
167 | } else {
168 | player.pause()
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:168:20: warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
161 | }
162 |
163 | private func endPlayingAtReached() {
| `- note: add '@MainActor' to make instance method 'endPlayingAtReached()' part of global actor 'MainActor'
164 | if loopPlayback {
165 | seekTo(startPlayingAt)
166 | player.play()
167 | } else {
168 | player.pause()
| `- warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
169 | }
170 | }
AVFoundation.AVPlayer.pause:2:22: note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func pause()}
| `- note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:131:37: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
129 | func generateImageFrames() {
130 | videoImageFrames = []
131 | Task(priority: .background) {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
132 | guard let asset = asset else {
| `- note: closure captures 'self' which is accessible to code in the current task
133 | return
134 | }
[43/57] Compiling MediaUtilities VideoUtil.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoSliderView.swift:136:21: warning: main actor-isolated property 'isShowingSeekerTime' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
14 |
15 | @State private var maxWidth: CGFloat = 0
16 | @State private var isShowingSeekerTime = false
| `- note: mutation of this property is only permitted within the actor
17 | @State private var timer: Timer?
18 | let seekerHeight: CGFloat = 50
:
134 | timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: false) { _ in
135 | withAnimation {
136 | isShowingSeekerTime = false
| `- warning: main actor-isolated property 'isShowingSeekerTime' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
137 | }
138 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:80:16: warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
78 |
79 | exporter.exportAsynchronously {
80 | if exporter.status == .completed {
| `- warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
81 | DispatchQueue.main.async {
82 | onCompletion(.success(outputVideoURL))
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:82:21: warning: capture of 'onCompletion' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
80 | if exporter.status == .completed {
81 | DispatchQueue.main.async {
82 | onCompletion(.success(outputVideoURL))
| |- warning: capture of 'onCompletion' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:17: warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | public final class VideoUtil: ObservableObject {
| `- note: class 'VideoUtil' does not conform to the 'Sendable' protocol
14 | @Published var progress: Double = .zero
15 | @Published var videoImageFrames: [UnifiedImage] = []
:
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:40: warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:102:21: warning: capture of 'callback' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
100 | self.timer?.invalidate()
101 | if exporter.status == .cancelled {
102 | callback(.failure(.exporterCancelled))
| |- warning: capture of 'callback' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
103 | }
104 | if exporter.status == .failed {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:17: warning: capture of 'self' with non-sendable type 'VideoUtil' in an isolated closure; this is an error in the Swift 6 language mode
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | public final class VideoUtil: ObservableObject {
| `- note: class 'VideoUtil' does not conform to the 'Sendable' protocol
14 | @Published var progress: Double = .zero
15 | @Published var videoImageFrames: [UnifiedImage] = []
:
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'self' with non-sendable type 'VideoUtil' in an isolated closure; this is an error in the Swift 6 language mode
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:40: warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in an isolated closure; this is an error in the Swift 6 language mode
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in an isolated closure; this is an error in the Swift 6 language mode
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:99:49: warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
97 | self.progress = Double(exporter.progress)
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
| `- warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
100 | self.timer?.invalidate()
101 | if exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:99:79: warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
97 | self.progress = Double(exporter.progress)
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
| `- warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
100 | self.timer?.invalidate()
101 | if exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:150:25: warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | public final class VideoUtil: ObservableObject {
| `- note: class 'VideoUtil' does not conform to the 'Sendable' protocol
14 | @Published var progress: Double = .zero
15 | @Published var videoImageFrames: [UnifiedImage] = []
:
148 | let image = UnifiedImage(cgImage: img)
149 | DispatchQueue.main.async {
150 | self.videoImageFrames.append(image)
| `- warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/CustomVideoPlayer.swift:99:20: warning: main actor-isolated property 'playerVM' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
61 | @available(macOS 10.15, *)
62 | public struct CustomVideoPlayer: NSViewRepresentable {
63 | @EnvironmentObject private var playerVM: PlayerViewModel
| `- note: property declared here
64 |
65 | public init() { }
:
97 |
98 | private var playerVM: PlayerViewModel {
99 | parent.playerVM
| `- warning: main actor-isolated property 'playerVM' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
100 | }
101 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:79:33: warning: main actor-isolated property 'asset' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
77 | .filter({ $0 == .readyToPlay })
78 | .sink(receiveValue: { [weak self] _ in
79 | let time = item.asset.duration.seconds
| `- warning: main actor-isolated property 'asset' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
80 | self?.duration = time
81 | self?.endPlayingAt = time
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItem.h:218:42: note: property declared here
216 | @abstract Accessor for underlying AVAsset.
217 | */
218 | @property (nonatomic, readonly) AVAsset *asset;
| `- note: property declared here
219 |
220 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:82:30: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
80 | self?.duration = time
81 | self?.endPlayingAt = time
82 | self?.player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
83 | })
84 | .store(in: &subscriptions)
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:93:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
85 | }
86 |
87 | public func seekForward() {
| `- note: add '@MainActor' to make instance method 'seekForward()' part of global actor 'MainActor'
88 | var time = currentTime + 10
89 | if time >= duration {
:
91 | }
92 | player.seek(to: CMTime(seconds: time, preferredTimescale: 1000))
93 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
94 | }
95 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:102:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
94 | }
95 |
96 | public func seekBackward() {
| `- note: add '@MainActor' to make instance method 'seekBackward()' part of global actor 'MainActor'
97 | var time = currentTime - 10
98 | if time <= 0 {
:
100 | }
101 | player.seek(to: CMTime(seconds: time, preferredTimescale: 1000))
102 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
103 | }
104 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:106:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
103 | }
104 |
105 | public func play() {
| `- note: add '@MainActor' to make instance method 'play()' part of global actor 'MainActor'
106 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:110:16: warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | public func pause() {
| `- note: add '@MainActor' to make instance method 'pause()' part of global actor 'MainActor'
110 | player.pause()
| `- warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
111 | }
112 |
AVFoundation.AVPlayer.pause:2:22: note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func pause()}
| `- note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:139:30: warning: capture of 'self' with non-sendable type 'PlayerViewModel?' in a '@Sendable' closure
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | final public class PlayerViewModel: ObservableObject {
| `- note: class 'PlayerViewModel' does not conform to the 'Sendable' protocol
14 | public var player = AVPlayer()
15 | @Published public var allowsPictureInPicturePlayback: Bool = true
:
137 | let interval = CMTime(seconds: isShowingControls ? 1 : 0.25, preferredTimescale: 60)
138 | timeObserver = player.addPeriodicTimeObserver(forInterval: interval, queue: .main) { [weak self] time in
139 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'PlayerViewModel?' in a '@Sendable' closure
140 | self.updateCurrentTime(time)
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:166:20: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
161 | }
162 |
163 | private func endPlayingAtReached() {
| `- note: add '@MainActor' to make instance method 'endPlayingAtReached()' part of global actor 'MainActor'
164 | if loopPlayback {
165 | seekTo(startPlayingAt)
166 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
167 | } else {
168 | player.pause()
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:168:20: warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
161 | }
162 |
163 | private func endPlayingAtReached() {
| `- note: add '@MainActor' to make instance method 'endPlayingAtReached()' part of global actor 'MainActor'
164 | if loopPlayback {
165 | seekTo(startPlayingAt)
166 | player.play()
167 | } else {
168 | player.pause()
| `- warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
169 | }
170 | }
AVFoundation.AVPlayer.pause:2:22: note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func pause()}
| `- note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:131:37: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
129 | func generateImageFrames() {
130 | videoImageFrames = []
131 | Task(priority: .background) {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
132 | guard let asset = asset else {
| `- note: closure captures 'self' which is accessible to code in the current task
133 | return
134 | }
[44/57] Compiling MediaUtilities CustomVideoPlayer.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoSliderView.swift:136:21: warning: main actor-isolated property 'isShowingSeekerTime' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
14 |
15 | @State private var maxWidth: CGFloat = 0
16 | @State private var isShowingSeekerTime = false
| `- note: mutation of this property is only permitted within the actor
17 | @State private var timer: Timer?
18 | let seekerHeight: CGFloat = 50
:
134 | timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: false) { _ in
135 | withAnimation {
136 | isShowingSeekerTime = false
| `- warning: main actor-isolated property 'isShowingSeekerTime' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
137 | }
138 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:80:16: warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
78 |
79 | exporter.exportAsynchronously {
80 | if exporter.status == .completed {
| `- warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
81 | DispatchQueue.main.async {
82 | onCompletion(.success(outputVideoURL))
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:82:21: warning: capture of 'onCompletion' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
80 | if exporter.status == .completed {
81 | DispatchQueue.main.async {
82 | onCompletion(.success(outputVideoURL))
| |- warning: capture of 'onCompletion' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:17: warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | public final class VideoUtil: ObservableObject {
| `- note: class 'VideoUtil' does not conform to the 'Sendable' protocol
14 | @Published var progress: Double = .zero
15 | @Published var videoImageFrames: [UnifiedImage] = []
:
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:40: warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:102:21: warning: capture of 'callback' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
100 | self.timer?.invalidate()
101 | if exporter.status == .cancelled {
102 | callback(.failure(.exporterCancelled))
| |- warning: capture of 'callback' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
103 | }
104 | if exporter.status == .failed {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:17: warning: capture of 'self' with non-sendable type 'VideoUtil' in an isolated closure; this is an error in the Swift 6 language mode
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | public final class VideoUtil: ObservableObject {
| `- note: class 'VideoUtil' does not conform to the 'Sendable' protocol
14 | @Published var progress: Double = .zero
15 | @Published var videoImageFrames: [UnifiedImage] = []
:
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'self' with non-sendable type 'VideoUtil' in an isolated closure; this is an error in the Swift 6 language mode
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:40: warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in an isolated closure; this is an error in the Swift 6 language mode
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in an isolated closure; this is an error in the Swift 6 language mode
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:99:49: warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
97 | self.progress = Double(exporter.progress)
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
| `- warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
100 | self.timer?.invalidate()
101 | if exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:99:79: warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
97 | self.progress = Double(exporter.progress)
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
| `- warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
100 | self.timer?.invalidate()
101 | if exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:150:25: warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | public final class VideoUtil: ObservableObject {
| `- note: class 'VideoUtil' does not conform to the 'Sendable' protocol
14 | @Published var progress: Double = .zero
15 | @Published var videoImageFrames: [UnifiedImage] = []
:
148 | let image = UnifiedImage(cgImage: img)
149 | DispatchQueue.main.async {
150 | self.videoImageFrames.append(image)
| `- warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/CustomVideoPlayer.swift:99:20: warning: main actor-isolated property 'playerVM' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
61 | @available(macOS 10.15, *)
62 | public struct CustomVideoPlayer: NSViewRepresentable {
63 | @EnvironmentObject private var playerVM: PlayerViewModel
| `- note: property declared here
64 |
65 | public init() { }
:
97 |
98 | private var playerVM: PlayerViewModel {
99 | parent.playerVM
| `- warning: main actor-isolated property 'playerVM' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
100 | }
101 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:79:33: warning: main actor-isolated property 'asset' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
77 | .filter({ $0 == .readyToPlay })
78 | .sink(receiveValue: { [weak self] _ in
79 | let time = item.asset.duration.seconds
| `- warning: main actor-isolated property 'asset' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
80 | self?.duration = time
81 | self?.endPlayingAt = time
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItem.h:218:42: note: property declared here
216 | @abstract Accessor for underlying AVAsset.
217 | */
218 | @property (nonatomic, readonly) AVAsset *asset;
| `- note: property declared here
219 |
220 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:82:30: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
80 | self?.duration = time
81 | self?.endPlayingAt = time
82 | self?.player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
83 | })
84 | .store(in: &subscriptions)
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:93:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
85 | }
86 |
87 | public func seekForward() {
| `- note: add '@MainActor' to make instance method 'seekForward()' part of global actor 'MainActor'
88 | var time = currentTime + 10
89 | if time >= duration {
:
91 | }
92 | player.seek(to: CMTime(seconds: time, preferredTimescale: 1000))
93 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
94 | }
95 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:102:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
94 | }
95 |
96 | public func seekBackward() {
| `- note: add '@MainActor' to make instance method 'seekBackward()' part of global actor 'MainActor'
97 | var time = currentTime - 10
98 | if time <= 0 {
:
100 | }
101 | player.seek(to: CMTime(seconds: time, preferredTimescale: 1000))
102 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
103 | }
104 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:106:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
103 | }
104 |
105 | public func play() {
| `- note: add '@MainActor' to make instance method 'play()' part of global actor 'MainActor'
106 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:110:16: warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | public func pause() {
| `- note: add '@MainActor' to make instance method 'pause()' part of global actor 'MainActor'
110 | player.pause()
| `- warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
111 | }
112 |
AVFoundation.AVPlayer.pause:2:22: note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func pause()}
| `- note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:139:30: warning: capture of 'self' with non-sendable type 'PlayerViewModel?' in a '@Sendable' closure
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | final public class PlayerViewModel: ObservableObject {
| `- note: class 'PlayerViewModel' does not conform to the 'Sendable' protocol
14 | public var player = AVPlayer()
15 | @Published public var allowsPictureInPicturePlayback: Bool = true
:
137 | let interval = CMTime(seconds: isShowingControls ? 1 : 0.25, preferredTimescale: 60)
138 | timeObserver = player.addPeriodicTimeObserver(forInterval: interval, queue: .main) { [weak self] time in
139 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'PlayerViewModel?' in a '@Sendable' closure
140 | self.updateCurrentTime(time)
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:166:20: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
161 | }
162 |
163 | private func endPlayingAtReached() {
| `- note: add '@MainActor' to make instance method 'endPlayingAtReached()' part of global actor 'MainActor'
164 | if loopPlayback {
165 | seekTo(startPlayingAt)
166 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
167 | } else {
168 | player.pause()
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:168:20: warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
161 | }
162 |
163 | private func endPlayingAtReached() {
| `- note: add '@MainActor' to make instance method 'endPlayingAtReached()' part of global actor 'MainActor'
164 | if loopPlayback {
165 | seekTo(startPlayingAt)
166 | player.play()
167 | } else {
168 | player.pause()
| `- warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
169 | }
170 | }
AVFoundation.AVPlayer.pause:2:22: note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func pause()}
| `- note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:131:37: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
129 | func generateImageFrames() {
130 | videoImageFrames = []
131 | Task(priority: .background) {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
132 | guard let asset = asset else {
| `- note: closure captures 'self' which is accessible to code in the current task
133 | return
134 | }
[45/57] Compiling MediaUtilities PlayerViewModel.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoSliderView.swift:136:21: warning: main actor-isolated property 'isShowingSeekerTime' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
14 |
15 | @State private var maxWidth: CGFloat = 0
16 | @State private var isShowingSeekerTime = false
| `- note: mutation of this property is only permitted within the actor
17 | @State private var timer: Timer?
18 | let seekerHeight: CGFloat = 50
:
134 | timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: false) { _ in
135 | withAnimation {
136 | isShowingSeekerTime = false
| `- warning: main actor-isolated property 'isShowingSeekerTime' can not be mutated from a nonisolated context; this is an error in the Swift 6 language mode
137 | }
138 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:80:16: warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
78 |
79 | exporter.exportAsynchronously {
80 | if exporter.status == .completed {
| `- warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
81 | DispatchQueue.main.async {
82 | onCompletion(.success(outputVideoURL))
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:82:21: warning: capture of 'onCompletion' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
80 | if exporter.status == .completed {
81 | DispatchQueue.main.async {
82 | onCompletion(.success(outputVideoURL))
| |- warning: capture of 'onCompletion' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:17: warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | public final class VideoUtil: ObservableObject {
| `- note: class 'VideoUtil' does not conform to the 'Sendable' protocol
14 | @Published var progress: Double = .zero
15 | @Published var videoImageFrames: [UnifiedImage] = []
:
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:40: warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in a '@Sendable' closure
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:102:21: warning: capture of 'callback' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
100 | self.timer?.invalidate()
101 | if exporter.status == .cancelled {
102 | callback(.failure(.exporterCancelled))
| |- warning: capture of 'callback' with non-sendable type '(Result<URL, VideoUtil.VideoUtilError>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
103 | }
104 | if exporter.status == .failed {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:17: warning: capture of 'self' with non-sendable type 'VideoUtil' in an isolated closure; this is an error in the Swift 6 language mode
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | public final class VideoUtil: ObservableObject {
| `- note: class 'VideoUtil' does not conform to the 'Sendable' protocol
14 | @Published var progress: Double = .zero
15 | @Published var videoImageFrames: [UnifiedImage] = []
:
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'self' with non-sendable type 'VideoUtil' in an isolated closure; this is an error in the Swift 6 language mode
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:97:40: warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in an isolated closure; this is an error in the Swift 6 language mode
95 | timer = Timer.scheduledTimer(withTimeInterval: 0.25, repeats: true) { _ in
96 | withAnimation {
97 | self.progress = Double(exporter.progress)
| `- warning: capture of 'exporter' with non-sendable type 'AVAssetExportSession' in an isolated closure; this is an error in the Swift 6 language mode
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:99:49: warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
97 | self.progress = Double(exporter.progress)
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
| `- warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
100 | self.timer?.invalidate()
101 | if exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:99:79: warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
97 | self.progress = Double(exporter.progress)
98 | }
99 | if exporter.status == .completed || exporter.status == .failed || exporter.status == .cancelled {
| `- warning: implicit capture of 'exporter' requires that 'AVAssetExportSession' conforms to 'Sendable'; this is an error in the Swift 6 language mode
100 | self.timer?.invalidate()
101 | if exporter.status == .cancelled {
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVAssetExportSession.h:156:12: note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
154 | NS_SWIFT_NONSENDABLE
155 | API_AVAILABLE(macos(10.7), ios(4.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos)
156 | @interface AVAssetExportSession : NSObject
| `- note: class 'AVAssetExportSession' does not conform to the 'Sendable' protocol
157 | {
158 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:150:25: warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | public final class VideoUtil: ObservableObject {
| `- note: class 'VideoUtil' does not conform to the 'Sendable' protocol
14 | @Published var progress: Double = .zero
15 | @Published var videoImageFrames: [UnifiedImage] = []
:
148 | let image = UnifiedImage(cgImage: img)
149 | DispatchQueue.main.async {
150 | self.videoImageFrames.append(image)
| `- warning: capture of 'self' with non-sendable type 'VideoUtil' in a '@Sendable' closure
151 | }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/CustomVideoPlayer.swift:99:20: warning: main actor-isolated property 'playerVM' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
61 | @available(macOS 10.15, *)
62 | public struct CustomVideoPlayer: NSViewRepresentable {
63 | @EnvironmentObject private var playerVM: PlayerViewModel
| `- note: property declared here
64 |
65 | public init() { }
:
97 |
98 | private var playerVM: PlayerViewModel {
99 | parent.playerVM
| `- warning: main actor-isolated property 'playerVM' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
100 | }
101 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:79:33: warning: main actor-isolated property 'asset' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
77 | .filter({ $0 == .readyToPlay })
78 | .sink(receiveValue: { [weak self] _ in
79 | let time = item.asset.duration.seconds
| `- warning: main actor-isolated property 'asset' can not be referenced from a nonisolated context; this is an error in the Swift 6 language mode
80 | self?.duration = time
81 | self?.endPlayingAt = time
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItem.h:218:42: note: property declared here
216 | @abstract Accessor for underlying AVAsset.
217 | */
218 | @property (nonatomic, readonly) AVAsset *asset;
| `- note: property declared here
219 |
220 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:82:30: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
80 | self?.duration = time
81 | self?.endPlayingAt = time
82 | self?.player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
83 | })
84 | .store(in: &subscriptions)
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:93:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
85 | }
86 |
87 | public func seekForward() {
| `- note: add '@MainActor' to make instance method 'seekForward()' part of global actor 'MainActor'
88 | var time = currentTime + 10
89 | if time >= duration {
:
91 | }
92 | player.seek(to: CMTime(seconds: time, preferredTimescale: 1000))
93 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
94 | }
95 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:102:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
94 | }
95 |
96 | public func seekBackward() {
| `- note: add '@MainActor' to make instance method 'seekBackward()' part of global actor 'MainActor'
97 | var time = currentTime - 10
98 | if time <= 0 {
:
100 | }
101 | player.seek(to: CMTime(seconds: time, preferredTimescale: 1000))
102 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
103 | }
104 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:106:16: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
103 | }
104 |
105 | public func play() {
| `- note: add '@MainActor' to make instance method 'play()' part of global actor 'MainActor'
106 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:110:16: warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
107 | }
108 |
109 | public func pause() {
| `- note: add '@MainActor' to make instance method 'pause()' part of global actor 'MainActor'
110 | player.pause()
| `- warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
111 | }
112 |
AVFoundation.AVPlayer.pause:2:22: note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func pause()}
| `- note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:139:30: warning: capture of 'self' with non-sendable type 'PlayerViewModel?' in a '@Sendable' closure
11 |
12 | @available(iOS 13.0, macOS 10.15, *)
13 | final public class PlayerViewModel: ObservableObject {
| `- note: class 'PlayerViewModel' does not conform to the 'Sendable' protocol
14 | public var player = AVPlayer()
15 | @Published public var allowsPictureInPicturePlayback: Bool = true
:
137 | let interval = CMTime(seconds: isShowingControls ? 1 : 0.25, preferredTimescale: 60)
138 | timeObserver = player.addPeriodicTimeObserver(forInterval: interval, queue: .main) { [weak self] time in
139 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'PlayerViewModel?' in a '@Sendable' closure
140 | self.updateCurrentTime(time)
141 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:166:20: warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
161 | }
162 |
163 | private func endPlayingAtReached() {
| `- note: add '@MainActor' to make instance method 'endPlayingAtReached()' part of global actor 'MainActor'
164 | if loopPlayback {
165 | seekTo(startPlayingAt)
166 | player.play()
| `- warning: call to main actor-isolated instance method 'play()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
167 | } else {
168 | player.pause()
AVFoundation.AVPlayer.play:2:22: note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func play()}
| `- note: calls to instance method 'play()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoPlayer/PlayerViewModel.swift:168:20: warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
161 | }
162 |
163 | private func endPlayingAtReached() {
| `- note: add '@MainActor' to make instance method 'endPlayingAtReached()' part of global actor 'MainActor'
164 | if loopPlayback {
165 | seekTo(startPlayingAt)
166 | player.play()
167 | } else {
168 | player.pause()
| `- warning: call to main actor-isolated instance method 'pause()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
169 | }
170 | }
AVFoundation.AVPlayer.pause:2:22: note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
1 | class AVPlayer {
2 | @MainActor open func pause()}
| `- note: calls to instance method 'pause()' from outside of its actor context are implicitly asynchronous
3 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/VideoEditor/VideoUtil.swift:131:37: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
129 | func generateImageFrames() {
130 | videoImageFrames = []
131 | Task(priority: .background) {
| `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
132 | guard let asset = asset else {
| `- note: closure captures 'self' which is accessible to code in the current task
133 | return
134 | }
[46/57] Compiling MediaUtilities CameraCaptureView.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:123:6: warning: '@concurrent' has been renamed to '@Sendable'
121 | /// - Returns: URL to the captured photo file, or `nil` if capture failed.
122 | /// - Note: For user-friendly error handling, use `capturePhotoWithCompletion()` instead.
123 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
124 | public func capturePhoto() async -> URL? {
125 | guard let photoOutput = self.photoOutput else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Helpers.swift:16:6: warning: '@concurrent' has been renamed to '@Sendable'
14 | // MARK: - Private Helper Methods
15 |
16 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
17 | func handleCameraPreviews() async {
18 | let imageStream = previewStream.map { $0.image }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:435:13: warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 |
434 | // Associated object keys
435 | private var photoCaptureContinuationKey: UInt8 = 0
| |- warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'photoCaptureContinuationKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'photoCaptureContinuationKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:133:20: warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
131 | var photoSettings = AVCapturePhotoSettings()
132 |
133 | if photoOutput.availablePhotoCodecTypes.contains(.hevc) {
| `- warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
134 | photoSettings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])
135 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:50:12: note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
48 | */
49 | API_AVAILABLE(macos(10.15), ios(10.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos)
50 | @interface AVCapturePhotoOutput : AVCaptureOutput
| `- note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
51 | {
52 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 |
[47/57] Compiling MediaUtilities CameraCaptureViewModifier.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:123:6: warning: '@concurrent' has been renamed to '@Sendable'
121 | /// - Returns: URL to the captured photo file, or `nil` if capture failed.
122 | /// - Note: For user-friendly error handling, use `capturePhotoWithCompletion()` instead.
123 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
124 | public func capturePhoto() async -> URL? {
125 | guard let photoOutput = self.photoOutput else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Helpers.swift:16:6: warning: '@concurrent' has been renamed to '@Sendable'
14 | // MARK: - Private Helper Methods
15 |
16 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
17 | func handleCameraPreviews() async {
18 | let imageStream = previewStream.map { $0.image }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:435:13: warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 |
434 | // Associated object keys
435 | private var photoCaptureContinuationKey: UInt8 = 0
| |- warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'photoCaptureContinuationKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'photoCaptureContinuationKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:133:20: warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
131 | var photoSettings = AVCapturePhotoSettings()
132 |
133 | if photoOutput.availablePhotoCodecTypes.contains(.hevc) {
| `- warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
134 | photoSettings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])
135 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:50:12: note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
48 | */
49 | API_AVAILABLE(macos(10.15), ios(10.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos)
50 | @interface AVCapturePhotoOutput : AVCaptureOutput
| `- note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
51 | {
52 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 |
[48/57] Compiling MediaUtilities CameraService+Capture.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:123:6: warning: '@concurrent' has been renamed to '@Sendable'
121 | /// - Returns: URL to the captured photo file, or `nil` if capture failed.
122 | /// - Note: For user-friendly error handling, use `capturePhotoWithCompletion()` instead.
123 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
124 | public func capturePhoto() async -> URL? {
125 | guard let photoOutput = self.photoOutput else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Helpers.swift:16:6: warning: '@concurrent' has been renamed to '@Sendable'
14 | // MARK: - Private Helper Methods
15 |
16 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
17 | func handleCameraPreviews() async {
18 | let imageStream = previewStream.map { $0.image }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:435:13: warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 |
434 | // Associated object keys
435 | private var photoCaptureContinuationKey: UInt8 = 0
| |- warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'photoCaptureContinuationKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'photoCaptureContinuationKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:133:20: warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
131 | var photoSettings = AVCapturePhotoSettings()
132 |
133 | if photoOutput.availablePhotoCodecTypes.contains(.hevc) {
| `- warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
134 | photoSettings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])
135 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:50:12: note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
48 | */
49 | API_AVAILABLE(macos(10.15), ios(10.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos)
50 | @interface AVCapturePhotoOutput : AVCaptureOutput
| `- note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
51 | {
52 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 |
[49/57] Compiling MediaUtilities CameraService+Delegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:123:6: warning: '@concurrent' has been renamed to '@Sendable'
121 | /// - Returns: URL to the captured photo file, or `nil` if capture failed.
122 | /// - Note: For user-friendly error handling, use `capturePhotoWithCompletion()` instead.
123 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
124 | public func capturePhoto() async -> URL? {
125 | guard let photoOutput = self.photoOutput else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Helpers.swift:16:6: warning: '@concurrent' has been renamed to '@Sendable'
14 | // MARK: - Private Helper Methods
15 |
16 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
17 | func handleCameraPreviews() async {
18 | let imageStream = previewStream.map { $0.image }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:435:13: warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 |
434 | // Associated object keys
435 | private var photoCaptureContinuationKey: UInt8 = 0
| |- warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'photoCaptureContinuationKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'photoCaptureContinuationKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:133:20: warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
131 | var photoSettings = AVCapturePhotoSettings()
132 |
133 | if photoOutput.availablePhotoCodecTypes.contains(.hevc) {
| `- warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
134 | photoSettings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])
135 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:50:12: note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
48 | */
49 | API_AVAILABLE(macos(10.15), ios(10.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos)
50 | @interface AVCapturePhotoOutput : AVCaptureOutput
| `- note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
51 | {
52 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 |
[50/57] Compiling MediaUtilities CameraService+Helpers.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:123:6: warning: '@concurrent' has been renamed to '@Sendable'
121 | /// - Returns: URL to the captured photo file, or `nil` if capture failed.
122 | /// - Note: For user-friendly error handling, use `capturePhotoWithCompletion()` instead.
123 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
124 | public func capturePhoto() async -> URL? {
125 | guard let photoOutput = self.photoOutput else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Helpers.swift:16:6: warning: '@concurrent' has been renamed to '@Sendable'
14 | // MARK: - Private Helper Methods
15 |
16 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
17 | func handleCameraPreviews() async {
18 | let imageStream = previewStream.map { $0.image }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:435:13: warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 |
434 | // Associated object keys
435 | private var photoCaptureContinuationKey: UInt8 = 0
| |- warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'photoCaptureContinuationKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'photoCaptureContinuationKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:133:20: warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
131 | var photoSettings = AVCapturePhotoSettings()
132 |
133 | if photoOutput.availablePhotoCodecTypes.contains(.hevc) {
| `- warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
134 | photoSettings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])
135 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:50:12: note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
48 | */
49 | API_AVAILABLE(macos(10.15), ios(10.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos)
50 | @interface AVCapturePhotoOutput : AVCaptureOutput
| `- note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
51 | {
52 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 |
[51/57] Compiling MediaUtilities CameraService+Intents.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:123:6: warning: '@concurrent' has been renamed to '@Sendable'
121 | /// - Returns: URL to the captured photo file, or `nil` if capture failed.
122 | /// - Note: For user-friendly error handling, use `capturePhotoWithCompletion()` instead.
123 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
124 | public func capturePhoto() async -> URL? {
125 | guard let photoOutput = self.photoOutput else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Helpers.swift:16:6: warning: '@concurrent' has been renamed to '@Sendable'
14 | // MARK: - Private Helper Methods
15 |
16 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
17 | func handleCameraPreviews() async {
18 | let imageStream = previewStream.map { $0.image }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:435:13: warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
433 |
434 | // Associated object keys
435 | private var photoCaptureContinuationKey: UInt8 = 0
| |- warning: var 'photoCaptureContinuationKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'photoCaptureContinuationKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'photoCaptureContinuationKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:133:20: warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
131 | var photoSettings = AVCapturePhotoSettings()
132 |
133 | if photoOutput.availablePhotoCodecTypes.contains(.hevc) {
| `- warning: capture of 'photoOutput' with non-sendable type 'AVCapturePhotoOutput' in a '@Sendable' closure
134 | photoSettings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])
135 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:50:12: note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
48 | */
49 | API_AVAILABLE(macos(10.15), ios(10.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(watchos)
50 | @interface AVCapturePhotoOutput : AVCaptureOutput
| `- note: class 'AVCapturePhotoOutput' does not conform to the 'Sendable' protocol
51 | {
52 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Capture.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 |
[52/57] Compiling MediaUtilities CameraService+Permissions.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:214:52: warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
212 | guard let captureDevice = captureDevice else { return }
213 | sessionQueue.async {
214 | self.updateSessionForCaptureDevice(captureDevice)
| `- warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
215 | }
216 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:73:12: note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
71 | */
72 | API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos)
73 | @interface AVCaptureDevice : NSObject
| `- note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
74 | {
75 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 | import SwiftUI
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:67:20: warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
65 | // MARK: - Core Properties
66 |
67 | @Published var previewImage: Image?
| `- warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
68 | let captureSession = AVCaptureSession()
69 | var isCaptureSessionConfigured = false
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:56:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
54 | }
55 | if utType.conforms(to: .image) || utType.conforms(to: .url) || utType.conforms(to: .fileURL) {
56 | dropService.setIsAllowed(to: true)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
57 | } else {
58 | dropService.setIsAllowed(to: false)
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:58:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
56 | dropService.setIsAllowed(to: true)
57 | } else {
58 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
59 | }
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:69:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
67 | }
68 | guard let image = UnifiedImage(data: data) else {
69 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
70 | return
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:72:17: warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: mutation of this property is only permitted within the actor
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
70 | return
71 | }
72 | dropService.temporaryImage = image
| `- warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
73 | completeDropFromTempImageHack(image)
74 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:73:17: warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
71 | }
72 | dropService.temporaryImage = image
73 | completeDropFromTempImageHack(image)
| `- warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
74 | }
75 | } else {
:
141 | }
142 |
143 | func completeDropFromTempImageHack(_ image: UnifiedImage) {
| |- note: calls to instance method 'completeDropFromTempImageHack' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'DropDelegate'
144 | guard dropService.isGuarded == false else {
145 | return
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:109:61: warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
107 | #endif
108 | #if os(macOS)
109 | let nsSecureCoding = try await itemProvider.loadItem(forTypeIdentifier: UTType.url.identifier, options: nil)
| `- warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
110 | if let urlData = nsSecureCoding as? Data {
111 | let url = NSURL(absoluteURLWithDataRepresentation: urlData, relativeTo: nil) as URL
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:36:11: note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
34 | // NOTE: NSSecureCoding guarantees only that an archive contains the classes it claims. It makes no guarantees about the suitability for consumption by the receiver of the decoded content of the archive. Archived objects which may trigger code evaluation should be validated independently by the consumer of the objects to verify that no malicious code is executed (i.e. by checking key paths, selectors etc. specified in the archive).
35 |
36 | @protocol NSSecureCoding <NSCoding>
| `- note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
37 | @required
38 | // This property must return YES on all classes that allow secure coding. Subclasses of classes that adopt NSSecureCoding and override initWithCoder: must also override this method and return YES.
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
6 | //
7 |
8 | import SwiftUI
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
9 | import UniformTypeIdentifiers
10 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:331:30: warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
329 | AsyncStream { continuation in
330 | addToPhotoStream = { photo in
331 | continuation.yield(photo)
| |- warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'photo' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
332 | }
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:382:34: warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
380 | addToPreviewStream = { ciImage in
381 | if !self.isPreviewPaused {
382 | continuation.yield(ciImage)
| |- warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'ciImage' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
383 | }
384 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:43:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
41 | func setIsAllowed(to bool: Bool) {
42 | DispatchQueue.main.async {
43 | self.isAllowed = bool
| |- 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
44 | self.processAttempts()
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:50:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
48 | func setIsCopying(to bool: Bool) {
49 | DispatchQueue.main.async {
50 | self.isCopyingFile = bool
| |- 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
51 | }
52 | }
[53/57] Compiling MediaUtilities CameraService.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:214:52: warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
212 | guard let captureDevice = captureDevice else { return }
213 | sessionQueue.async {
214 | self.updateSessionForCaptureDevice(captureDevice)
| `- warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
215 | }
216 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:73:12: note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
71 | */
72 | API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos)
73 | @interface AVCaptureDevice : NSObject
| `- note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
74 | {
75 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 | import SwiftUI
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:67:20: warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
65 | // MARK: - Core Properties
66 |
67 | @Published var previewImage: Image?
| `- warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
68 | let captureSession = AVCaptureSession()
69 | var isCaptureSessionConfigured = false
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:56:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
54 | }
55 | if utType.conforms(to: .image) || utType.conforms(to: .url) || utType.conforms(to: .fileURL) {
56 | dropService.setIsAllowed(to: true)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
57 | } else {
58 | dropService.setIsAllowed(to: false)
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:58:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
56 | dropService.setIsAllowed(to: true)
57 | } else {
58 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
59 | }
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:69:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
67 | }
68 | guard let image = UnifiedImage(data: data) else {
69 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
70 | return
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:72:17: warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: mutation of this property is only permitted within the actor
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
70 | return
71 | }
72 | dropService.temporaryImage = image
| `- warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
73 | completeDropFromTempImageHack(image)
74 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:73:17: warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
71 | }
72 | dropService.temporaryImage = image
73 | completeDropFromTempImageHack(image)
| `- warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
74 | }
75 | } else {
:
141 | }
142 |
143 | func completeDropFromTempImageHack(_ image: UnifiedImage) {
| |- note: calls to instance method 'completeDropFromTempImageHack' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'DropDelegate'
144 | guard dropService.isGuarded == false else {
145 | return
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:109:61: warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
107 | #endif
108 | #if os(macOS)
109 | let nsSecureCoding = try await itemProvider.loadItem(forTypeIdentifier: UTType.url.identifier, options: nil)
| `- warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
110 | if let urlData = nsSecureCoding as? Data {
111 | let url = NSURL(absoluteURLWithDataRepresentation: urlData, relativeTo: nil) as URL
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:36:11: note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
34 | // NOTE: NSSecureCoding guarantees only that an archive contains the classes it claims. It makes no guarantees about the suitability for consumption by the receiver of the decoded content of the archive. Archived objects which may trigger code evaluation should be validated independently by the consumer of the objects to verify that no malicious code is executed (i.e. by checking key paths, selectors etc. specified in the archive).
35 |
36 | @protocol NSSecureCoding <NSCoding>
| `- note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
37 | @required
38 | // This property must return YES on all classes that allow secure coding. Subclasses of classes that adopt NSSecureCoding and override initWithCoder: must also override this method and return YES.
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
6 | //
7 |
8 | import SwiftUI
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
9 | import UniformTypeIdentifiers
10 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:331:30: warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
329 | AsyncStream { continuation in
330 | addToPhotoStream = { photo in
331 | continuation.yield(photo)
| |- warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'photo' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
332 | }
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:382:34: warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
380 | addToPreviewStream = { ciImage in
381 | if !self.isPreviewPaused {
382 | continuation.yield(ciImage)
| |- warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'ciImage' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
383 | }
384 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:43:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
41 | func setIsAllowed(to bool: Bool) {
42 | DispatchQueue.main.async {
43 | self.isAllowed = bool
| |- 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
44 | self.processAttempts()
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:50:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
48 | func setIsCopying(to bool: Bool) {
49 | DispatchQueue.main.async {
50 | self.isCopyingFile = bool
| |- 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
51 | }
52 | }
[54/57] Compiling MediaUtilities CaptureMode.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:214:52: warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
212 | guard let captureDevice = captureDevice else { return }
213 | sessionQueue.async {
214 | self.updateSessionForCaptureDevice(captureDevice)
| `- warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
215 | }
216 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:73:12: note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
71 | */
72 | API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos)
73 | @interface AVCaptureDevice : NSObject
| `- note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
74 | {
75 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 | import SwiftUI
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:67:20: warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
65 | // MARK: - Core Properties
66 |
67 | @Published var previewImage: Image?
| `- warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
68 | let captureSession = AVCaptureSession()
69 | var isCaptureSessionConfigured = false
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:56:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
54 | }
55 | if utType.conforms(to: .image) || utType.conforms(to: .url) || utType.conforms(to: .fileURL) {
56 | dropService.setIsAllowed(to: true)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
57 | } else {
58 | dropService.setIsAllowed(to: false)
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:58:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
56 | dropService.setIsAllowed(to: true)
57 | } else {
58 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
59 | }
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:69:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
67 | }
68 | guard let image = UnifiedImage(data: data) else {
69 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
70 | return
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:72:17: warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: mutation of this property is only permitted within the actor
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
70 | return
71 | }
72 | dropService.temporaryImage = image
| `- warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
73 | completeDropFromTempImageHack(image)
74 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:73:17: warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
71 | }
72 | dropService.temporaryImage = image
73 | completeDropFromTempImageHack(image)
| `- warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
74 | }
75 | } else {
:
141 | }
142 |
143 | func completeDropFromTempImageHack(_ image: UnifiedImage) {
| |- note: calls to instance method 'completeDropFromTempImageHack' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'DropDelegate'
144 | guard dropService.isGuarded == false else {
145 | return
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:109:61: warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
107 | #endif
108 | #if os(macOS)
109 | let nsSecureCoding = try await itemProvider.loadItem(forTypeIdentifier: UTType.url.identifier, options: nil)
| `- warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
110 | if let urlData = nsSecureCoding as? Data {
111 | let url = NSURL(absoluteURLWithDataRepresentation: urlData, relativeTo: nil) as URL
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:36:11: note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
34 | // NOTE: NSSecureCoding guarantees only that an archive contains the classes it claims. It makes no guarantees about the suitability for consumption by the receiver of the decoded content of the archive. Archived objects which may trigger code evaluation should be validated independently by the consumer of the objects to verify that no malicious code is executed (i.e. by checking key paths, selectors etc. specified in the archive).
35 |
36 | @protocol NSSecureCoding <NSCoding>
| `- note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
37 | @required
38 | // This property must return YES on all classes that allow secure coding. Subclasses of classes that adopt NSSecureCoding and override initWithCoder: must also override this method and return YES.
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
6 | //
7 |
8 | import SwiftUI
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
9 | import UniformTypeIdentifiers
10 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:331:30: warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
329 | AsyncStream { continuation in
330 | addToPhotoStream = { photo in
331 | continuation.yield(photo)
| |- warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'photo' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
332 | }
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:382:34: warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
380 | addToPreviewStream = { ciImage in
381 | if !self.isPreviewPaused {
382 | continuation.yield(ciImage)
| |- warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'ciImage' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
383 | }
384 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:43:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
41 | func setIsAllowed(to bool: Bool) {
42 | DispatchQueue.main.async {
43 | self.isAllowed = bool
| |- 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
44 | self.processAttempts()
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:50:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
48 | func setIsCopying(to bool: Bool) {
49 | DispatchQueue.main.async {
50 | self.isCopyingFile = bool
| |- 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
51 | }
52 | }
[55/57] Compiling MediaUtilities RecordingTimeView.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:214:52: warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
212 | guard let captureDevice = captureDevice else { return }
213 | sessionQueue.async {
214 | self.updateSessionForCaptureDevice(captureDevice)
| `- warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
215 | }
216 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:73:12: note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
71 | */
72 | API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos)
73 | @interface AVCaptureDevice : NSObject
| `- note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
74 | {
75 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 | import SwiftUI
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:67:20: warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
65 | // MARK: - Core Properties
66 |
67 | @Published var previewImage: Image?
| `- warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
68 | let captureSession = AVCaptureSession()
69 | var isCaptureSessionConfigured = false
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:56:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
54 | }
55 | if utType.conforms(to: .image) || utType.conforms(to: .url) || utType.conforms(to: .fileURL) {
56 | dropService.setIsAllowed(to: true)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
57 | } else {
58 | dropService.setIsAllowed(to: false)
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:58:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
56 | dropService.setIsAllowed(to: true)
57 | } else {
58 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
59 | }
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:69:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
67 | }
68 | guard let image = UnifiedImage(data: data) else {
69 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
70 | return
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:72:17: warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: mutation of this property is only permitted within the actor
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
70 | return
71 | }
72 | dropService.temporaryImage = image
| `- warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
73 | completeDropFromTempImageHack(image)
74 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:73:17: warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
71 | }
72 | dropService.temporaryImage = image
73 | completeDropFromTempImageHack(image)
| `- warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
74 | }
75 | } else {
:
141 | }
142 |
143 | func completeDropFromTempImageHack(_ image: UnifiedImage) {
| |- note: calls to instance method 'completeDropFromTempImageHack' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'DropDelegate'
144 | guard dropService.isGuarded == false else {
145 | return
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:109:61: warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
107 | #endif
108 | #if os(macOS)
109 | let nsSecureCoding = try await itemProvider.loadItem(forTypeIdentifier: UTType.url.identifier, options: nil)
| `- warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
110 | if let urlData = nsSecureCoding as? Data {
111 | let url = NSURL(absoluteURLWithDataRepresentation: urlData, relativeTo: nil) as URL
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:36:11: note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
34 | // NOTE: NSSecureCoding guarantees only that an archive contains the classes it claims. It makes no guarantees about the suitability for consumption by the receiver of the decoded content of the archive. Archived objects which may trigger code evaluation should be validated independently by the consumer of the objects to verify that no malicious code is executed (i.e. by checking key paths, selectors etc. specified in the archive).
35 |
36 | @protocol NSSecureCoding <NSCoding>
| `- note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
37 | @required
38 | // This property must return YES on all classes that allow secure coding. Subclasses of classes that adopt NSSecureCoding and override initWithCoder: must also override this method and return YES.
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
6 | //
7 |
8 | import SwiftUI
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
9 | import UniformTypeIdentifiers
10 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:331:30: warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
329 | AsyncStream { continuation in
330 | addToPhotoStream = { photo in
331 | continuation.yield(photo)
| |- warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'photo' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
332 | }
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:382:34: warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
380 | addToPreviewStream = { ciImage in
381 | if !self.isPreviewPaused {
382 | continuation.yield(ciImage)
| |- warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'ciImage' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
383 | }
384 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:43:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
41 | func setIsAllowed(to bool: Bool) {
42 | DispatchQueue.main.async {
43 | self.isAllowed = bool
| |- 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
44 | self.processAttempts()
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:50:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
48 | func setIsCopying(to bool: Bool) {
49 | DispatchQueue.main.async {
50 | self.isCopyingFile = bool
| |- 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
51 | }
52 | }
[56/57] Compiling MediaUtilities DropDelegateService.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:214:52: warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
212 | guard let captureDevice = captureDevice else { return }
213 | sessionQueue.async {
214 | self.updateSessionForCaptureDevice(captureDevice)
| `- warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
215 | }
216 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:73:12: note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
71 | */
72 | API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos)
73 | @interface AVCaptureDevice : NSObject
| `- note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
74 | {
75 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 | import SwiftUI
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:67:20: warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
65 | // MARK: - Core Properties
66 |
67 | @Published var previewImage: Image?
| `- warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
68 | let captureSession = AVCaptureSession()
69 | var isCaptureSessionConfigured = false
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:56:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
54 | }
55 | if utType.conforms(to: .image) || utType.conforms(to: .url) || utType.conforms(to: .fileURL) {
56 | dropService.setIsAllowed(to: true)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
57 | } else {
58 | dropService.setIsAllowed(to: false)
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:58:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
56 | dropService.setIsAllowed(to: true)
57 | } else {
58 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
59 | }
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:69:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
67 | }
68 | guard let image = UnifiedImage(data: data) else {
69 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
70 | return
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:72:17: warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: mutation of this property is only permitted within the actor
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
70 | return
71 | }
72 | dropService.temporaryImage = image
| `- warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
73 | completeDropFromTempImageHack(image)
74 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:73:17: warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
71 | }
72 | dropService.temporaryImage = image
73 | completeDropFromTempImageHack(image)
| `- warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
74 | }
75 | } else {
:
141 | }
142 |
143 | func completeDropFromTempImageHack(_ image: UnifiedImage) {
| |- note: calls to instance method 'completeDropFromTempImageHack' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'DropDelegate'
144 | guard dropService.isGuarded == false else {
145 | return
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:109:61: warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
107 | #endif
108 | #if os(macOS)
109 | let nsSecureCoding = try await itemProvider.loadItem(forTypeIdentifier: UTType.url.identifier, options: nil)
| `- warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
110 | if let urlData = nsSecureCoding as? Data {
111 | let url = NSURL(absoluteURLWithDataRepresentation: urlData, relativeTo: nil) as URL
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:36:11: note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
34 | // NOTE: NSSecureCoding guarantees only that an archive contains the classes it claims. It makes no guarantees about the suitability for consumption by the receiver of the decoded content of the archive. Archived objects which may trigger code evaluation should be validated independently by the consumer of the objects to verify that no malicious code is executed (i.e. by checking key paths, selectors etc. specified in the archive).
35 |
36 | @protocol NSSecureCoding <NSCoding>
| `- note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
37 | @required
38 | // This property must return YES on all classes that allow secure coding. Subclasses of classes that adopt NSSecureCoding and override initWithCoder: must also override this method and return YES.
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
6 | //
7 |
8 | import SwiftUI
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
9 | import UniformTypeIdentifiers
10 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:331:30: warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
329 | AsyncStream { continuation in
330 | addToPhotoStream = { photo in
331 | continuation.yield(photo)
| |- warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'photo' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
332 | }
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:382:34: warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
380 | addToPreviewStream = { ciImage in
381 | if !self.isPreviewPaused {
382 | continuation.yield(ciImage)
| |- warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'ciImage' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
383 | }
384 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:43:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
41 | func setIsAllowed(to bool: Bool) {
42 | DispatchQueue.main.async {
43 | self.isAllowed = bool
| |- 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
44 | self.processAttempts()
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:50:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
48 | func setIsCopying(to bool: Bool) {
49 | DispatchQueue.main.async {
50 | self.isCopyingFile = bool
| |- 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
51 | }
52 | }
[57/57] Compiling MediaUtilities ImageDropDelegate.swift
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Permissions.swift:35:6: warning: '@concurrent' has been renamed to '@Sendable'
33 | ///
34 | /// - Note: This method should be called before attempting to use camera features that require audio.
35 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
36 | public func requestCameraAccess() async {
37 | // Request both video and audio permissions concurrently
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:90:6: warning: '@concurrent' has been renamed to '@Sendable'
88 | ///
89 | /// - Returns: `Result<URL, CameraError>` containing the photo URL or error information.
90 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
91 | public func capturePhotoWithCompletion() async -> Result<URL, CameraError> {
92 | guard authorizationStatus == .authorized else {
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService+Intents.swift:187:6: warning: '@concurrent' has been renamed to '@Sendable'
185 | /// - Returns: `Result<URL, CameraError>` containing video URL or error information.
186 | /// - Note: This method should only be called after `startVideoRecording()` succeeds.
187 | @concurrent
| `- warning: '@concurrent' has been renamed to '@Sendable'
188 | public func stopVideoRecording() async -> Result<URL, CameraError> {
189 | // This will be called when recording delegate finishes
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:214:52: warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
212 | guard let captureDevice = captureDevice else { return }
213 | sessionQueue.async {
214 | self.updateSessionForCaptureDevice(captureDevice)
| `- warning: capture of 'captureDevice' with non-sendable type 'AVCaptureDevice' in a '@Sendable' closure
215 | }
216 | }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:73:12: note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
71 | */
72 | API_AVAILABLE(macos(10.7), ios(4.0), macCatalyst(14.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos)
73 | @interface AVCaptureDevice : NSObject
| `- note: class 'AVCaptureDevice' does not conform to the 'Sendable' protocol
74 | {
75 | @private
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
6 | //
7 |
8 | import AVFoundation
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'AVFoundation'
9 | import Foundation
10 | import SwiftUI
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:67:20: warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
65 | // MARK: - Core Properties
66 |
67 | @Published var previewImage: Image?
| `- warning: stored property '_previewImage' of 'Sendable'-conforming class 'CameraService' is mutable; this is an error in the Swift 6 language mode
68 | let captureSession = AVCaptureSession()
69 | var isCaptureSessionConfigured = false
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:56:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
54 | }
55 | if utType.conforms(to: .image) || utType.conforms(to: .url) || utType.conforms(to: .fileURL) {
56 | dropService.setIsAllowed(to: true)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
57 | } else {
58 | dropService.setIsAllowed(to: false)
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:58:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
56 | dropService.setIsAllowed(to: true)
57 | } else {
58 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
59 | }
60 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:69:21: warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: property declared here
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
67 | }
68 | guard let image = UnifiedImage(data: data) else {
69 | dropService.setIsAllowed(to: false)
| `- warning: main actor-isolated property 'dropService' can not be referenced from a Sendable closure; this is an error in the Swift 6 language mode
70 | return
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:72:17: warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
11 | @available(iOS 14.0, macOS 11, *)
12 | struct ImageDropDelegate: DropDelegate {
13 | @ObservedObject var dropService: DropDelegateService
| `- note: mutation of this property is only permitted within the actor
14 | var dropCompleted: (Result<UnifiedImage, Error>) -> Void
15 |
:
70 | return
71 | }
72 | dropService.temporaryImage = image
| `- warning: main actor-isolated property 'dropService' can not be mutated from a Sendable closure; this is an error in the Swift 6 language mode
73 | completeDropFromTempImageHack(image)
74 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:73:17: warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
71 | }
72 | dropService.temporaryImage = image
73 | completeDropFromTempImageHack(image)
| `- warning: call to main actor-isolated instance method 'completeDropFromTempImageHack' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
74 | }
75 | } else {
:
141 | }
142 |
143 | func completeDropFromTempImageHack(_ image: UnifiedImage) {
| |- note: calls to instance method 'completeDropFromTempImageHack' from outside of its actor context are implicitly asynchronous
| `- note: main actor isolation inferred from conformance to protocol 'DropDelegate'
144 | guard dropService.isGuarded == false else {
145 | return
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:109:61: warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
107 | #endif
108 | #if os(macOS)
109 | let nsSecureCoding = try await itemProvider.loadItem(forTypeIdentifier: UTType.url.identifier, options: nil)
| `- warning: non-sendable result type 'any NSSecureCoding' cannot be sent from nonisolated context in call to instance method 'loadItem(forTypeIdentifier:options:)'; this is an error in the Swift 6 language mode
110 | if let urlData = nsSecureCoding as? Data {
111 | let url = NSURL(absoluteURLWithDataRepresentation: urlData, relativeTo: nil) as URL
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:36:11: note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
34 | // NOTE: NSSecureCoding guarantees only that an archive contains the classes it claims. It makes no guarantees about the suitability for consumption by the receiver of the decoded content of the archive. Archived objects which may trigger code evaluation should be validated independently by the consumer of the objects to verify that no malicious code is executed (i.e. by checking key paths, selectors etc. specified in the archive).
35 |
36 | @protocol NSSecureCoding <NSCoding>
| `- note: protocol 'NSSecureCoding' does not conform to the 'Sendable' protocol
37 | @required
38 | // This property must return YES on all classes that allow secure coding. Subclasses of classes that adopt NSSecureCoding and override initWithCoder: must also override this method and return YES.
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/ImageDropDelegate.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
6 | //
7 |
8 | import SwiftUI
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
9 | import UniformTypeIdentifiers
10 |
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:331:30: warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
329 | AsyncStream { continuation in
330 | addToPhotoStream = { photo in
331 | continuation.yield(photo)
| |- warning: sending 'photo' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'photo' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
332 | }
333 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/Camera/CameraService.swift:382:34: warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
380 | addToPreviewStream = { ciImage in
381 | if !self.isPreviewPaused {
382 | continuation.yield(ciImage)
| |- warning: sending 'ciImage' risks causing data races; this is an error in the Swift 6 language mode
| `- note: task-isolated 'ciImage' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
383 | }
384 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:43:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
41 | func setIsAllowed(to bool: Bool) {
42 | DispatchQueue.main.async {
43 | self.isAllowed = bool
| |- 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
44 | self.processAttempts()
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/MediaUtilities/DropDelegate/DropDelegateService.swift:50:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
48 | func setIsCopying(to bool: Bool) {
49 | DispatchQueue.main.async {
50 | self.isCopyingFile = bool
| |- 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
51 | }
52 | }
Build complete! (10.77s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "MediaUtilities",
"name" : "MediaUtilities",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "MediaUtilities",
"targets" : [
"MediaUtilities"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "MediaUtilitiesTests",
"module_type" : "SwiftTarget",
"name" : "MediaUtilitiesTests",
"path" : "Tests/MediaUtilitiesTests",
"sources" : [
"MediaUtilitiesTests.swift"
],
"target_dependencies" : [
"MediaUtilities"
],
"type" : "test"
},
{
"c99name" : "MediaUtilities",
"module_type" : "SwiftTarget",
"name" : "MediaUtilities",
"path" : "Sources/MediaUtilities",
"product_memberships" : [
"MediaUtilities"
],
"sources" : [
"Camera/CameraCaptureView.swift",
"Camera/CameraCaptureViewModifier.swift",
"Camera/CameraService+Capture.swift",
"Camera/CameraService+Delegate.swift",
"Camera/CameraService+Helpers.swift",
"Camera/CameraService+Intents.swift",
"Camera/CameraService+Permissions.swift",
"Camera/CameraService.swift",
"Camera/CaptureMode.swift",
"Camera/RecordingTimeView.swift",
"DropDelegate/DropDelegateService.swift",
"DropDelegate/ImageDropDelegate.swift",
"DropDelegate/VideoDropDelegate.swift",
"Holistic/ImagePicker.swift",
"Holistic/VideoPicker.swift",
"ImageEditor/CropImageView.swift",
"ImageEditor/HoleShapeMask.swift",
"ImageEditor/ImageEditor.swift",
"ImageEditor/WhiteGridOverlay.swift",
"MediaPicker/MediaOptions.swift",
"MediaPicker/MediaPicker-iOS.swift",
"MediaPicker/MediaPicker-macOS.swift",
"MediaPicker/MediaPicker.swift",
"MediaUtilities.swift",
"Modifiers/GrayBackgroundRound.swift",
"Modifiers/OnTapModifier.swift",
"Modifiers/Shake Modifier.swift",
"Modifiers/SwiftUI+Extentions.swift",
"Shared/EditorControlButton.swift",
"Shared/MediaUtilitiesError.swift",
"Shared/SpinnerView.swift",
"Shared/UnifiedImage.swift",
"VideoEditor/Sliders/Base/DefaultHorizontalValueView.swift",
"VideoEditor/Sliders/Base/DefaultThumb.swift",
"VideoEditor/Sliders/Base/DefaultVerticalValueView.swift",
"VideoEditor/Sliders/Base/LinearRangeMath.swift",
"VideoEditor/Sliders/Base/LinearValueMath.swift",
"VideoEditor/Sliders/RangeSlider/RangeSlider.swift",
"VideoEditor/Sliders/RangeSlider/Style/AnyRangeSliderStyle.swift",
"VideoEditor/Sliders/RangeSlider/Style/EnvironmentValues+RangeSliderStyle.swift",
"VideoEditor/Sliders/RangeSlider/Style/RangeSliderStyle.swift",
"VideoEditor/Sliders/RangeSlider/Style/RangeSliderStyleConfiguration.swift",
"VideoEditor/Sliders/RangeSlider/Styles/HorizontalRangeSliderStyle.swift",
"VideoEditor/Sliders/RangeSlider/Styles/RangeSliderOptions.swift",
"VideoEditor/Sliders/RangeTrack/EnvironmentValues+RangeTrackConfiguration.swift",
"VideoEditor/Sliders/RangeTrack/EnvironmentValues+TrackRange.swift",
"VideoEditor/Sliders/RangeTrack/Horizontal/HorizontalRangeTrack.swift",
"VideoEditor/Sliders/RangeTrack/RangeTrackConfiguration.swift",
"VideoEditor/VideoDownloader.swift",
"VideoEditor/VideoEditor.swift",
"VideoEditor/VideoSliderView.swift",
"VideoEditor/VideoUtil.swift",
"VideoPlayer/CustomVideoPlayer.swift",
"VideoPlayer/PlayerViewModel.swift"
],
"type" : "library"
}
],
"tools_version" : "5.10"
}
Done.