The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of KSPlayer, reference 2.3.4 (bdfa2d), with Swift 6.1 for macOS (SPM) on 26 Apr 2025 11:33:28 UTC.

Swift 6 data race errors: 135

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
179 |     public let num: Int32
180 |     public let den: Int32
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:516:13: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
514 |                 self.play()
515 |             }
516 |             completionHandler()
    |             |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
517 |         }
518 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:532:13: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
530 |                 self.pause()
531 |             }
532 |             completionHandler()
    |             |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
533 |         }
534 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:557:17: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
555 |             }
556 |             guard self.loadState != .playable, let countDown = bufferingCommand.completionDueDate?.timeIntervalSinceNow else {
557 |                 completionHandler()
    |                 |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
558 |                 return
559 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:494:28: warning: 'result' mutated after capture by sendable closure
492 |                     options.seekFlags &= ~AVSEEK_FLAG_BACKWARD
493 |                     seekFlags &= ~AVSEEK_FLAG_BACKWARD
494 |                     result = avformat_seek_file(formatCtx, -1, seekMin, timeStamp, seekMax, seekFlags)
    |                            `- warning: 'result' mutated after capture by sendable closure
495 |                 }
496 |                 KSLog("seek to \(seekToTime) spend Time: \(CACurrentMediaTime() - seekStartTime)")
[54/61] Compiling KSPlayer MEPlayerItemTrack.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:26:27: warning: call to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 24 |             oldValue?.invalidate()
 25 |             runOnMainThread {
 26 |                 oldValue?.removeFromSuperview()
    |                           `- warning: call to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 27 |             }
 28 |         }
AppKit.NSView.removeFromSuperview:2:22: note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
1 | class NSView {
2 | @MainActor open func removeFromSuperview()}
  |                      |- note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSResponder'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:110:35: warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
108 |                     runOnMainThread { [weak self] in
109 |                         guard let self else { return }
110 |                         delegate?.finish(player: self, error: nil)
    |                                   `- warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
111 |                     }
112 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:114:10: note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
    |          `- note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
115 | }
116 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:429:16: warning: main actor-isolated property 'contentMode' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayerProtocol'; this is an error in the Swift 6 language mode
289 | }
290 |
291 | extension KSMEPlayer: MediaPlayerProtocol {
    |                       `- note: add '@preconcurrency' to the 'MediaPlayerProtocol' conformance to defer isolation checking to run time
292 |     public var chapters: [Chapter] {
293 |         playerItem.chapters
    :
427 |
428 |     @MainActor
429 |     public var contentMode: UIViewContentMode {
    |                `- warning: main actor-isolated property 'contentMode' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayerProtocol'; this is an error in the Swift 6 language mode
430 |         get {
431 |             view?.contentMode ?? .center
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:83:9: note: requirement 'contentMode' declared here
 81 |     var playbackRate: Float { get set }
 82 |     var playbackVolume: Float { get set }
 83 |     var contentMode: UIViewContentMode { get set }
    |         `- note: requirement 'contentMode' declared here
 84 |     var subtitleDataSouce: SubtitleDataSouce? { get }
 85 |     @available(macOS 12.0, iOS 15.0, tvOS 15.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:309:16: warning: main actor-isolated property 'naturalSize' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayback'; this is an error in the Swift 6 language mode
307 |
308 |     @MainActor
309 |     public var naturalSize: CGSize {
    |                `- warning: main actor-isolated property 'naturalSize' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayback'; this is an error in the Swift 6 language mode
310 |         options.display == .plane ? playerItem.naturalSize : KSOptions.sceneSize
311 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:19:9: note: requirement 'naturalSize' declared here
 17 |     var duration: TimeInterval { get }
 18 |     var fileSize: Double { get }
 19 |     var naturalSize: CGSize { get }
    |         `- note: requirement 'naturalSize' declared here
 20 |     var chapters: [Chapter] { get }
 21 |     var currentPlaybackTime: TimeInterval { get }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:16:14: warning: non-final class 'KSMEPlayer' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 14 | #endif
 15 |
 16 | public class KSMEPlayer: NSObject {
    |              `- warning: non-final class 'KSMEPlayer' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 17 |     private var loopCount = 1
 18 |     private var playerItem: MEPlayerItem
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:17:17: warning: stored property 'loopCount' of 'Sendable'-conforming class 'KSMEPlayer' is mutable; this is an error in the Swift 6 language mode
 15 |
 16 | public class KSMEPlayer: NSObject {
 17 |     private var loopCount = 1
    |                 `- warning: stored property 'loopCount' of 'Sendable'-conforming class 'KSMEPlayer' is mutable; this is an error in the Swift 6 language mode
 18 |     private var playerItem: MEPlayerItem
 19 |     public let audioOutput: AudioOutput
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:35:27: warning: call to main actor-isolated instance method 'changeBuffering(player:progress:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 33 |             runOnMainThread { [weak self] in
 34 |                 guard let self else { return }
 35 |                 delegate?.changeBuffering(player: self, progress: newValue)
    |                           `- warning: call to main actor-isolated instance method 'changeBuffering(player:progress:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 36 |             }
 37 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:112:10: note: calls to instance method 'changeBuffering(player:progress:)' from outside of its actor context are implicitly asynchronous
110 |     func changeLoadState(player: some MediaPlayerProtocol)
111 |     // 缓冲加载进度,0-100
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
    |          `- note: calls to instance method 'changeBuffering(player:progress:)' from outside of its actor context are implicitly asynchronous
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:164:28: warning: call to main actor-isolated instance method 'changeLoadState(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
162 |                 self.videoOutput?.play()
163 |             }
164 |             self.delegate?.changeLoadState(player: self)
    |                            `- warning: call to main actor-isolated instance method 'changeLoadState(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
165 |         }
166 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:110:10: note: calls to instance method 'changeLoadState(player:)' from outside of its actor context are implicitly asynchronous
108 | public protocol MediaPlayerDelegate: AnyObject {
109 |     func readyToPlay(player: some MediaPlayerProtocol)
110 |     func changeLoadState(player: some MediaPlayerProtocol)
    |          `- note: calls to instance method 'changeLoadState(player:)' from outside of its actor context are implicitly asynchronous
111 |     // 缓冲加载进度,0-100
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:213:23: warning: call to main actor-isolated instance method 'readyToPlay(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
211 |                 CMTimebaseSetTime(controlTimebase, time: CMTimeMake(value: Int64(options.startPlayTime), timescale: 1))
212 |             }
213 |             delegate?.readyToPlay(player: self)
    |                       `- warning: call to main actor-isolated instance method 'readyToPlay(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
214 |         }
215 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:109:10: note: calls to instance method 'readyToPlay(player:)' from outside of its actor context are implicitly asynchronous
107 | @MainActor
108 | public protocol MediaPlayerDelegate: AnyObject {
109 |     func readyToPlay(player: some MediaPlayerProtocol)
    |          `- note: calls to instance method 'readyToPlay(player:)' from outside of its actor context are implicitly asynchronous
110 |     func changeLoadState(player: some MediaPlayerProtocol)
111 |     // 缓冲加载进度,0-100
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:220:28: warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
218 |         runOnMainThread { [weak self] in
219 |             guard let self else { return }
220 |             self.delegate?.finish(player: self, error: error)
    |                            `- warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
221 |         }
222 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:114:10: note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
    |          `- note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
115 | }
116 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:229:32: warning: call to main actor-isolated instance method 'playBack(player:loopCount:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
227 |             if self.options.isLoopPlay {
228 |                 self.loopCount += 1
229 |                 self.delegate?.playBack(player: self, loopCount: self.loopCount)
    |                                `- warning: call to main actor-isolated instance method 'playBack(player:loopCount:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
230 |                 self.audioOutput.play()
231 |                 self.videoOutput?.play()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:113:10: note: calls to instance method 'playBack(player:loopCount:)' from outside of its actor context are implicitly asynchronous
111 |     // 缓冲加载进度,0-100
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
    |          `- note: calls to instance method 'playBack(player:loopCount:)' from outside of its actor context are implicitly asynchronous
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
115 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:516:13: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
514 |                 self.play()
515 |             }
516 |             completionHandler()
    |             |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
517 |         }
518 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:532:13: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
530 |                 self.pause()
531 |             }
532 |             completionHandler()
    |             |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
533 |         }
534 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:557:17: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
555 |             }
556 |             guard self.loadState != .playable, let countDown = bufferingCommand.completionDueDate?.timeIntervalSinceNow else {
557 |                 completionHandler()
    |                 |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
558 |                 return
559 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:563:17: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
561 |             self.bufferingCountDownTimer = nil
562 |             self.bufferingCountDownTimer = Timer(timeInterval: countDown, repeats: false) { _ in
563 |                 completionHandler()
    |                 |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
564 |             }
565 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:94:24: warning: static property 'onceInitial' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 92 |     }
 93 |
 94 |     private static var onceInitial: Void = {
    |                        |- warning: static property 'onceInitial' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'onceInitial' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'onceInitial' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 95 |         var result = avformat_network_init()
 96 |         av_log_set_callback { ptr, level, format, args in
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:16:17: warning: stored property 'options' of 'Sendable'-conforming class 'MEPlayerItem' has non-sendable type 'KSOptions'; this is an error in the Swift 6 language mode
 14 | public final class MEPlayerItem: Sendable {
 15 |     private let url: URL
 16 |     private let options: KSOptions
    |                 `- warning: stored property 'options' of 'Sendable'-conforming class 'MEPlayerItem' has non-sendable type 'KSOptions'; this is an error in the Swift 6 language mode
 17 |     private let operationQueue = OperationQueue()
 18 |     private let condition = NSCondition()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:17:12: note: class 'KSOptions' does not conform to the 'Sendable' protocol
 15 | import UIKit
 16 | #endif
 17 | open class KSOptions {
    |            `- note: class 'KSOptions' does not conform to the 'Sendable' protocol
 18 |     /// 最低缓存视频时间
 19 |     @Published
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:19:17: warning: stored property 'formatCtx' of 'Sendable'-conforming class 'MEPlayerItem' is mutable; this is an error in the Swift 6 language mode
 17 |     private let operationQueue = OperationQueue()
 18 |     private let condition = NSCondition()
 19 |     private var formatCtx: UnsafeMutablePointer<AVFormatContext>?
    |                 `- warning: stored property 'formatCtx' of 'Sendable'-conforming class 'MEPlayerItem' is mutable; this is an error in the Swift 6 language mode
 20 |     private var outputFormatCtx: UnsafeMutablePointer<AVFormatContext>?
 21 |     private var outputPacket: UnsafeMutablePointer<AVPacket>?
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:441:21: warning: initialization of immutable value 'result' was never used; consider replacing with assignment to '_' or removing it
439 |                 let flags = seekByBytes ? AVSEEK_FLAG_BYTE : 0
440 |                 let seekStartTime = CACurrentMediaTime()
441 |                 let result = avformat_seek_file(formatCtx, -1, Int64.min, timestamp.value, Int64.max, flags)
    |                     `- warning: initialization of immutable value 'result' was never used; consider replacing with assignment to '_' or removing it
442 |                 audioClock.time = timestamp
443 |                 videoClock.time = timestamp
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:507:52: warning: reference to captured var 'result' in concurrently-executing code
505 |                 DispatchQueue.main.async { [weak self] in
506 |                     guard let self else { return }
507 |                     self.seekingCompletionHandler?(result >= 0)
    |                                                    `- warning: reference to captured var 'result' in concurrently-executing code
508 |                     self.seekingCompletionHandler = nil
509 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItemTrack.swift:223:23: warning: capture of 'self' with non-sendable type 'AsyncPlayerItemTrack<Frame>?' in a '@Sendable' closure
177 | }
178 |
179 | final class AsyncPlayerItemTrack<Frame: MEFrame>: SyncPlayerItemTrack<Frame> {
    |             `- note: generic class 'AsyncPlayerItemTrack' does not conform to the 'Sendable' protocol
180 |     private let operationQueue = OperationQueue()
181 |     private var decodeOperation: BlockOperation!
    :
221 |         guard operationQueue.operationCount == 0 else { return }
222 |         decodeOperation = BlockOperation { [weak self] in
223 |             guard let self else { return }
    |                       `- warning: capture of 'self' with non-sendable type 'AsyncPlayerItemTrack<Frame>?' in a '@Sendable' closure
224 |             Thread.current.name = self.operationQueue.name
225 |             Thread.current.stackSize = KSOptions.stackSize
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:72:21: warning: main actor-isolated property 'displayLayerDelegate' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 17 |
 18 | public protocol VideoOutput: FrameOutput {
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
    |         `- note: requirement 'displayLayerDelegate' declared here
 20 |     var options: KSOptions { get set }
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
    :
 26 | }
 27 |
 28 | public final class MetalPlayView: UIView, VideoOutput {
    |                                           `- note: add '@preconcurrency' to the 'VideoOutput' conformance to defer isolation checking to run time
 29 |     public var displayLayer: AVSampleBufferDisplayLayer {
 30 |         displayView.displayLayer
    :
 70 |
 71 |     private let metalView = MetalView()
 72 |     public weak var displayLayerDelegate: DisplayLayerDelegate?
    |                     `- warning: main actor-isolated property 'displayLayerDelegate' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 73 |     public init(options: KSOptions) {
 74 |         self.options = options
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:62:16: warning: main actor-isolated property 'options' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 18 | public protocol VideoOutput: FrameOutput {
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
 20 |     var options: KSOptions { get set }
    |         `- note: requirement 'options' declared here
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
    :
 60 |     private var displayLink: CADisplayLink!
 61 | //    private let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
 62 |     public var options: KSOptions
    |                `- warning: main actor-isolated property 'options' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 63 |     public weak var renderSource: OutputRenderSourceDelegate?
 64 |     // AVSampleBufferAudioRenderer AVSampleBufferRenderSynchronizer AVSampleBufferDisplayLayer
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:29:16: warning: main actor-isolated property 'displayLayer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
 20 |     var options: KSOptions { get set }
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
    |         `- note: requirement 'displayLayer' declared here
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
 23 |     init(options: KSOptions)
    :
 27 |
 28 | public final class MetalPlayView: UIView, VideoOutput {
 29 |     public var displayLayer: AVSampleBufferDisplayLayer {
    |                `- warning: main actor-isolated property 'displayLayer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 30 |         displayView.displayLayer
 31 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:56:29: warning: main actor-isolated property 'pixelBuffer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 20 |     var options: KSOptions { get set }
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
    |         `- note: requirement 'pixelBuffer' declared here
 23 |     init(options: KSOptions)
 24 |     func invalidate()
    :
 54 |     }
 55 |
 56 |     public private(set) var pixelBuffer: PixelBufferProtocol?
    |                             `- warning: main actor-isolated property 'pixelBuffer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 57 |     /// 用displayLink会导致锁屏无法draw,
 58 |     /// 用DispatchSourceTimer的话,在播放4k视频的时候repeat的时间会变长,
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:73:12: warning: main actor-isolated initializer 'init(options:)' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
 23 |     init(options: KSOptions)
    |     `- note: mark the protocol requirement 'init(options:)' 'async' to allow actor-isolated conformances
 24 |     func invalidate()
 25 |     func readNextFrame()
    :
 71 |     private let metalView = MetalView()
 72 |     public weak var displayLayerDelegate: DisplayLayerDelegate?
 73 |     public init(options: KSOptions) {
    |            |- warning: main actor-isolated initializer 'init(options:)' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
    |            `- note: add 'nonisolated' to 'init(options:)' to make this initializer not isolated to the actor
 74 |         self.options = options
 75 |         super.init(frame: .zero)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:153:17: warning: main actor-isolated instance method 'invalidate()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
 23 |     init(options: KSOptions)
 24 |     func invalidate()
    |          `- note: mark the protocol requirement 'invalidate()' 'async' to allow actor-isolated conformances
 25 |     func readNextFrame()
 26 | }
    :
151 |     }
152 |
153 |     public func invalidate() {
    |                 |- warning: main actor-isolated instance method 'invalidate()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'invalidate()' to make this instance method not isolated to the actor
154 |         displayLink.invalidate()
155 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:157:17: warning: main actor-isolated instance method 'readNextFrame()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 23 |     init(options: KSOptions)
 24 |     func invalidate()
 25 |     func readNextFrame()
    |          `- note: mark the protocol requirement 'readNextFrame()' 'async' to allow actor-isolated conformances
 26 | }
 27 |
    :
155 |     }
156 |
157 |     public func readNextFrame() {
    |                 |- warning: main actor-isolated instance method 'readNextFrame()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'readNextFrame()' to make this instance method not isolated to the actor
158 |         draw(force: true)
159 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:63:21: warning: main actor-isolated property 'renderSource' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 61 | //    private let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
 62 |     public var options: KSOptions
 63 |     public weak var renderSource: OutputRenderSourceDelegate?
    |                     `- warning: main actor-isolated property 'renderSource' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 64 |     // AVSampleBufferAudioRenderer AVSampleBufferRenderSynchronizer AVSampleBufferDisplayLayer
 65 |     var displayView = AVSampleBufferDisplayView() {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:67:9: note: requirement 'renderSource' declared here
 65 |
 66 | public protocol FrameOutput: AnyObject {
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
    |         `- note: requirement 'renderSource' declared here
 68 |     func pause()
 69 |     func flush()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:90:17: warning: main actor-isolated instance method 'pause()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 88 |     }
 89 |
 90 |     public func pause() {
    |                 |- warning: main actor-isolated instance method 'pause()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'pause()' to make this instance method not isolated to the actor
 91 |         displayLink.isPaused = true
 92 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:68:10: note: mark the protocol requirement 'pause()' 'async' to allow actor-isolated conformances
 66 | public protocol FrameOutput: AnyObject {
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
 68 |     func pause()
    |          `- note: mark the protocol requirement 'pause()' 'async' to allow actor-isolated conformances
 69 |     func flush()
 70 |     func play()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:144:17: warning: main actor-isolated instance method 'flush()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
142 |     #endif
143 |
144 |     public func flush() {
    |                 |- warning: main actor-isolated instance method 'flush()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'flush()' to make this instance method not isolated to the actor
145 |         pixelBuffer = nil
146 |         if displayView.isHidden {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:69:10: note: mark the protocol requirement 'flush()' 'async' to allow actor-isolated conformances
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
 68 |     func pause()
 69 |     func flush()
    |          `- note: mark the protocol requirement 'flush()' 'async' to allow actor-isolated conformances
 70 |     func play()
 71 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:86:17: warning: main actor-isolated instance method 'play()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 84 |     }
 85 |
 86 |     public func play() {
    |                 |- warning: main actor-isolated instance method 'play()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'play()' to make this instance method not isolated to the actor
 87 |         displayLink.isPaused = false
 88 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:70:10: note: mark the protocol requirement 'play()' 'async' to allow actor-isolated conformances
 68 |     func pause()
 69 |     func flush()
 70 |     func play()
    |          `- note: mark the protocol requirement 'play()' 'async' to allow actor-isolated conformances
 71 | }
 72 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:415:23: warning: capture of 'self' with non-sendable type 'CADisplayLink?' in a '@Sendable' closure
366 | import CoreVideo
367 |
368 | class CADisplayLink {
    |       `- note: class 'CADisplayLink' does not conform to the 'Sendable' protocol
369 |     private let displayLink: CVDisplayLink
370 |     private var runloop: RunLoop?
    :
413 |         self.displayLink = displayLink!
414 |         CVDisplayLinkSetOutputHandler(self.displayLink) { [weak self] _, _, _, _, _ in
415 |             guard let self else { return kCVReturnSuccess }
    |                       `- warning: capture of 'self' with non-sendable type 'CADisplayLink?' in a '@Sendable' closure
416 |             self.runloop?.perform(selector, target: target, argument: self, order: 0, modes: [self.mode])
417 |             return kCVReturnSuccess
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:416:53: warning: capture of 'target' with non-sendable type 'NSObject' in a '@Sendable' closure
414 |         CVDisplayLinkSetOutputHandler(self.displayLink) { [weak self] _, _, _, _, _ in
415 |             guard let self else { return kCVReturnSuccess }
416 |             self.runloop?.perform(selector, target: target, argument: self, order: 0, modes: [self.mode])
    |                                                     `- warning: capture of 'target' with non-sendable type 'NSObject' in a '@Sendable' closure
417 |             return kCVReturnSuccess
418 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/objc/NSObject.h:53:12: note: class 'NSObject' does not conform to the 'Sendable' protocol
 51 | OBJC_ROOT_CLASS
 52 | OBJC_EXPORT
 53 | @interface NSObject <NSObject> {
    |            `- note: class 'NSObject' does not conform to the 'Sendable' protocol
 54 | #pragma clang diagnostic push
 55 | #pragma clang diagnostic ignored "-Wobjc-interface-ivars"
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ObjectiveC'
  6 | //
  7 |
  8 | import AVFoundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ObjectiveC'
  9 | import Combine
 10 | import CoreMedia
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:427:13: warning: capture of 'block' with non-sendable type '() -> Void' in a '@Sendable' closure
425 |         self.displayLink = displayLink!
426 |         CVDisplayLinkSetOutputHandler(self.displayLink) { _, _, _, _, _ in
427 |             block()
    |             |- warning: capture of 'block' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
428 |             return kCVReturnSuccess
429 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:82:16: warning: static property 'enableSensor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 80 | public extension KSOptions {
 81 |     /// 开启VR模式的陀飞轮
 82 |     static var enableSensor = true
    |                |- warning: static property 'enableSensor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'enableSensor' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'enableSensor' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 83 |     static var stackSize = 65536
 84 |     static var isClearVideoWhereReplace = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:83:16: warning: static property 'stackSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 81 |     /// 开启VR模式的陀飞轮
 82 |     static var enableSensor = true
 83 |     static var stackSize = 65536
    |                |- warning: static property 'stackSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'stackSize' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'stackSize' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 84 |     static var isClearVideoWhereReplace = true
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:84:16: warning: static property 'isClearVideoWhereReplace' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 82 |     static var enableSensor = true
 83 |     static var stackSize = 65536
 84 |     static var isClearVideoWhereReplace = true
    |                |- warning: static property 'isClearVideoWhereReplace' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'isClearVideoWhereReplace' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'isClearVideoWhereReplace' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: warning: static property 'audioPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 83 |     static var stackSize = 65536
 84 |     static var isClearVideoWhereReplace = true
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
    |                |- warning: static property 'audioPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'audioPlayerType' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'audioPlayerType' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
 87 |     static var yadifMode = 1
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:86:16: warning: static property 'videoPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 84 |     static var isClearVideoWhereReplace = true
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
    |                |- warning: static property 'videoPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'videoPlayerType' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'videoPlayerType' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 87 |     static var yadifMode = 1
 88 |     static var deInterlaceAddIdet = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:87:16: warning: static property 'yadifMode' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
 87 |     static var yadifMode = 1
    |                |- warning: static property 'yadifMode' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'yadifMode' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'yadifMode' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 88 |     static var deInterlaceAddIdet = false
 89 |     static func colorSpace(ycbcrMatrix: CFString?, transferFunction: CFString?) -> CGColorSpace? {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:88:16: warning: static property 'deInterlaceAddIdet' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
 87 |     static var yadifMode = 1
 88 |     static var deInterlaceAddIdet = false
    |                |- warning: static property 'deInterlaceAddIdet' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'deInterlaceAddIdet' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'deInterlaceAddIdet' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 89 |     static func colorSpace(ycbcrMatrix: CFString?, transferFunction: CFString?) -> CGColorSpace? {
 90 |         switch ycbcrMatrix {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:178:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Timebase' may have shared mutable state; this is an error in the Swift 6 language mode
175 | }
176 |
177 | public struct Timebase {
    |               `- note: consider making struct 'Timebase' conform to the 'Sendable' protocol
178 |     static let defaultValue = Timebase(num: 1, den: 1)
    |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Timebase' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
179 |     public let num: Int32
180 |     public let den: Int32
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:516:13: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
514 |                 self.play()
515 |             }
516 |             completionHandler()
    |             |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
517 |         }
518 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:532:13: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
530 |                 self.pause()
531 |             }
532 |             completionHandler()
    |             |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
533 |         }
534 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:557:17: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
555 |             }
556 |             guard self.loadState != .playable, let countDown = bufferingCommand.completionDueDate?.timeIntervalSinceNow else {
557 |                 completionHandler()
    |                 |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
558 |                 return
559 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:494:28: warning: 'result' mutated after capture by sendable closure
492 |                     options.seekFlags &= ~AVSEEK_FLAG_BACKWARD
493 |                     seekFlags &= ~AVSEEK_FLAG_BACKWARD
494 |                     result = avformat_seek_file(formatCtx, -1, seekMin, timeStamp, seekMax, seekFlags)
    |                            `- warning: 'result' mutated after capture by sendable closure
495 |                 }
496 |                 KSLog("seek to \(seekToTime) spend Time: \(CACurrentMediaTime() - seekStartTime)")
[55/61] Compiling KSPlayer MetalPlayView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:26:27: warning: call to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 24 |             oldValue?.invalidate()
 25 |             runOnMainThread {
 26 |                 oldValue?.removeFromSuperview()
    |                           `- warning: call to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 27 |             }
 28 |         }
AppKit.NSView.removeFromSuperview:2:22: note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
1 | class NSView {
2 | @MainActor open func removeFromSuperview()}
  |                      |- note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSResponder'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:110:35: warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
108 |                     runOnMainThread { [weak self] in
109 |                         guard let self else { return }
110 |                         delegate?.finish(player: self, error: nil)
    |                                   `- warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
111 |                     }
112 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:114:10: note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
    |          `- note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
115 | }
116 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:429:16: warning: main actor-isolated property 'contentMode' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayerProtocol'; this is an error in the Swift 6 language mode
289 | }
290 |
291 | extension KSMEPlayer: MediaPlayerProtocol {
    |                       `- note: add '@preconcurrency' to the 'MediaPlayerProtocol' conformance to defer isolation checking to run time
292 |     public var chapters: [Chapter] {
293 |         playerItem.chapters
    :
427 |
428 |     @MainActor
429 |     public var contentMode: UIViewContentMode {
    |                `- warning: main actor-isolated property 'contentMode' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayerProtocol'; this is an error in the Swift 6 language mode
430 |         get {
431 |             view?.contentMode ?? .center
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:83:9: note: requirement 'contentMode' declared here
 81 |     var playbackRate: Float { get set }
 82 |     var playbackVolume: Float { get set }
 83 |     var contentMode: UIViewContentMode { get set }
    |         `- note: requirement 'contentMode' declared here
 84 |     var subtitleDataSouce: SubtitleDataSouce? { get }
 85 |     @available(macOS 12.0, iOS 15.0, tvOS 15.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:309:16: warning: main actor-isolated property 'naturalSize' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayback'; this is an error in the Swift 6 language mode
307 |
308 |     @MainActor
309 |     public var naturalSize: CGSize {
    |                `- warning: main actor-isolated property 'naturalSize' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayback'; this is an error in the Swift 6 language mode
310 |         options.display == .plane ? playerItem.naturalSize : KSOptions.sceneSize
311 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:19:9: note: requirement 'naturalSize' declared here
 17 |     var duration: TimeInterval { get }
 18 |     var fileSize: Double { get }
 19 |     var naturalSize: CGSize { get }
    |         `- note: requirement 'naturalSize' declared here
 20 |     var chapters: [Chapter] { get }
 21 |     var currentPlaybackTime: TimeInterval { get }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:16:14: warning: non-final class 'KSMEPlayer' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 14 | #endif
 15 |
 16 | public class KSMEPlayer: NSObject {
    |              `- warning: non-final class 'KSMEPlayer' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 17 |     private var loopCount = 1
 18 |     private var playerItem: MEPlayerItem
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:17:17: warning: stored property 'loopCount' of 'Sendable'-conforming class 'KSMEPlayer' is mutable; this is an error in the Swift 6 language mode
 15 |
 16 | public class KSMEPlayer: NSObject {
 17 |     private var loopCount = 1
    |                 `- warning: stored property 'loopCount' of 'Sendable'-conforming class 'KSMEPlayer' is mutable; this is an error in the Swift 6 language mode
 18 |     private var playerItem: MEPlayerItem
 19 |     public let audioOutput: AudioOutput
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:35:27: warning: call to main actor-isolated instance method 'changeBuffering(player:progress:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 33 |             runOnMainThread { [weak self] in
 34 |                 guard let self else { return }
 35 |                 delegate?.changeBuffering(player: self, progress: newValue)
    |                           `- warning: call to main actor-isolated instance method 'changeBuffering(player:progress:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 36 |             }
 37 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:112:10: note: calls to instance method 'changeBuffering(player:progress:)' from outside of its actor context are implicitly asynchronous
110 |     func changeLoadState(player: some MediaPlayerProtocol)
111 |     // 缓冲加载进度,0-100
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
    |          `- note: calls to instance method 'changeBuffering(player:progress:)' from outside of its actor context are implicitly asynchronous
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:164:28: warning: call to main actor-isolated instance method 'changeLoadState(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
162 |                 self.videoOutput?.play()
163 |             }
164 |             self.delegate?.changeLoadState(player: self)
    |                            `- warning: call to main actor-isolated instance method 'changeLoadState(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
165 |         }
166 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:110:10: note: calls to instance method 'changeLoadState(player:)' from outside of its actor context are implicitly asynchronous
108 | public protocol MediaPlayerDelegate: AnyObject {
109 |     func readyToPlay(player: some MediaPlayerProtocol)
110 |     func changeLoadState(player: some MediaPlayerProtocol)
    |          `- note: calls to instance method 'changeLoadState(player:)' from outside of its actor context are implicitly asynchronous
111 |     // 缓冲加载进度,0-100
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:213:23: warning: call to main actor-isolated instance method 'readyToPlay(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
211 |                 CMTimebaseSetTime(controlTimebase, time: CMTimeMake(value: Int64(options.startPlayTime), timescale: 1))
212 |             }
213 |             delegate?.readyToPlay(player: self)
    |                       `- warning: call to main actor-isolated instance method 'readyToPlay(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
214 |         }
215 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:109:10: note: calls to instance method 'readyToPlay(player:)' from outside of its actor context are implicitly asynchronous
107 | @MainActor
108 | public protocol MediaPlayerDelegate: AnyObject {
109 |     func readyToPlay(player: some MediaPlayerProtocol)
    |          `- note: calls to instance method 'readyToPlay(player:)' from outside of its actor context are implicitly asynchronous
110 |     func changeLoadState(player: some MediaPlayerProtocol)
111 |     // 缓冲加载进度,0-100
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:220:28: warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
218 |         runOnMainThread { [weak self] in
219 |             guard let self else { return }
220 |             self.delegate?.finish(player: self, error: error)
    |                            `- warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
221 |         }
222 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:114:10: note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
    |          `- note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
115 | }
116 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:229:32: warning: call to main actor-isolated instance method 'playBack(player:loopCount:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
227 |             if self.options.isLoopPlay {
228 |                 self.loopCount += 1
229 |                 self.delegate?.playBack(player: self, loopCount: self.loopCount)
    |                                `- warning: call to main actor-isolated instance method 'playBack(player:loopCount:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
230 |                 self.audioOutput.play()
231 |                 self.videoOutput?.play()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:113:10: note: calls to instance method 'playBack(player:loopCount:)' from outside of its actor context are implicitly asynchronous
111 |     // 缓冲加载进度,0-100
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
    |          `- note: calls to instance method 'playBack(player:loopCount:)' from outside of its actor context are implicitly asynchronous
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
115 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:516:13: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
514 |                 self.play()
515 |             }
516 |             completionHandler()
    |             |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
517 |         }
518 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:532:13: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
530 |                 self.pause()
531 |             }
532 |             completionHandler()
    |             |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
533 |         }
534 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:557:17: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
555 |             }
556 |             guard self.loadState != .playable, let countDown = bufferingCommand.completionDueDate?.timeIntervalSinceNow else {
557 |                 completionHandler()
    |                 |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
558 |                 return
559 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:563:17: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
561 |             self.bufferingCountDownTimer = nil
562 |             self.bufferingCountDownTimer = Timer(timeInterval: countDown, repeats: false) { _ in
563 |                 completionHandler()
    |                 |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
564 |             }
565 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:94:24: warning: static property 'onceInitial' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 92 |     }
 93 |
 94 |     private static var onceInitial: Void = {
    |                        |- warning: static property 'onceInitial' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'onceInitial' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'onceInitial' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 95 |         var result = avformat_network_init()
 96 |         av_log_set_callback { ptr, level, format, args in
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:16:17: warning: stored property 'options' of 'Sendable'-conforming class 'MEPlayerItem' has non-sendable type 'KSOptions'; this is an error in the Swift 6 language mode
 14 | public final class MEPlayerItem: Sendable {
 15 |     private let url: URL
 16 |     private let options: KSOptions
    |                 `- warning: stored property 'options' of 'Sendable'-conforming class 'MEPlayerItem' has non-sendable type 'KSOptions'; this is an error in the Swift 6 language mode
 17 |     private let operationQueue = OperationQueue()
 18 |     private let condition = NSCondition()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:17:12: note: class 'KSOptions' does not conform to the 'Sendable' protocol
 15 | import UIKit
 16 | #endif
 17 | open class KSOptions {
    |            `- note: class 'KSOptions' does not conform to the 'Sendable' protocol
 18 |     /// 最低缓存视频时间
 19 |     @Published
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:19:17: warning: stored property 'formatCtx' of 'Sendable'-conforming class 'MEPlayerItem' is mutable; this is an error in the Swift 6 language mode
 17 |     private let operationQueue = OperationQueue()
 18 |     private let condition = NSCondition()
 19 |     private var formatCtx: UnsafeMutablePointer<AVFormatContext>?
    |                 `- warning: stored property 'formatCtx' of 'Sendable'-conforming class 'MEPlayerItem' is mutable; this is an error in the Swift 6 language mode
 20 |     private var outputFormatCtx: UnsafeMutablePointer<AVFormatContext>?
 21 |     private var outputPacket: UnsafeMutablePointer<AVPacket>?
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:441:21: warning: initialization of immutable value 'result' was never used; consider replacing with assignment to '_' or removing it
439 |                 let flags = seekByBytes ? AVSEEK_FLAG_BYTE : 0
440 |                 let seekStartTime = CACurrentMediaTime()
441 |                 let result = avformat_seek_file(formatCtx, -1, Int64.min, timestamp.value, Int64.max, flags)
    |                     `- warning: initialization of immutable value 'result' was never used; consider replacing with assignment to '_' or removing it
442 |                 audioClock.time = timestamp
443 |                 videoClock.time = timestamp
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:507:52: warning: reference to captured var 'result' in concurrently-executing code
505 |                 DispatchQueue.main.async { [weak self] in
506 |                     guard let self else { return }
507 |                     self.seekingCompletionHandler?(result >= 0)
    |                                                    `- warning: reference to captured var 'result' in concurrently-executing code
508 |                     self.seekingCompletionHandler = nil
509 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItemTrack.swift:223:23: warning: capture of 'self' with non-sendable type 'AsyncPlayerItemTrack<Frame>?' in a '@Sendable' closure
177 | }
178 |
179 | final class AsyncPlayerItemTrack<Frame: MEFrame>: SyncPlayerItemTrack<Frame> {
    |             `- note: generic class 'AsyncPlayerItemTrack' does not conform to the 'Sendable' protocol
180 |     private let operationQueue = OperationQueue()
181 |     private var decodeOperation: BlockOperation!
    :
221 |         guard operationQueue.operationCount == 0 else { return }
222 |         decodeOperation = BlockOperation { [weak self] in
223 |             guard let self else { return }
    |                       `- warning: capture of 'self' with non-sendable type 'AsyncPlayerItemTrack<Frame>?' in a '@Sendable' closure
224 |             Thread.current.name = self.operationQueue.name
225 |             Thread.current.stackSize = KSOptions.stackSize
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:72:21: warning: main actor-isolated property 'displayLayerDelegate' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 17 |
 18 | public protocol VideoOutput: FrameOutput {
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
    |         `- note: requirement 'displayLayerDelegate' declared here
 20 |     var options: KSOptions { get set }
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
    :
 26 | }
 27 |
 28 | public final class MetalPlayView: UIView, VideoOutput {
    |                                           `- note: add '@preconcurrency' to the 'VideoOutput' conformance to defer isolation checking to run time
 29 |     public var displayLayer: AVSampleBufferDisplayLayer {
 30 |         displayView.displayLayer
    :
 70 |
 71 |     private let metalView = MetalView()
 72 |     public weak var displayLayerDelegate: DisplayLayerDelegate?
    |                     `- warning: main actor-isolated property 'displayLayerDelegate' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 73 |     public init(options: KSOptions) {
 74 |         self.options = options
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:62:16: warning: main actor-isolated property 'options' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 18 | public protocol VideoOutput: FrameOutput {
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
 20 |     var options: KSOptions { get set }
    |         `- note: requirement 'options' declared here
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
    :
 60 |     private var displayLink: CADisplayLink!
 61 | //    private let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
 62 |     public var options: KSOptions
    |                `- warning: main actor-isolated property 'options' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 63 |     public weak var renderSource: OutputRenderSourceDelegate?
 64 |     // AVSampleBufferAudioRenderer AVSampleBufferRenderSynchronizer AVSampleBufferDisplayLayer
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:29:16: warning: main actor-isolated property 'displayLayer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
 20 |     var options: KSOptions { get set }
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
    |         `- note: requirement 'displayLayer' declared here
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
 23 |     init(options: KSOptions)
    :
 27 |
 28 | public final class MetalPlayView: UIView, VideoOutput {
 29 |     public var displayLayer: AVSampleBufferDisplayLayer {
    |                `- warning: main actor-isolated property 'displayLayer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 30 |         displayView.displayLayer
 31 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:56:29: warning: main actor-isolated property 'pixelBuffer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 20 |     var options: KSOptions { get set }
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
    |         `- note: requirement 'pixelBuffer' declared here
 23 |     init(options: KSOptions)
 24 |     func invalidate()
    :
 54 |     }
 55 |
 56 |     public private(set) var pixelBuffer: PixelBufferProtocol?
    |                             `- warning: main actor-isolated property 'pixelBuffer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 57 |     /// 用displayLink会导致锁屏无法draw,
 58 |     /// 用DispatchSourceTimer的话,在播放4k视频的时候repeat的时间会变长,
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:73:12: warning: main actor-isolated initializer 'init(options:)' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
 23 |     init(options: KSOptions)
    |     `- note: mark the protocol requirement 'init(options:)' 'async' to allow actor-isolated conformances
 24 |     func invalidate()
 25 |     func readNextFrame()
    :
 71 |     private let metalView = MetalView()
 72 |     public weak var displayLayerDelegate: DisplayLayerDelegate?
 73 |     public init(options: KSOptions) {
    |            |- warning: main actor-isolated initializer 'init(options:)' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
    |            `- note: add 'nonisolated' to 'init(options:)' to make this initializer not isolated to the actor
 74 |         self.options = options
 75 |         super.init(frame: .zero)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:153:17: warning: main actor-isolated instance method 'invalidate()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
 23 |     init(options: KSOptions)
 24 |     func invalidate()
    |          `- note: mark the protocol requirement 'invalidate()' 'async' to allow actor-isolated conformances
 25 |     func readNextFrame()
 26 | }
    :
151 |     }
152 |
153 |     public func invalidate() {
    |                 |- warning: main actor-isolated instance method 'invalidate()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'invalidate()' to make this instance method not isolated to the actor
154 |         displayLink.invalidate()
155 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:157:17: warning: main actor-isolated instance method 'readNextFrame()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 23 |     init(options: KSOptions)
 24 |     func invalidate()
 25 |     func readNextFrame()
    |          `- note: mark the protocol requirement 'readNextFrame()' 'async' to allow actor-isolated conformances
 26 | }
 27 |
    :
155 |     }
156 |
157 |     public func readNextFrame() {
    |                 |- warning: main actor-isolated instance method 'readNextFrame()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'readNextFrame()' to make this instance method not isolated to the actor
158 |         draw(force: true)
159 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:63:21: warning: main actor-isolated property 'renderSource' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 61 | //    private let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
 62 |     public var options: KSOptions
 63 |     public weak var renderSource: OutputRenderSourceDelegate?
    |                     `- warning: main actor-isolated property 'renderSource' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 64 |     // AVSampleBufferAudioRenderer AVSampleBufferRenderSynchronizer AVSampleBufferDisplayLayer
 65 |     var displayView = AVSampleBufferDisplayView() {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:67:9: note: requirement 'renderSource' declared here
 65 |
 66 | public protocol FrameOutput: AnyObject {
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
    |         `- note: requirement 'renderSource' declared here
 68 |     func pause()
 69 |     func flush()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:90:17: warning: main actor-isolated instance method 'pause()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 88 |     }
 89 |
 90 |     public func pause() {
    |                 |- warning: main actor-isolated instance method 'pause()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'pause()' to make this instance method not isolated to the actor
 91 |         displayLink.isPaused = true
 92 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:68:10: note: mark the protocol requirement 'pause()' 'async' to allow actor-isolated conformances
 66 | public protocol FrameOutput: AnyObject {
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
 68 |     func pause()
    |          `- note: mark the protocol requirement 'pause()' 'async' to allow actor-isolated conformances
 69 |     func flush()
 70 |     func play()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:144:17: warning: main actor-isolated instance method 'flush()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
142 |     #endif
143 |
144 |     public func flush() {
    |                 |- warning: main actor-isolated instance method 'flush()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'flush()' to make this instance method not isolated to the actor
145 |         pixelBuffer = nil
146 |         if displayView.isHidden {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:69:10: note: mark the protocol requirement 'flush()' 'async' to allow actor-isolated conformances
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
 68 |     func pause()
 69 |     func flush()
    |          `- note: mark the protocol requirement 'flush()' 'async' to allow actor-isolated conformances
 70 |     func play()
 71 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:86:17: warning: main actor-isolated instance method 'play()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 84 |     }
 85 |
 86 |     public func play() {
    |                 |- warning: main actor-isolated instance method 'play()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'play()' to make this instance method not isolated to the actor
 87 |         displayLink.isPaused = false
 88 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:70:10: note: mark the protocol requirement 'play()' 'async' to allow actor-isolated conformances
 68 |     func pause()
 69 |     func flush()
 70 |     func play()
    |          `- note: mark the protocol requirement 'play()' 'async' to allow actor-isolated conformances
 71 | }
 72 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:415:23: warning: capture of 'self' with non-sendable type 'CADisplayLink?' in a '@Sendable' closure
366 | import CoreVideo
367 |
368 | class CADisplayLink {
    |       `- note: class 'CADisplayLink' does not conform to the 'Sendable' protocol
369 |     private let displayLink: CVDisplayLink
370 |     private var runloop: RunLoop?
    :
413 |         self.displayLink = displayLink!
414 |         CVDisplayLinkSetOutputHandler(self.displayLink) { [weak self] _, _, _, _, _ in
415 |             guard let self else { return kCVReturnSuccess }
    |                       `- warning: capture of 'self' with non-sendable type 'CADisplayLink?' in a '@Sendable' closure
416 |             self.runloop?.perform(selector, target: target, argument: self, order: 0, modes: [self.mode])
417 |             return kCVReturnSuccess
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:416:53: warning: capture of 'target' with non-sendable type 'NSObject' in a '@Sendable' closure
414 |         CVDisplayLinkSetOutputHandler(self.displayLink) { [weak self] _, _, _, _, _ in
415 |             guard let self else { return kCVReturnSuccess }
416 |             self.runloop?.perform(selector, target: target, argument: self, order: 0, modes: [self.mode])
    |                                                     `- warning: capture of 'target' with non-sendable type 'NSObject' in a '@Sendable' closure
417 |             return kCVReturnSuccess
418 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/objc/NSObject.h:53:12: note: class 'NSObject' does not conform to the 'Sendable' protocol
 51 | OBJC_ROOT_CLASS
 52 | OBJC_EXPORT
 53 | @interface NSObject <NSObject> {
    |            `- note: class 'NSObject' does not conform to the 'Sendable' protocol
 54 | #pragma clang diagnostic push
 55 | #pragma clang diagnostic ignored "-Wobjc-interface-ivars"
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ObjectiveC'
  6 | //
  7 |
  8 | import AVFoundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ObjectiveC'
  9 | import Combine
 10 | import CoreMedia
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:427:13: warning: capture of 'block' with non-sendable type '() -> Void' in a '@Sendable' closure
425 |         self.displayLink = displayLink!
426 |         CVDisplayLinkSetOutputHandler(self.displayLink) { _, _, _, _, _ in
427 |             block()
    |             |- warning: capture of 'block' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
428 |             return kCVReturnSuccess
429 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:82:16: warning: static property 'enableSensor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 80 | public extension KSOptions {
 81 |     /// 开启VR模式的陀飞轮
 82 |     static var enableSensor = true
    |                |- warning: static property 'enableSensor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'enableSensor' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'enableSensor' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 83 |     static var stackSize = 65536
 84 |     static var isClearVideoWhereReplace = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:83:16: warning: static property 'stackSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 81 |     /// 开启VR模式的陀飞轮
 82 |     static var enableSensor = true
 83 |     static var stackSize = 65536
    |                |- warning: static property 'stackSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'stackSize' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'stackSize' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 84 |     static var isClearVideoWhereReplace = true
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:84:16: warning: static property 'isClearVideoWhereReplace' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 82 |     static var enableSensor = true
 83 |     static var stackSize = 65536
 84 |     static var isClearVideoWhereReplace = true
    |                |- warning: static property 'isClearVideoWhereReplace' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'isClearVideoWhereReplace' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'isClearVideoWhereReplace' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: warning: static property 'audioPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 83 |     static var stackSize = 65536
 84 |     static var isClearVideoWhereReplace = true
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
    |                |- warning: static property 'audioPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'audioPlayerType' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'audioPlayerType' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
 87 |     static var yadifMode = 1
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:86:16: warning: static property 'videoPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 84 |     static var isClearVideoWhereReplace = true
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
    |                |- warning: static property 'videoPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'videoPlayerType' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'videoPlayerType' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 87 |     static var yadifMode = 1
 88 |     static var deInterlaceAddIdet = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:87:16: warning: static property 'yadifMode' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
 87 |     static var yadifMode = 1
    |                |- warning: static property 'yadifMode' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'yadifMode' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'yadifMode' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 88 |     static var deInterlaceAddIdet = false
 89 |     static func colorSpace(ycbcrMatrix: CFString?, transferFunction: CFString?) -> CGColorSpace? {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:88:16: warning: static property 'deInterlaceAddIdet' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
 87 |     static var yadifMode = 1
 88 |     static var deInterlaceAddIdet = false
    |                |- warning: static property 'deInterlaceAddIdet' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'deInterlaceAddIdet' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'deInterlaceAddIdet' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 89 |     static func colorSpace(ycbcrMatrix: CFString?, transferFunction: CFString?) -> CGColorSpace? {
 90 |         switch ycbcrMatrix {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:178:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Timebase' may have shared mutable state; this is an error in the Swift 6 language mode
175 | }
176 |
177 | public struct Timebase {
    |               `- note: consider making struct 'Timebase' conform to the 'Sendable' protocol
178 |     static let defaultValue = Timebase(num: 1, den: 1)
    |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Timebase' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
179 |     public let num: Int32
180 |     public let den: Int32
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:516:13: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
514 |                 self.play()
515 |             }
516 |             completionHandler()
    |             |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
517 |         }
518 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:532:13: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
530 |                 self.pause()
531 |             }
532 |             completionHandler()
    |             |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
533 |         }
534 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:557:17: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
555 |             }
556 |             guard self.loadState != .playable, let countDown = bufferingCommand.completionDueDate?.timeIntervalSinceNow else {
557 |                 completionHandler()
    |                 |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
558 |                 return
559 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:494:28: warning: 'result' mutated after capture by sendable closure
492 |                     options.seekFlags &= ~AVSEEK_FLAG_BACKWARD
493 |                     seekFlags &= ~AVSEEK_FLAG_BACKWARD
494 |                     result = avformat_seek_file(formatCtx, -1, seekMin, timeStamp, seekMax, seekFlags)
    |                            `- warning: 'result' mutated after capture by sendable closure
495 |                 }
496 |                 KSLog("seek to \(seekToTime) spend Time: \(CACurrentMediaTime() - seekStartTime)")
[56/61] Compiling KSPlayer Model.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:26:27: warning: call to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 24 |             oldValue?.invalidate()
 25 |             runOnMainThread {
 26 |                 oldValue?.removeFromSuperview()
    |                           `- warning: call to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 27 |             }
 28 |         }
AppKit.NSView.removeFromSuperview:2:22: note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
1 | class NSView {
2 | @MainActor open func removeFromSuperview()}
  |                      |- note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
  |                      `- note: main actor isolation inferred from inheritance from class 'NSResponder'
3 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:110:35: warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
108 |                     runOnMainThread { [weak self] in
109 |                         guard let self else { return }
110 |                         delegate?.finish(player: self, error: nil)
    |                                   `- warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
111 |                     }
112 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:114:10: note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
    |          `- note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
115 | }
116 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:429:16: warning: main actor-isolated property 'contentMode' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayerProtocol'; this is an error in the Swift 6 language mode
289 | }
290 |
291 | extension KSMEPlayer: MediaPlayerProtocol {
    |                       `- note: add '@preconcurrency' to the 'MediaPlayerProtocol' conformance to defer isolation checking to run time
292 |     public var chapters: [Chapter] {
293 |         playerItem.chapters
    :
427 |
428 |     @MainActor
429 |     public var contentMode: UIViewContentMode {
    |                `- warning: main actor-isolated property 'contentMode' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayerProtocol'; this is an error in the Swift 6 language mode
430 |         get {
431 |             view?.contentMode ?? .center
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:83:9: note: requirement 'contentMode' declared here
 81 |     var playbackRate: Float { get set }
 82 |     var playbackVolume: Float { get set }
 83 |     var contentMode: UIViewContentMode { get set }
    |         `- note: requirement 'contentMode' declared here
 84 |     var subtitleDataSouce: SubtitleDataSouce? { get }
 85 |     @available(macOS 12.0, iOS 15.0, tvOS 15.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:309:16: warning: main actor-isolated property 'naturalSize' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayback'; this is an error in the Swift 6 language mode
307 |
308 |     @MainActor
309 |     public var naturalSize: CGSize {
    |                `- warning: main actor-isolated property 'naturalSize' cannot be used to satisfy nonisolated requirement from protocol 'MediaPlayback'; this is an error in the Swift 6 language mode
310 |         options.display == .plane ? playerItem.naturalSize : KSOptions.sceneSize
311 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:19:9: note: requirement 'naturalSize' declared here
 17 |     var duration: TimeInterval { get }
 18 |     var fileSize: Double { get }
 19 |     var naturalSize: CGSize { get }
    |         `- note: requirement 'naturalSize' declared here
 20 |     var chapters: [Chapter] { get }
 21 |     var currentPlaybackTime: TimeInterval { get }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:16:14: warning: non-final class 'KSMEPlayer' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 14 | #endif
 15 |
 16 | public class KSMEPlayer: NSObject {
    |              `- warning: non-final class 'KSMEPlayer' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
 17 |     private var loopCount = 1
 18 |     private var playerItem: MEPlayerItem
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:17:17: warning: stored property 'loopCount' of 'Sendable'-conforming class 'KSMEPlayer' is mutable; this is an error in the Swift 6 language mode
 15 |
 16 | public class KSMEPlayer: NSObject {
 17 |     private var loopCount = 1
    |                 `- warning: stored property 'loopCount' of 'Sendable'-conforming class 'KSMEPlayer' is mutable; this is an error in the Swift 6 language mode
 18 |     private var playerItem: MEPlayerItem
 19 |     public let audioOutput: AudioOutput
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:35:27: warning: call to main actor-isolated instance method 'changeBuffering(player:progress:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 33 |             runOnMainThread { [weak self] in
 34 |                 guard let self else { return }
 35 |                 delegate?.changeBuffering(player: self, progress: newValue)
    |                           `- warning: call to main actor-isolated instance method 'changeBuffering(player:progress:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
 36 |             }
 37 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:112:10: note: calls to instance method 'changeBuffering(player:progress:)' from outside of its actor context are implicitly asynchronous
110 |     func changeLoadState(player: some MediaPlayerProtocol)
111 |     // 缓冲加载进度,0-100
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
    |          `- note: calls to instance method 'changeBuffering(player:progress:)' from outside of its actor context are implicitly asynchronous
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:164:28: warning: call to main actor-isolated instance method 'changeLoadState(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
162 |                 self.videoOutput?.play()
163 |             }
164 |             self.delegate?.changeLoadState(player: self)
    |                            `- warning: call to main actor-isolated instance method 'changeLoadState(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
165 |         }
166 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:110:10: note: calls to instance method 'changeLoadState(player:)' from outside of its actor context are implicitly asynchronous
108 | public protocol MediaPlayerDelegate: AnyObject {
109 |     func readyToPlay(player: some MediaPlayerProtocol)
110 |     func changeLoadState(player: some MediaPlayerProtocol)
    |          `- note: calls to instance method 'changeLoadState(player:)' from outside of its actor context are implicitly asynchronous
111 |     // 缓冲加载进度,0-100
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:213:23: warning: call to main actor-isolated instance method 'readyToPlay(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
211 |                 CMTimebaseSetTime(controlTimebase, time: CMTimeMake(value: Int64(options.startPlayTime), timescale: 1))
212 |             }
213 |             delegate?.readyToPlay(player: self)
    |                       `- warning: call to main actor-isolated instance method 'readyToPlay(player:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
214 |         }
215 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:109:10: note: calls to instance method 'readyToPlay(player:)' from outside of its actor context are implicitly asynchronous
107 | @MainActor
108 | public protocol MediaPlayerDelegate: AnyObject {
109 |     func readyToPlay(player: some MediaPlayerProtocol)
    |          `- note: calls to instance method 'readyToPlay(player:)' from outside of its actor context are implicitly asynchronous
110 |     func changeLoadState(player: some MediaPlayerProtocol)
111 |     // 缓冲加载进度,0-100
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:220:28: warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
218 |         runOnMainThread { [weak self] in
219 |             guard let self else { return }
220 |             self.delegate?.finish(player: self, error: error)
    |                            `- warning: call to main actor-isolated instance method 'finish(player:error:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
221 |         }
222 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:114:10: note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
    |          `- note: calls to instance method 'finish(player:error:)' from outside of its actor context are implicitly asynchronous
115 | }
116 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:229:32: warning: call to main actor-isolated instance method 'playBack(player:loopCount:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
227 |             if self.options.isLoopPlay {
228 |                 self.loopCount += 1
229 |                 self.delegate?.playBack(player: self, loopCount: self.loopCount)
    |                                `- warning: call to main actor-isolated instance method 'playBack(player:loopCount:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
230 |                 self.audioOutput.play()
231 |                 self.videoOutput?.play()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:113:10: note: calls to instance method 'playBack(player:loopCount:)' from outside of its actor context are implicitly asynchronous
111 |     // 缓冲加载进度,0-100
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
    |          `- note: calls to instance method 'playBack(player:loopCount:)' from outside of its actor context are implicitly asynchronous
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
115 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:516:13: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
514 |                 self.play()
515 |             }
516 |             completionHandler()
    |             |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
517 |         }
518 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:532:13: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
530 |                 self.pause()
531 |             }
532 |             completionHandler()
    |             |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
533 |         }
534 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:557:17: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
555 |             }
556 |             guard self.loadState != .playable, let countDown = bufferingCommand.completionDueDate?.timeIntervalSinceNow else {
557 |                 completionHandler()
    |                 |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
558 |                 return
559 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:563:17: warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
561 |             self.bufferingCountDownTimer = nil
562 |             self.bufferingCountDownTimer = Timer(timeInterval: countDown, repeats: false) { _ in
563 |                 completionHandler()
    |                 |- warning: capture of 'completionHandler' with non-sendable type '() -> Void' in a '@Sendable' closure
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
564 |             }
565 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:94:24: warning: static property 'onceInitial' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 92 |     }
 93 |
 94 |     private static var onceInitial: Void = {
    |                        |- warning: static property 'onceInitial' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'onceInitial' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'onceInitial' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 95 |         var result = avformat_network_init()
 96 |         av_log_set_callback { ptr, level, format, args in
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:16:17: warning: stored property 'options' of 'Sendable'-conforming class 'MEPlayerItem' has non-sendable type 'KSOptions'; this is an error in the Swift 6 language mode
 14 | public final class MEPlayerItem: Sendable {
 15 |     private let url: URL
 16 |     private let options: KSOptions
    |                 `- warning: stored property 'options' of 'Sendable'-conforming class 'MEPlayerItem' has non-sendable type 'KSOptions'; this is an error in the Swift 6 language mode
 17 |     private let operationQueue = OperationQueue()
 18 |     private let condition = NSCondition()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:17:12: note: class 'KSOptions' does not conform to the 'Sendable' protocol
 15 | import UIKit
 16 | #endif
 17 | open class KSOptions {
    |            `- note: class 'KSOptions' does not conform to the 'Sendable' protocol
 18 |     /// 最低缓存视频时间
 19 |     @Published
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:19:17: warning: stored property 'formatCtx' of 'Sendable'-conforming class 'MEPlayerItem' is mutable; this is an error in the Swift 6 language mode
 17 |     private let operationQueue = OperationQueue()
 18 |     private let condition = NSCondition()
 19 |     private var formatCtx: UnsafeMutablePointer<AVFormatContext>?
    |                 `- warning: stored property 'formatCtx' of 'Sendable'-conforming class 'MEPlayerItem' is mutable; this is an error in the Swift 6 language mode
 20 |     private var outputFormatCtx: UnsafeMutablePointer<AVFormatContext>?
 21 |     private var outputPacket: UnsafeMutablePointer<AVPacket>?
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:441:21: warning: initialization of immutable value 'result' was never used; consider replacing with assignment to '_' or removing it
439 |                 let flags = seekByBytes ? AVSEEK_FLAG_BYTE : 0
440 |                 let seekStartTime = CACurrentMediaTime()
441 |                 let result = avformat_seek_file(formatCtx, -1, Int64.min, timestamp.value, Int64.max, flags)
    |                     `- warning: initialization of immutable value 'result' was never used; consider replacing with assignment to '_' or removing it
442 |                 audioClock.time = timestamp
443 |                 videoClock.time = timestamp
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:507:52: warning: reference to captured var 'result' in concurrently-executing code
505 |                 DispatchQueue.main.async { [weak self] in
506 |                     guard let self else { return }
507 |                     self.seekingCompletionHandler?(result >= 0)
    |                                                    `- warning: reference to captured var 'result' in concurrently-executing code
508 |                     self.seekingCompletionHandler = nil
509 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItemTrack.swift:223:23: warning: capture of 'self' with non-sendable type 'AsyncPlayerItemTrack<Frame>?' in a '@Sendable' closure
177 | }
178 |
179 | final class AsyncPlayerItemTrack<Frame: MEFrame>: SyncPlayerItemTrack<Frame> {
    |             `- note: generic class 'AsyncPlayerItemTrack' does not conform to the 'Sendable' protocol
180 |     private let operationQueue = OperationQueue()
181 |     private var decodeOperation: BlockOperation!
    :
221 |         guard operationQueue.operationCount == 0 else { return }
222 |         decodeOperation = BlockOperation { [weak self] in
223 |             guard let self else { return }
    |                       `- warning: capture of 'self' with non-sendable type 'AsyncPlayerItemTrack<Frame>?' in a '@Sendable' closure
224 |             Thread.current.name = self.operationQueue.name
225 |             Thread.current.stackSize = KSOptions.stackSize
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:72:21: warning: main actor-isolated property 'displayLayerDelegate' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 17 |
 18 | public protocol VideoOutput: FrameOutput {
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
    |         `- note: requirement 'displayLayerDelegate' declared here
 20 |     var options: KSOptions { get set }
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
    :
 26 | }
 27 |
 28 | public final class MetalPlayView: UIView, VideoOutput {
    |                                           `- note: add '@preconcurrency' to the 'VideoOutput' conformance to defer isolation checking to run time
 29 |     public var displayLayer: AVSampleBufferDisplayLayer {
 30 |         displayView.displayLayer
    :
 70 |
 71 |     private let metalView = MetalView()
 72 |     public weak var displayLayerDelegate: DisplayLayerDelegate?
    |                     `- warning: main actor-isolated property 'displayLayerDelegate' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 73 |     public init(options: KSOptions) {
 74 |         self.options = options
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:62:16: warning: main actor-isolated property 'options' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 18 | public protocol VideoOutput: FrameOutput {
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
 20 |     var options: KSOptions { get set }
    |         `- note: requirement 'options' declared here
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
    :
 60 |     private var displayLink: CADisplayLink!
 61 | //    private let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
 62 |     public var options: KSOptions
    |                `- warning: main actor-isolated property 'options' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 63 |     public weak var renderSource: OutputRenderSourceDelegate?
 64 |     // AVSampleBufferAudioRenderer AVSampleBufferRenderSynchronizer AVSampleBufferDisplayLayer
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:29:16: warning: main actor-isolated property 'displayLayer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
 20 |     var options: KSOptions { get set }
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
    |         `- note: requirement 'displayLayer' declared here
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
 23 |     init(options: KSOptions)
    :
 27 |
 28 | public final class MetalPlayView: UIView, VideoOutput {
 29 |     public var displayLayer: AVSampleBufferDisplayLayer {
    |                `- warning: main actor-isolated property 'displayLayer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 30 |         displayView.displayLayer
 31 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:56:29: warning: main actor-isolated property 'pixelBuffer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 20 |     var options: KSOptions { get set }
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
    |         `- note: requirement 'pixelBuffer' declared here
 23 |     init(options: KSOptions)
 24 |     func invalidate()
    :
 54 |     }
 55 |
 56 |     public private(set) var pixelBuffer: PixelBufferProtocol?
    |                             `- warning: main actor-isolated property 'pixelBuffer' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 57 |     /// 用displayLink会导致锁屏无法draw,
 58 |     /// 用DispatchSourceTimer的话,在播放4k视频的时候repeat的时间会变长,
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:73:12: warning: main actor-isolated initializer 'init(options:)' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 21 |     var displayLayer: AVSampleBufferDisplayLayer { get }
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
 23 |     init(options: KSOptions)
    |     `- note: mark the protocol requirement 'init(options:)' 'async' to allow actor-isolated conformances
 24 |     func invalidate()
 25 |     func readNextFrame()
    :
 71 |     private let metalView = MetalView()
 72 |     public weak var displayLayerDelegate: DisplayLayerDelegate?
 73 |     public init(options: KSOptions) {
    |            |- warning: main actor-isolated initializer 'init(options:)' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
    |            `- note: add 'nonisolated' to 'init(options:)' to make this initializer not isolated to the actor
 74 |         self.options = options
 75 |         super.init(frame: .zero)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:153:17: warning: main actor-isolated instance method 'invalidate()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 22 |     var pixelBuffer: PixelBufferProtocol? { get }
 23 |     init(options: KSOptions)
 24 |     func invalidate()
    |          `- note: mark the protocol requirement 'invalidate()' 'async' to allow actor-isolated conformances
 25 |     func readNextFrame()
 26 | }
    :
151 |     }
152 |
153 |     public func invalidate() {
    |                 |- warning: main actor-isolated instance method 'invalidate()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'invalidate()' to make this instance method not isolated to the actor
154 |         displayLink.invalidate()
155 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:157:17: warning: main actor-isolated instance method 'readNextFrame()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
 23 |     init(options: KSOptions)
 24 |     func invalidate()
 25 |     func readNextFrame()
    |          `- note: mark the protocol requirement 'readNextFrame()' 'async' to allow actor-isolated conformances
 26 | }
 27 |
    :
155 |     }
156 |
157 |     public func readNextFrame() {
    |                 |- warning: main actor-isolated instance method 'readNextFrame()' cannot be used to satisfy nonisolated requirement from protocol 'VideoOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'readNextFrame()' to make this instance method not isolated to the actor
158 |         draw(force: true)
159 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:63:21: warning: main actor-isolated property 'renderSource' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 61 | //    private let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
 62 |     public var options: KSOptions
 63 |     public weak var renderSource: OutputRenderSourceDelegate?
    |                     `- warning: main actor-isolated property 'renderSource' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 64 |     // AVSampleBufferAudioRenderer AVSampleBufferRenderSynchronizer AVSampleBufferDisplayLayer
 65 |     var displayView = AVSampleBufferDisplayView() {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:67:9: note: requirement 'renderSource' declared here
 65 |
 66 | public protocol FrameOutput: AnyObject {
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
    |         `- note: requirement 'renderSource' declared here
 68 |     func pause()
 69 |     func flush()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:90:17: warning: main actor-isolated instance method 'pause()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 88 |     }
 89 |
 90 |     public func pause() {
    |                 |- warning: main actor-isolated instance method 'pause()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'pause()' to make this instance method not isolated to the actor
 91 |         displayLink.isPaused = true
 92 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:68:10: note: mark the protocol requirement 'pause()' 'async' to allow actor-isolated conformances
 66 | public protocol FrameOutput: AnyObject {
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
 68 |     func pause()
    |          `- note: mark the protocol requirement 'pause()' 'async' to allow actor-isolated conformances
 69 |     func flush()
 70 |     func play()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:144:17: warning: main actor-isolated instance method 'flush()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
142 |     #endif
143 |
144 |     public func flush() {
    |                 |- warning: main actor-isolated instance method 'flush()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'flush()' to make this instance method not isolated to the actor
145 |         pixelBuffer = nil
146 |         if displayView.isHidden {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:69:10: note: mark the protocol requirement 'flush()' 'async' to allow actor-isolated conformances
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
 68 |     func pause()
 69 |     func flush()
    |          `- note: mark the protocol requirement 'flush()' 'async' to allow actor-isolated conformances
 70 |     func play()
 71 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:86:17: warning: main actor-isolated instance method 'play()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
 84 |     }
 85 |
 86 |     public func play() {
    |                 |- warning: main actor-isolated instance method 'play()' cannot be used to satisfy nonisolated requirement from protocol 'FrameOutput'; this is an error in the Swift 6 language mode
    |                 `- note: add 'nonisolated' to 'play()' to make this instance method not isolated to the actor
 87 |         displayLink.isPaused = false
 88 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:70:10: note: mark the protocol requirement 'play()' 'async' to allow actor-isolated conformances
 68 |     func pause()
 69 |     func flush()
 70 |     func play()
    |          `- note: mark the protocol requirement 'play()' 'async' to allow actor-isolated conformances
 71 | }
 72 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:415:23: warning: capture of 'self' with non-sendable type 'CADisplayLink?' in a '@Sendable' closure
366 | import CoreVideo
367 |
368 | class CADisplayLink {
    |       `- note: class 'CADisplayLink' does not conform to the 'Sendable' protocol
369 |     private let displayLink: CVDisplayLink
370 |     private var runloop: RunLoop?
    :
413 |         self.displayLink = displayLink!
414 |         CVDisplayLinkSetOutputHandler(self.displayLink) { [weak self] _, _, _, _, _ in
415 |             guard let self else { return kCVReturnSuccess }
    |                       `- warning: capture of 'self' with non-sendable type 'CADisplayLink?' in a '@Sendable' closure
416 |             self.runloop?.perform(selector, target: target, argument: self, order: 0, modes: [self.mode])
417 |             return kCVReturnSuccess
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:416:53: warning: capture of 'target' with non-sendable type 'NSObject' in a '@Sendable' closure
414 |         CVDisplayLinkSetOutputHandler(self.displayLink) { [weak self] _, _, _, _, _ in
415 |             guard let self else { return kCVReturnSuccess }
416 |             self.runloop?.perform(selector, target: target, argument: self, order: 0, modes: [self.mode])
    |                                                     `- warning: capture of 'target' with non-sendable type 'NSObject' in a '@Sendable' closure
417 |             return kCVReturnSuccess
418 |         }
/Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/objc/NSObject.h:53:12: note: class 'NSObject' does not conform to the 'Sendable' protocol
 51 | OBJC_ROOT_CLASS
 52 | OBJC_EXPORT
 53 | @interface NSObject <NSObject> {
    |            `- note: class 'NSObject' does not conform to the 'Sendable' protocol
 54 | #pragma clang diagnostic push
 55 | #pragma clang diagnostic ignored "-Wobjc-interface-ivars"
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:8:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ObjectiveC'
  6 | //
  7 |
  8 | import AVFoundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ObjectiveC'
  9 | import Combine
 10 | import CoreMedia
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:427:13: warning: capture of 'block' with non-sendable type '() -> Void' in a '@Sendable' closure
425 |         self.displayLink = displayLink!
426 |         CVDisplayLinkSetOutputHandler(self.displayLink) { _, _, _, _, _ in
427 |             block()
    |             |- warning: capture of 'block' with non-sendable type '() -> Void' in a '@Sendable' closure
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
428 |             return kCVReturnSuccess
429 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:82:16: warning: static property 'enableSensor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 80 | public extension KSOptions {
 81 |     /// 开启VR模式的陀飞轮
 82 |     static var enableSensor = true
    |                |- warning: static property 'enableSensor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'enableSensor' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'enableSensor' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 83 |     static var stackSize = 65536
 84 |     static var isClearVideoWhereReplace = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:83:16: warning: static property 'stackSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 81 |     /// 开启VR模式的陀飞轮
 82 |     static var enableSensor = true
 83 |     static var stackSize = 65536
    |                |- warning: static property 'stackSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'stackSize' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'stackSize' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 84 |     static var isClearVideoWhereReplace = true
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:84:16: warning: static property 'isClearVideoWhereReplace' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 82 |     static var enableSensor = true
 83 |     static var stackSize = 65536
 84 |     static var isClearVideoWhereReplace = true
    |                |- warning: static property 'isClearVideoWhereReplace' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'isClearVideoWhereReplace' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'isClearVideoWhereReplace' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:85:16: warning: static property 'audioPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 83 |     static var stackSize = 65536
 84 |     static var isClearVideoWhereReplace = true
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
    |                |- warning: static property 'audioPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'audioPlayerType' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'audioPlayerType' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
 87 |     static var yadifMode = 1
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:86:16: warning: static property 'videoPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 84 |     static var isClearVideoWhereReplace = true
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
    |                |- warning: static property 'videoPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'videoPlayerType' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'videoPlayerType' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 87 |     static var yadifMode = 1
 88 |     static var deInterlaceAddIdet = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:87:16: warning: static property 'yadifMode' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 85 |     static var audioPlayerType: AudioOutput.Type = AudioEnginePlayer.self
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
 87 |     static var yadifMode = 1
    |                |- warning: static property 'yadifMode' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'yadifMode' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'yadifMode' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 88 |     static var deInterlaceAddIdet = false
 89 |     static func colorSpace(ycbcrMatrix: CFString?, transferFunction: CFString?) -> CGColorSpace? {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:88:16: warning: static property 'deInterlaceAddIdet' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 86 |     static var videoPlayerType: (VideoOutput & UIView).Type = MetalPlayView.self
 87 |     static var yadifMode = 1
 88 |     static var deInterlaceAddIdet = false
    |                |- warning: static property 'deInterlaceAddIdet' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'deInterlaceAddIdet' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'deInterlaceAddIdet' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 89 |     static func colorSpace(ycbcrMatrix: CFString?, transferFunction: CFString?) -> CGColorSpace? {
 90 |         switch ycbcrMatrix {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Model.swift:178:16: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Timebase' may have shared mutable state; this is an error in the Swift 6 language mode
175 | }
176 |
177 | public struct Timebase {
    |               `- note: consider making struct 'Timebase' conform to the 'Sendable' protocol
178 |     static let defaultValue = Timebase(num: 1, den: 1)
    |                |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'Timebase' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
179 |     public let num: Int32
180 |     public let den: Int32
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:516:13: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
514 |                 self.play()
515 |             }
516 |             completionHandler()
    |             |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
517 |         }
518 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:532:13: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
530 |                 self.pause()
531 |             }
532 |             completionHandler()
    |             |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
533 |         }
534 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:557:17: warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
555 |             }
556 |             guard self.loadState != .playable, let countDown = bufferingCommand.completionDueDate?.timeIntervalSinceNow else {
557 |                 completionHandler()
    |                 |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode
    |                 `- note: task-isolated 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
558 |                 return
559 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:494:28: warning: 'result' mutated after capture by sendable closure
492 |                     options.seekFlags &= ~AVSEEK_FLAG_BACKWARD
493 |                     seekFlags &= ~AVSEEK_FLAG_BACKWARD
494 |                     result = avformat_seek_file(formatCtx, -1, seekMin, timeStamp, seekMax, seekFlags)
    |                            `- warning: 'result' mutated after capture by sendable closure
495 |                 }
496 |                 KSLog("seek to \(seekToTime) spend Time: \(CACurrentMediaTime() - seekStartTime)")
[57/61] Compiling KSPlayer PlayerFullScreenViewController.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated requirement from protocol 'SeekViewProtocol'; this is an error in the Swift 6 language mode
11 | #endif
12 | public protocol SeekViewProtocol {
13 |     func set(text: String, isAdd: Bool)
   |          `- note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
14 | }
15 |
   :
64 | }
65 |
66 | extension SeekView: SeekViewProtocol {
   |                     `- note: add '@preconcurrency' to the 'SeekViewProtocol' conformance to defer isolation checking to run time
67 |     public func set(text: String, isAdd: Bool) {
   |                 |- warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated requirement from protocol 'SeekViewProtocol'; this is an error in the Swift 6 language mode
   |                 `- note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
68 |         seekToLabel.text = text
69 |         if !isAdd {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 952 | public extension KSOptions {
 953 |     /// 顶部返回、标题、AirPlay按钮 显示选项,默认.Always,可选.HorizantalOnly、.None
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
     |                |- warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'topBarShowInCase' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'topBarShowInCase' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
     |                |- warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'animateDelayTimeInterval' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'animateDelayTimeInterval' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:958:16: warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
     |                |- warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableBrightnessGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enableBrightnessGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:960:16: warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 958 |     static var enableBrightnessGestures = true
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
     |                |- warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableVolumeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enableVolumeGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 960 |     static var enableVolumeGestures = true
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
     |                |- warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enablePlaytimeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enablePlaytimeGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:965:16: warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
 965 |     static var canBackgroundPlay = false
     |                |- warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'canBackgroundPlay' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'canBackgroundPlay' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 966 | }
 967 |
[58/61] Compiling KSPlayer PlayerTransitionAnimator.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated requirement from protocol 'SeekViewProtocol'; this is an error in the Swift 6 language mode
11 | #endif
12 | public protocol SeekViewProtocol {
13 |     func set(text: String, isAdd: Bool)
   |          `- note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
14 | }
15 |
   :
64 | }
65 |
66 | extension SeekView: SeekViewProtocol {
   |                     `- note: add '@preconcurrency' to the 'SeekViewProtocol' conformance to defer isolation checking to run time
67 |     public func set(text: String, isAdd: Bool) {
   |                 |- warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated requirement from protocol 'SeekViewProtocol'; this is an error in the Swift 6 language mode
   |                 `- note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
68 |         seekToLabel.text = text
69 |         if !isAdd {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 952 | public extension KSOptions {
 953 |     /// 顶部返回、标题、AirPlay按钮 显示选项,默认.Always,可选.HorizantalOnly、.None
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
     |                |- warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'topBarShowInCase' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'topBarShowInCase' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
     |                |- warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'animateDelayTimeInterval' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'animateDelayTimeInterval' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:958:16: warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
     |                |- warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableBrightnessGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enableBrightnessGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:960:16: warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 958 |     static var enableBrightnessGestures = true
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
     |                |- warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableVolumeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enableVolumeGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 960 |     static var enableVolumeGestures = true
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
     |                |- warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enablePlaytimeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enablePlaytimeGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:965:16: warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
 965 |     static var canBackgroundPlay = false
     |                |- warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'canBackgroundPlay' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'canBackgroundPlay' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 966 | }
 967 |
[59/61] Compiling KSPlayer SeekView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated requirement from protocol 'SeekViewProtocol'; this is an error in the Swift 6 language mode
11 | #endif
12 | public protocol SeekViewProtocol {
13 |     func set(text: String, isAdd: Bool)
   |          `- note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
14 | }
15 |
   :
64 | }
65 |
66 | extension SeekView: SeekViewProtocol {
   |                     `- note: add '@preconcurrency' to the 'SeekViewProtocol' conformance to defer isolation checking to run time
67 |     public func set(text: String, isAdd: Bool) {
   |                 |- warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated requirement from protocol 'SeekViewProtocol'; this is an error in the Swift 6 language mode
   |                 `- note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
68 |         seekToLabel.text = text
69 |         if !isAdd {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 952 | public extension KSOptions {
 953 |     /// 顶部返回、标题、AirPlay按钮 显示选项,默认.Always,可选.HorizantalOnly、.None
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
     |                |- warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'topBarShowInCase' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'topBarShowInCase' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
     |                |- warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'animateDelayTimeInterval' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'animateDelayTimeInterval' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:958:16: warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
     |                |- warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableBrightnessGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enableBrightnessGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:960:16: warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 958 |     static var enableBrightnessGestures = true
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
     |                |- warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableVolumeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enableVolumeGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 960 |     static var enableVolumeGestures = true
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
     |                |- warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enablePlaytimeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enablePlaytimeGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:965:16: warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
 965 |     static var canBackgroundPlay = false
     |                |- warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'canBackgroundPlay' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'canBackgroundPlay' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 966 | }
 967 |
[60/61] Compiling KSPlayer VideoPlayerView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated requirement from protocol 'SeekViewProtocol'; this is an error in the Swift 6 language mode
11 | #endif
12 | public protocol SeekViewProtocol {
13 |     func set(text: String, isAdd: Bool)
   |          `- note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
14 | }
15 |
   :
64 | }
65 |
66 | extension SeekView: SeekViewProtocol {
   |                     `- note: add '@preconcurrency' to the 'SeekViewProtocol' conformance to defer isolation checking to run time
67 |     public func set(text: String, isAdd: Bool) {
   |                 |- warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated requirement from protocol 'SeekViewProtocol'; this is an error in the Swift 6 language mode
   |                 `- note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
68 |         seekToLabel.text = text
69 |         if !isAdd {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 952 | public extension KSOptions {
 953 |     /// 顶部返回、标题、AirPlay按钮 显示选项,默认.Always,可选.HorizantalOnly、.None
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
     |                |- warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'topBarShowInCase' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'topBarShowInCase' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
     |                |- warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'animateDelayTimeInterval' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'animateDelayTimeInterval' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:958:16: warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
     |                |- warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableBrightnessGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enableBrightnessGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:960:16: warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 958 |     static var enableBrightnessGestures = true
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
     |                |- warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableVolumeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enableVolumeGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 960 |     static var enableVolumeGestures = true
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
     |                |- warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enablePlaytimeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enablePlaytimeGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:965:16: warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
 965 |     static var canBackgroundPlay = false
     |                |- warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'canBackgroundPlay' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'canBackgroundPlay' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 966 | }
 967 |
[61/61] Compiling KSPlayer resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated requirement from protocol 'SeekViewProtocol'; this is an error in the Swift 6 language mode
11 | #endif
12 | public protocol SeekViewProtocol {
13 |     func set(text: String, isAdd: Bool)
   |          `- note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
14 | }
15 |
   :
64 | }
65 |
66 | extension SeekView: SeekViewProtocol {
   |                     `- note: add '@preconcurrency' to the 'SeekViewProtocol' conformance to defer isolation checking to run time
67 |     public func set(text: String, isAdd: Bool) {
   |                 |- warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated requirement from protocol 'SeekViewProtocol'; this is an error in the Swift 6 language mode
   |                 `- note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
68 |         seekToLabel.text = text
69 |         if !isAdd {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 952 | public extension KSOptions {
 953 |     /// 顶部返回、标题、AirPlay按钮 显示选项,默认.Always,可选.HorizantalOnly、.None
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
     |                |- warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'topBarShowInCase' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'topBarShowInCase' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
     |                |- warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'animateDelayTimeInterval' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'animateDelayTimeInterval' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:958:16: warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
     |                |- warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableBrightnessGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enableBrightnessGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:960:16: warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 958 |     static var enableBrightnessGestures = true
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
     |                |- warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableVolumeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enableVolumeGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 960 |     static var enableVolumeGestures = true
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
     |                |- warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enablePlaytimeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'enablePlaytimeGestures' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:965:16: warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
 965 |     static var canBackgroundPlay = false
     |                |- warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'canBackgroundPlay' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: add '@MainActor' to make static property 'canBackgroundPlay' part of global actor 'MainActor'
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 966 | }
 967 |
Build of target: 'KSPlayer' complete! (3.36s)
error: unspecified("terminated(1): /Applications/Xcode-16.3.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-symbolgraph-extract -module-name KSPlayer -target arm64-apple-macosx10.15 -module-cache-path /Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/ModuleCache -sdk /Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk -F /Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -F /Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/PrivateFrameworks -I /Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -L /Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -Xcc -fmodule-map-file=/Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/DisplayCriteria.build/module.modulemap -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/Sources/DisplayCriteria/include -Xcc -fmodule-map-file=/Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/FFmpegKit.build/module.modulemap -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/FFmpegKit/include -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libswscale.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libswscale.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libswresample.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libswresample.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavutil.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavutil.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavformat.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavformat.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavfilter.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavfilter.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavdevice.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavdevice.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavcodec.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavcodec.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libsmbclient.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libsmbclient.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/gnutls.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/gnutls.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/hogweed.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/hogweed.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/nettle.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/nettle.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/gmp.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/gmp.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libbluray.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libbluray.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfontconfig.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfontconfig.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libass.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libass.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libharfbuzz.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libharfbuzz.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfribidi.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfribidi.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfreetype.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfreetype.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libsrt.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libsrt.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libzvbi.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libzvbi.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libplacebo.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libplacebo.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libdav1d.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libdav1d.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/lcms2.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/lcms2.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libshaderc_combined.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libshaderc_combined.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/MoltenVK.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/MoltenVK.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/Modules -minimum-access-level public -skip-inherited-docs -emit-extension-block-symbols -output-dir /Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/extracted-symbols/spi-builder-workspace/KSPlayer output:\n    <module-includes>:4:9: note: in file included from <module-includes>:4:\n    #import \"/Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/FFmpegKit/include/avformat_shim.h\"\n            ^\n    /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/FFmpegKit/include/avformat_shim.h:4:9: error: \'Libavformat/avformat.h\' file not found\n    #import <Libavformat/avformat.h>\n            ^\n    <unknown>:0: error: could not build Objective-C module \'FFmpegKit\'\n    Error: Failed to load the module \'KSPlayer\'. Are you missing build dependencies or include/framework directories?\n    See the previous error messages for details. Aborting.\n    ")
Extracting symbol information for 'KSPlayer'...
warning: failed to retrieve search paths with pkg-config; maybe pkg-config is not installed
warning: you may be able to install sdl2 using your system-packager:
    brew install sdl2
warning: you may be able to install sdl2 using your system-packager:
    brew install sdl2
Building for debugging...
[0/3] Write swift-version-2F0A5646E1D333AE.txt
Build of product 'snippet-extract' complete! (0.29s)
warning: you may be able to install sdl2 using your system-packager:
    brew install sdl2
warning: you may be able to install sdl2 using your system-packager:
    brew install sdl2
Building for debugging...
[0/2] Compiling FFmpegKit FFmpegKit.c
[1/2] Write swift-version-2F0A5646E1D333AE.txt
Build of target: 'KSPlayer' complete! (0.61s)
error: unspecified("terminated(1): /Applications/Xcode-16.3.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-symbolgraph-extract -module-name KSPlayer -target arm64-apple-macosx10.15 -module-cache-path /Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/ModuleCache -sdk /Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk -F /Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -F /Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/PrivateFrameworks -I /Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -L /Applications/Xcode-16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -Xcc -fmodule-map-file=/Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/DisplayCriteria.build/module.modulemap -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/Sources/DisplayCriteria/include -Xcc -fmodule-map-file=/Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/FFmpegKit.build/module.modulemap -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/FFmpegKit/include -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libswscale.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libswscale.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libswresample.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libswresample.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavutil.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavutil.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavformat.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavformat.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavfilter.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavfilter.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavdevice.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavdevice.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavcodec.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/Libavcodec.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libsmbclient.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libsmbclient.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/gnutls.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/gnutls.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/hogweed.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/hogweed.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/nettle.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/nettle.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/gmp.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/gmp.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libbluray.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libbluray.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfontconfig.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfontconfig.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libass.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libass.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libharfbuzz.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libharfbuzz.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfribidi.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfribidi.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfreetype.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libfreetype.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libsrt.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libsrt.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libzvbi.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libzvbi.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libplacebo.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libplacebo.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libdav1d.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libdav1d.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/lcms2.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/lcms2.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libshaderc_combined.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/libshaderc_combined.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/MoltenVK.xcframework/macos-arm64_x86_64 -Xcc -I -Xcc /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/MoltenVK.xcframework/macos-arm64_x86_64 -I /Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/Modules -minimum-access-level public -skip-inherited-docs -emit-extension-block-symbols -output-dir /Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/extracted-symbols/spi-builder-workspace/KSPlayer output:\n    <module-includes>:4:9: note: in file included from <module-includes>:4:\n    #import \"/Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/FFmpegKit/include/avformat_shim.h\"\n            ^\n    /Users/admin/builder/spi-builder-workspace/.build/checkouts/FFmpegKit/Sources/FFmpegKit/include/avformat_shim.h:4:9: error: \'Libavformat/avformat.h\' file not found\n    #import <Libavformat/avformat.h>\n            ^\n    <unknown>:0: error: could not build Objective-C module \'FFmpegKit\'\n    Error: Failed to load the module \'KSPlayer\'. Are you missing build dependencies or include/framework directories?\n    See the previous error messages for details. Aborting.\n    ")
Error while generating docs: retryLimitExceeded(lastError: Optional(Shell command failed:
    env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift package --allow-writing-to-directory .docs/kingslay/ksplayer/2.3.4 generate-documentation --emit-digest --disable-indexing --output-path .docs/kingslay/ksplayer/2.3.4 --hosting-base-path kingslay/ksplayer/2.3.4 --source-service github --source-service-base-url https://github.com/kingslay/KSPlayer/blob/2.3.4 --checkout-path $PWD --target KSPlayer))
✅  Doc result (failed) reported
Done.