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.0 for macOS (SPM) on 20 Feb 2025 16:43:41 UTC.

Swift 6 data race errors: 135

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.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: convert 'audioPlayerType' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'audioPlayerType' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'videoPlayerType' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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/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/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: annotate 'isClearVideoWhereReplace' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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/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: annotate 'onceInitial' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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/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: annotate 'stackSize' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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/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/Subtitle/KSSubtitle.swift:290:23: warning: static property 'audioRecognizes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
288 |     public static var textItalic = false
289 |     public static var textPosition = TextPosition()
290 |     public static var audioRecognizes = [any AudioRecognize]()
    |                       |- warning: static property 'audioRecognizes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'audioRecognizes' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'audioRecognizes' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
291 |     private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
292 |     @Published
/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/AVPlayer/KSOptions.swift:479:16: warning: static property 'preferredFrame' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
477 |     static var isPipPopViewController = false
478 |     static var canStartPictureInPictureAutomaticallyFromInline = true
479 |     static var preferredFrame = true
    |                |- warning: static property 'preferredFrame' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'preferredFrame' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'preferredFrame' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
480 |     static var useSystemHTTPProxy = true
481 |     /// 日志级别
/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 protocol requirement; this is an error in the Swift 6 language mode
 17 |
 18 | public protocol VideoOutput: FrameOutput {
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
    |         `- note: '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 protocol requirement; 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 protocol requirement; 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: '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 protocol requirement; 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 protocol requirement; 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: '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 protocol requirement; 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 protocol requirement; 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: '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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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: 'renderSource' declared here
 65 |
 66 | public protocol FrameOutput: AnyObject {
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
    |         `- note: '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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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/Metal/MetalRender.swift:15:16: warning: static property 'device' is not concurrency-safe because non-'Sendable' type 'any MTLDevice' may have shared mutable state; this is an error in the Swift 6 language mode
 13 |
 14 | class MetalRender {
 15 |     static let device = MTLCreateSystemDefaultDevice()!
    |                `- warning: static property 'device' is not concurrency-safe because non-'Sendable' type 'any MTLDevice' may have shared mutable state; this is an error in the Swift 6 language mode
 16 |     static let library: MTLLibrary = {
 17 |         var library: MTLLibrary!
Metal.MTLDevice:2:17: note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
  1 | @available(macOS 10.11, *)
  2 | public protocol MTLDevice : NSObjectProtocol {
    |                 `- note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
  3 |     var name: String { get }
  4 |     @available(macOS 10.13, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
  8 | import CoreVideo
  9 | import Foundation
 10 | import Metal
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
 11 | import QuartzCore
 12 | import simd
 13 |
 14 | class MetalRender {
 15 |     static let device = MTLCreateSystemDefaultDevice()!
    |                |- note: annotate 'device' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 16 |     static let library: MTLLibrary = {
 17 |         var library: MTLLibrary!
/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 |         }
ObjectiveC.NSObject:2:12: note: class 'NSObject' does not conform to the 'Sendable' protocol
  1 | @available(macOS 10.0, *)
  2 | open class NSObject : NSObjectProtocol {
    |            `- note: class 'NSObject' does not conform to the 'Sendable' protocol
  3 |     open class func load()
  4 |     open class func initialize()
/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: annotate 'enableSensor' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: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: annotate 'yadifMode' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'deInterlaceAddIdet' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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:44:26: note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
 42 |     open func didAddSubview(_ subview: NSView)
 43 |     open func willRemoveSubview(_ subview: NSView)
 44 |     @MainActor open func removeFromSuperview()
    |                          `- note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
 45 |     open func replaceSubview(_ oldView: NSView, with newView: NSView)
 46 |     open func removeFromSuperviewWithoutNeedingDisplay()
/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 protocol requirement; 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 protocol requirement; 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: 'contentMode' declared here
 81 |     var playbackRate: Float { get set }
 82 |     var playbackVolume: Float { get set }
 83 |     var contentMode: UIViewContentMode { get set }
    |         `- note: '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 protocol requirement; 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 protocol requirement; 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: 'naturalSize' declared here
 17 |     var duration: TimeInterval { get }
 18 |     var fileSize: Double { get }
 19 |     var naturalSize: CGSize { get }
    |         `- note: '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/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: annotate 'audioPlayerType' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'videoPlayerType' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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/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/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: annotate 'isClearVideoWhereReplace' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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/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: annotate 'onceInitial' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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/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: annotate 'stackSize' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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/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/Subtitle/KSSubtitle.swift:290:23: warning: static property 'audioRecognizes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
288 |     public static var textItalic = false
289 |     public static var textPosition = TextPosition()
290 |     public static var audioRecognizes = [any AudioRecognize]()
    |                       |- warning: static property 'audioRecognizes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'audioRecognizes' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'audioRecognizes' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
291 |     private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
292 |     @Published
/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/AVPlayer/KSOptions.swift:479:16: warning: static property 'preferredFrame' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
477 |     static var isPipPopViewController = false
478 |     static var canStartPictureInPictureAutomaticallyFromInline = true
479 |     static var preferredFrame = true
    |                |- warning: static property 'preferredFrame' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'preferredFrame' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'preferredFrame' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
480 |     static var useSystemHTTPProxy = true
481 |     /// 日志级别
/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 protocol requirement; this is an error in the Swift 6 language mode
 17 |
 18 | public protocol VideoOutput: FrameOutput {
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
    |         `- note: '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 protocol requirement; 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 protocol requirement; 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: '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 protocol requirement; 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 protocol requirement; 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: '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 protocol requirement; 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 protocol requirement; 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: '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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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: 'renderSource' declared here
 65 |
 66 | public protocol FrameOutput: AnyObject {
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
    |         `- note: '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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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/Metal/MetalRender.swift:15:16: warning: static property 'device' is not concurrency-safe because non-'Sendable' type 'any MTLDevice' may have shared mutable state; this is an error in the Swift 6 language mode
 13 |
 14 | class MetalRender {
 15 |     static let device = MTLCreateSystemDefaultDevice()!
    |                `- warning: static property 'device' is not concurrency-safe because non-'Sendable' type 'any MTLDevice' may have shared mutable state; this is an error in the Swift 6 language mode
 16 |     static let library: MTLLibrary = {
 17 |         var library: MTLLibrary!
Metal.MTLDevice:2:17: note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
  1 | @available(macOS 10.11, *)
  2 | public protocol MTLDevice : NSObjectProtocol {
    |                 `- note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
  3 |     var name: String { get }
  4 |     @available(macOS 10.13, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
  8 | import CoreVideo
  9 | import Foundation
 10 | import Metal
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
 11 | import QuartzCore
 12 | import simd
 13 |
 14 | class MetalRender {
 15 |     static let device = MTLCreateSystemDefaultDevice()!
    |                |- note: annotate 'device' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 16 |     static let library: MTLLibrary = {
 17 |         var library: MTLLibrary!
/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 |         }
ObjectiveC.NSObject:2:12: note: class 'NSObject' does not conform to the 'Sendable' protocol
  1 | @available(macOS 10.0, *)
  2 | open class NSObject : NSObjectProtocol {
    |            `- note: class 'NSObject' does not conform to the 'Sendable' protocol
  3 |     open class func load()
  4 |     open class func initialize()
/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: annotate 'enableSensor' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: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: annotate 'yadifMode' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'deInterlaceAddIdet' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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:44:26: note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
 42 |     open func didAddSubview(_ subview: NSView)
 43 |     open func willRemoveSubview(_ subview: NSView)
 44 |     @MainActor open func removeFromSuperview()
    |                          `- note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
 45 |     open func replaceSubview(_ oldView: NSView, with newView: NSView)
 46 |     open func removeFromSuperviewWithoutNeedingDisplay()
/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 protocol requirement; 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 protocol requirement; 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: 'contentMode' declared here
 81 |     var playbackRate: Float { get set }
 82 |     var playbackVolume: Float { get set }
 83 |     var contentMode: UIViewContentMode { get set }
    |         `- note: '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 protocol requirement; 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 protocol requirement; 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: 'naturalSize' declared here
 17 |     var duration: TimeInterval { get }
 18 |     var fileSize: Double { get }
 19 |     var naturalSize: CGSize { get }
    |         `- note: '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/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: annotate 'audioPlayerType' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'videoPlayerType' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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/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/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: annotate 'isClearVideoWhereReplace' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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/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: annotate 'onceInitial' with '@MainActor' if property should only be accessed from the main actor
    |                        `- 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/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: annotate 'stackSize' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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/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/Subtitle/KSSubtitle.swift:290:23: warning: static property 'audioRecognizes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
288 |     public static var textItalic = false
289 |     public static var textPosition = TextPosition()
290 |     public static var audioRecognizes = [any AudioRecognize]()
    |                       |- warning: static property 'audioRecognizes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'audioRecognizes' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'audioRecognizes' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
291 |     private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
292 |     @Published
/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/AVPlayer/KSOptions.swift:479:16: warning: static property 'preferredFrame' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
477 |     static var isPipPopViewController = false
478 |     static var canStartPictureInPictureAutomaticallyFromInline = true
479 |     static var preferredFrame = true
    |                |- warning: static property 'preferredFrame' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: convert 'preferredFrame' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'preferredFrame' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
480 |     static var useSystemHTTPProxy = true
481 |     /// 日志级别
/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 protocol requirement; this is an error in the Swift 6 language mode
 17 |
 18 | public protocol VideoOutput: FrameOutput {
 19 |     var displayLayerDelegate: DisplayLayerDelegate? { get set }
    |         `- note: '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 protocol requirement; 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 protocol requirement; 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: '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 protocol requirement; 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 protocol requirement; 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: '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 protocol requirement; 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 protocol requirement; 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: '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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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: 'renderSource' declared here
 65 |
 66 | public protocol FrameOutput: AnyObject {
 67 |     var renderSource: OutputRenderSourceDelegate? { get set }
    |         `- note: '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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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 protocol requirement; 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/Metal/MetalRender.swift:15:16: warning: static property 'device' is not concurrency-safe because non-'Sendable' type 'any MTLDevice' may have shared mutable state; this is an error in the Swift 6 language mode
 13 |
 14 | class MetalRender {
 15 |     static let device = MTLCreateSystemDefaultDevice()!
    |                `- warning: static property 'device' is not concurrency-safe because non-'Sendable' type 'any MTLDevice' may have shared mutable state; this is an error in the Swift 6 language mode
 16 |     static let library: MTLLibrary = {
 17 |         var library: MTLLibrary!
Metal.MTLDevice:2:17: note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
  1 | @available(macOS 10.11, *)
  2 | public protocol MTLDevice : NSObjectProtocol {
    |                 `- note: protocol 'MTLDevice' does not conform to the 'Sendable' protocol
  3 |     var name: String { get }
  4 |     @available(macOS 10.13, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/MetalRender.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
  8 | import CoreVideo
  9 | import Foundation
 10 | import Metal
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Metal'
 11 | import QuartzCore
 12 | import simd
 13 |
 14 | class MetalRender {
 15 |     static let device = MTLCreateSystemDefaultDevice()!
    |                |- note: annotate 'device' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 16 |     static let library: MTLLibrary = {
 17 |         var library: MTLLibrary!
/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 |         }
ObjectiveC.NSObject:2:12: note: class 'NSObject' does not conform to the 'Sendable' protocol
  1 | @available(macOS 10.0, *)
  2 | open class NSObject : NSObjectProtocol {
    |            `- note: class 'NSObject' does not conform to the 'Sendable' protocol
  3 |     open class func load()
  4 |     open class func initialize()
/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: annotate 'enableSensor' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: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: annotate 'yadifMode' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'deInterlaceAddIdet' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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: annotate 'defaultValue' with '@MainActor' if property should only be accessed from the main actor
    |                `- 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 BrightnessVolume.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/BrightnessVolume.swift:16:30: warning: unknown operating system for build configuration 'os'
 14 |     public var progressView: BrightnessVolumeViewProtocol & UIView = ProgressView()
 15 |     init() {
 16 |         #if !os(tvOS) && !os(xrOS)
    |                              |- warning: unknown operating system for build configuration 'os'
    |                              |- note: did you mean 'tvOS'?
    |                              `- note: did you mean 'iOS'?
 17 |         brightnessObservation = UIScreen.main.observe(\.brightness, options: .new) { [weak self] _, change in
 18 |             if let self, let value = change.newValue {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:25:13: warning: unknown operating system for build configuration 'os'
 23 |     public var backButton = UIButton()
 24 |     public var airplayStatusView: UIView = AirplayStatusView()
 25 |     #if !os(xrOS)
    |             |- warning: unknown operating system for build configuration 'os'
    |             |- note: did you mean 'tvOS'?
    |             `- note: did you mean 'iOS'?
 26 |     public var routeButton = AVRoutePickerView()
 27 |     #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:38:13: warning: unknown operating system for build configuration 'os'
 36 |     }
 37 |
 38 |     #if !os(xrOS)
    |             |- warning: unknown operating system for build configuration 'os'
    |             |- note: did you mean 'tvOS'?
    |             `- note: did you mean 'iOS'?
 39 |     private var brightness: CGFloat = UIScreen.main.brightness {
 40 |         didSet {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:88:17: warning: unknown operating system for build configuration 'os'
 86 |             airplayStatusView.centerYAnchor.constraint(equalTo: centerYAnchor),
 87 |         ])
 88 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
 89 |         routeButton.isHidden = true
 90 |         navigationBar.addArrangedSubview(routeButton)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:104:17: warning: unknown operating system for build configuration 'os'
102 |         maskImageView.image = nil
103 |         panGesture.isEnabled = false
104 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
105 |         routeButton.isHidden = !routeDetector.multipleRoutesDetected
106 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:265:25: warning: unknown operating system for build configuration 'os'
263 |                 }
264 |             } else if KSOptions.enableBrightnessGestures {
265 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
266 |                 brightness += CGFloat(panValue(velocity: point, direction: direction, currentTime: Float(toolBar.currentTime), totalTime: Float(totalTime)))
267 |                 #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:309:17: warning: unknown operating system for build configuration 'os'
307 |
308 |     @objc private func routesAvailableDidChange(notification _: Notification) {
309 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
310 |         routeButton.isHidden = !routeDetector.multipleRoutesDetected
311 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:194:10: warning: main actor-isolated instance method 'startAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
191 | }
192 |
193 | extension UIActivityIndicatorView: LoadingIndector {
    |                                    `- note: add '@preconcurrency' to the 'LoadingIndector' conformance to defer isolation checking to run time
194 |     func startAnimating() {
    |          |- warning: main actor-isolated instance method 'startAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |          `- note: add 'nonisolated' to 'startAnimating()' to make this instance method not isolated to the actor
195 |         loadingView.backingLayer?.position = CGPoint(x: loadingView.layer!.frame.midX, y: loadingView.layer!.frame.midY)
196 |         loadingView.backingLayer?.anchorPoint = CGPoint(x: 0.5, y: 0.5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:24:10: note: mark the protocol requirement 'startAnimating()' 'async' to allow actor-isolated conformances
  22 |
  23 | public protocol LoadingIndector {
  24 |     func startAnimating()
     |          `- note: mark the protocol requirement 'startAnimating()' 'async' to allow actor-isolated conformances
  25 |     func stopAnimating()
  26 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:205:10: warning: main actor-isolated instance method 'stopAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
203 |     }
204 |
205 |     func stopAnimating() {
    |          |- warning: main actor-isolated instance method 'stopAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |          `- note: add 'nonisolated' to 'stopAnimating()' to make this instance method not isolated to the actor
206 |         loadingView.backingLayer?.removeAnimation(forKey: "loading")
207 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:25:10: note: mark the protocol requirement 'stopAnimating()' 'async' to allow actor-isolated conformances
  23 | public protocol LoadingIndector {
  24 |     func startAnimating()
  25 |     func stopAnimating()
     |          `- note: mark the protocol requirement 'stopAnimating()' 'async' to allow actor-isolated conformances
  26 | }
  27 |
/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: annotate 'enableVolumeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
[58/61] Compiling KSPlayer IOSVideoPlayerView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/BrightnessVolume.swift:16:30: warning: unknown operating system for build configuration 'os'
 14 |     public var progressView: BrightnessVolumeViewProtocol & UIView = ProgressView()
 15 |     init() {
 16 |         #if !os(tvOS) && !os(xrOS)
    |                              |- warning: unknown operating system for build configuration 'os'
    |                              |- note: did you mean 'tvOS'?
    |                              `- note: did you mean 'iOS'?
 17 |         brightnessObservation = UIScreen.main.observe(\.brightness, options: .new) { [weak self] _, change in
 18 |             if let self, let value = change.newValue {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:25:13: warning: unknown operating system for build configuration 'os'
 23 |     public var backButton = UIButton()
 24 |     public var airplayStatusView: UIView = AirplayStatusView()
 25 |     #if !os(xrOS)
    |             |- warning: unknown operating system for build configuration 'os'
    |             |- note: did you mean 'tvOS'?
    |             `- note: did you mean 'iOS'?
 26 |     public var routeButton = AVRoutePickerView()
 27 |     #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:38:13: warning: unknown operating system for build configuration 'os'
 36 |     }
 37 |
 38 |     #if !os(xrOS)
    |             |- warning: unknown operating system for build configuration 'os'
    |             |- note: did you mean 'tvOS'?
    |             `- note: did you mean 'iOS'?
 39 |     private var brightness: CGFloat = UIScreen.main.brightness {
 40 |         didSet {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:88:17: warning: unknown operating system for build configuration 'os'
 86 |             airplayStatusView.centerYAnchor.constraint(equalTo: centerYAnchor),
 87 |         ])
 88 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
 89 |         routeButton.isHidden = true
 90 |         navigationBar.addArrangedSubview(routeButton)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:104:17: warning: unknown operating system for build configuration 'os'
102 |         maskImageView.image = nil
103 |         panGesture.isEnabled = false
104 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
105 |         routeButton.isHidden = !routeDetector.multipleRoutesDetected
106 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:265:25: warning: unknown operating system for build configuration 'os'
263 |                 }
264 |             } else if KSOptions.enableBrightnessGestures {
265 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
266 |                 brightness += CGFloat(panValue(velocity: point, direction: direction, currentTime: Float(toolBar.currentTime), totalTime: Float(totalTime)))
267 |                 #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:309:17: warning: unknown operating system for build configuration 'os'
307 |
308 |     @objc private func routesAvailableDidChange(notification _: Notification) {
309 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
310 |         routeButton.isHidden = !routeDetector.multipleRoutesDetected
311 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:194:10: warning: main actor-isolated instance method 'startAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
191 | }
192 |
193 | extension UIActivityIndicatorView: LoadingIndector {
    |                                    `- note: add '@preconcurrency' to the 'LoadingIndector' conformance to defer isolation checking to run time
194 |     func startAnimating() {
    |          |- warning: main actor-isolated instance method 'startAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |          `- note: add 'nonisolated' to 'startAnimating()' to make this instance method not isolated to the actor
195 |         loadingView.backingLayer?.position = CGPoint(x: loadingView.layer!.frame.midX, y: loadingView.layer!.frame.midY)
196 |         loadingView.backingLayer?.anchorPoint = CGPoint(x: 0.5, y: 0.5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:24:10: note: mark the protocol requirement 'startAnimating()' 'async' to allow actor-isolated conformances
  22 |
  23 | public protocol LoadingIndector {
  24 |     func startAnimating()
     |          `- note: mark the protocol requirement 'startAnimating()' 'async' to allow actor-isolated conformances
  25 |     func stopAnimating()
  26 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:205:10: warning: main actor-isolated instance method 'stopAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
203 |     }
204 |
205 |     func stopAnimating() {
    |          |- warning: main actor-isolated instance method 'stopAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |          `- note: add 'nonisolated' to 'stopAnimating()' to make this instance method not isolated to the actor
206 |         loadingView.backingLayer?.removeAnimation(forKey: "loading")
207 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:25:10: note: mark the protocol requirement 'stopAnimating()' 'async' to allow actor-isolated conformances
  23 | public protocol LoadingIndector {
  24 |     func startAnimating()
  25 |     func stopAnimating()
     |          `- note: mark the protocol requirement 'stopAnimating()' 'async' to allow actor-isolated conformances
  26 | }
  27 |
/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: annotate 'enableVolumeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
[59/61] Compiling KSPlayer KSMenu.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/BrightnessVolume.swift:16:30: warning: unknown operating system for build configuration 'os'
 14 |     public var progressView: BrightnessVolumeViewProtocol & UIView = ProgressView()
 15 |     init() {
 16 |         #if !os(tvOS) && !os(xrOS)
    |                              |- warning: unknown operating system for build configuration 'os'
    |                              |- note: did you mean 'tvOS'?
    |                              `- note: did you mean 'iOS'?
 17 |         brightnessObservation = UIScreen.main.observe(\.brightness, options: .new) { [weak self] _, change in
 18 |             if let self, let value = change.newValue {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:25:13: warning: unknown operating system for build configuration 'os'
 23 |     public var backButton = UIButton()
 24 |     public var airplayStatusView: UIView = AirplayStatusView()
 25 |     #if !os(xrOS)
    |             |- warning: unknown operating system for build configuration 'os'
    |             |- note: did you mean 'tvOS'?
    |             `- note: did you mean 'iOS'?
 26 |     public var routeButton = AVRoutePickerView()
 27 |     #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:38:13: warning: unknown operating system for build configuration 'os'
 36 |     }
 37 |
 38 |     #if !os(xrOS)
    |             |- warning: unknown operating system for build configuration 'os'
    |             |- note: did you mean 'tvOS'?
    |             `- note: did you mean 'iOS'?
 39 |     private var brightness: CGFloat = UIScreen.main.brightness {
 40 |         didSet {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:88:17: warning: unknown operating system for build configuration 'os'
 86 |             airplayStatusView.centerYAnchor.constraint(equalTo: centerYAnchor),
 87 |         ])
 88 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
 89 |         routeButton.isHidden = true
 90 |         navigationBar.addArrangedSubview(routeButton)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:104:17: warning: unknown operating system for build configuration 'os'
102 |         maskImageView.image = nil
103 |         panGesture.isEnabled = false
104 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
105 |         routeButton.isHidden = !routeDetector.multipleRoutesDetected
106 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:265:25: warning: unknown operating system for build configuration 'os'
263 |                 }
264 |             } else if KSOptions.enableBrightnessGestures {
265 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
266 |                 brightness += CGFloat(panValue(velocity: point, direction: direction, currentTime: Float(toolBar.currentTime), totalTime: Float(totalTime)))
267 |                 #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:309:17: warning: unknown operating system for build configuration 'os'
307 |
308 |     @objc private func routesAvailableDidChange(notification _: Notification) {
309 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
310 |         routeButton.isHidden = !routeDetector.multipleRoutesDetected
311 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:194:10: warning: main actor-isolated instance method 'startAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
191 | }
192 |
193 | extension UIActivityIndicatorView: LoadingIndector {
    |                                    `- note: add '@preconcurrency' to the 'LoadingIndector' conformance to defer isolation checking to run time
194 |     func startAnimating() {
    |          |- warning: main actor-isolated instance method 'startAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |          `- note: add 'nonisolated' to 'startAnimating()' to make this instance method not isolated to the actor
195 |         loadingView.backingLayer?.position = CGPoint(x: loadingView.layer!.frame.midX, y: loadingView.layer!.frame.midY)
196 |         loadingView.backingLayer?.anchorPoint = CGPoint(x: 0.5, y: 0.5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:24:10: note: mark the protocol requirement 'startAnimating()' 'async' to allow actor-isolated conformances
  22 |
  23 | public protocol LoadingIndector {
  24 |     func startAnimating()
     |          `- note: mark the protocol requirement 'startAnimating()' 'async' to allow actor-isolated conformances
  25 |     func stopAnimating()
  26 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:205:10: warning: main actor-isolated instance method 'stopAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
203 |     }
204 |
205 |     func stopAnimating() {
    |          |- warning: main actor-isolated instance method 'stopAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |          `- note: add 'nonisolated' to 'stopAnimating()' to make this instance method not isolated to the actor
206 |         loadingView.backingLayer?.removeAnimation(forKey: "loading")
207 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:25:10: note: mark the protocol requirement 'stopAnimating()' 'async' to allow actor-isolated conformances
  23 | public protocol LoadingIndector {
  24 |     func startAnimating()
  25 |     func stopAnimating()
     |          `- note: mark the protocol requirement 'stopAnimating()' 'async' to allow actor-isolated conformances
  26 | }
  27 |
/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: annotate 'enableVolumeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
[60/61] Compiling KSPlayer KSPlayerItem.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/BrightnessVolume.swift:16:30: warning: unknown operating system for build configuration 'os'
 14 |     public var progressView: BrightnessVolumeViewProtocol & UIView = ProgressView()
 15 |     init() {
 16 |         #if !os(tvOS) && !os(xrOS)
    |                              |- warning: unknown operating system for build configuration 'os'
    |                              |- note: did you mean 'tvOS'?
    |                              `- note: did you mean 'iOS'?
 17 |         brightnessObservation = UIScreen.main.observe(\.brightness, options: .new) { [weak self] _, change in
 18 |             if let self, let value = change.newValue {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:25:13: warning: unknown operating system for build configuration 'os'
 23 |     public var backButton = UIButton()
 24 |     public var airplayStatusView: UIView = AirplayStatusView()
 25 |     #if !os(xrOS)
    |             |- warning: unknown operating system for build configuration 'os'
    |             |- note: did you mean 'tvOS'?
    |             `- note: did you mean 'iOS'?
 26 |     public var routeButton = AVRoutePickerView()
 27 |     #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:38:13: warning: unknown operating system for build configuration 'os'
 36 |     }
 37 |
 38 |     #if !os(xrOS)
    |             |- warning: unknown operating system for build configuration 'os'
    |             |- note: did you mean 'tvOS'?
    |             `- note: did you mean 'iOS'?
 39 |     private var brightness: CGFloat = UIScreen.main.brightness {
 40 |         didSet {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:88:17: warning: unknown operating system for build configuration 'os'
 86 |             airplayStatusView.centerYAnchor.constraint(equalTo: centerYAnchor),
 87 |         ])
 88 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
 89 |         routeButton.isHidden = true
 90 |         navigationBar.addArrangedSubview(routeButton)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:104:17: warning: unknown operating system for build configuration 'os'
102 |         maskImageView.image = nil
103 |         panGesture.isEnabled = false
104 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
105 |         routeButton.isHidden = !routeDetector.multipleRoutesDetected
106 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:265:25: warning: unknown operating system for build configuration 'os'
263 |                 }
264 |             } else if KSOptions.enableBrightnessGestures {
265 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
266 |                 brightness += CGFloat(panValue(velocity: point, direction: direction, currentTime: Float(toolBar.currentTime), totalTime: Float(totalTime)))
267 |                 #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:309:17: warning: unknown operating system for build configuration 'os'
307 |
308 |     @objc private func routesAvailableDidChange(notification _: Notification) {
309 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
310 |         routeButton.isHidden = !routeDetector.multipleRoutesDetected
311 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:194:10: warning: main actor-isolated instance method 'startAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
191 | }
192 |
193 | extension UIActivityIndicatorView: LoadingIndector {
    |                                    `- note: add '@preconcurrency' to the 'LoadingIndector' conformance to defer isolation checking to run time
194 |     func startAnimating() {
    |          |- warning: main actor-isolated instance method 'startAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |          `- note: add 'nonisolated' to 'startAnimating()' to make this instance method not isolated to the actor
195 |         loadingView.backingLayer?.position = CGPoint(x: loadingView.layer!.frame.midX, y: loadingView.layer!.frame.midY)
196 |         loadingView.backingLayer?.anchorPoint = CGPoint(x: 0.5, y: 0.5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:24:10: note: mark the protocol requirement 'startAnimating()' 'async' to allow actor-isolated conformances
  22 |
  23 | public protocol LoadingIndector {
  24 |     func startAnimating()
     |          `- note: mark the protocol requirement 'startAnimating()' 'async' to allow actor-isolated conformances
  25 |     func stopAnimating()
  26 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:205:10: warning: main actor-isolated instance method 'stopAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
203 |     }
204 |
205 |     func stopAnimating() {
    |          |- warning: main actor-isolated instance method 'stopAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |          `- note: add 'nonisolated' to 'stopAnimating()' to make this instance method not isolated to the actor
206 |         loadingView.backingLayer?.removeAnimation(forKey: "loading")
207 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:25:10: note: mark the protocol requirement 'stopAnimating()' 'async' to allow actor-isolated conformances
  23 | public protocol LoadingIndector {
  24 |     func startAnimating()
  25 |     func stopAnimating()
     |          `- note: mark the protocol requirement 'stopAnimating()' 'async' to allow actor-isolated conformances
  26 | }
  27 |
/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: annotate 'enableVolumeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
[61/61] Compiling KSPlayer MacVideoPlayerView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/BrightnessVolume.swift:16:30: warning: unknown operating system for build configuration 'os'
 14 |     public var progressView: BrightnessVolumeViewProtocol & UIView = ProgressView()
 15 |     init() {
 16 |         #if !os(tvOS) && !os(xrOS)
    |                              |- warning: unknown operating system for build configuration 'os'
    |                              |- note: did you mean 'tvOS'?
    |                              `- note: did you mean 'iOS'?
 17 |         brightnessObservation = UIScreen.main.observe(\.brightness, options: .new) { [weak self] _, change in
 18 |             if let self, let value = change.newValue {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:25:13: warning: unknown operating system for build configuration 'os'
 23 |     public var backButton = UIButton()
 24 |     public var airplayStatusView: UIView = AirplayStatusView()
 25 |     #if !os(xrOS)
    |             |- warning: unknown operating system for build configuration 'os'
    |             |- note: did you mean 'tvOS'?
    |             `- note: did you mean 'iOS'?
 26 |     public var routeButton = AVRoutePickerView()
 27 |     #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:38:13: warning: unknown operating system for build configuration 'os'
 36 |     }
 37 |
 38 |     #if !os(xrOS)
    |             |- warning: unknown operating system for build configuration 'os'
    |             |- note: did you mean 'tvOS'?
    |             `- note: did you mean 'iOS'?
 39 |     private var brightness: CGFloat = UIScreen.main.brightness {
 40 |         didSet {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:88:17: warning: unknown operating system for build configuration 'os'
 86 |             airplayStatusView.centerYAnchor.constraint(equalTo: centerYAnchor),
 87 |         ])
 88 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
 89 |         routeButton.isHidden = true
 90 |         navigationBar.addArrangedSubview(routeButton)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:104:17: warning: unknown operating system for build configuration 'os'
102 |         maskImageView.image = nil
103 |         panGesture.isEnabled = false
104 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
105 |         routeButton.isHidden = !routeDetector.multipleRoutesDetected
106 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:265:25: warning: unknown operating system for build configuration 'os'
263 |                 }
264 |             } else if KSOptions.enableBrightnessGestures {
265 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
266 |                 brightness += CGFloat(panValue(velocity: point, direction: direction, currentTime: Float(toolBar.currentTime), totalTime: Float(totalTime)))
267 |                 #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/IOSVideoPlayerView.swift:309:17: warning: unknown operating system for build configuration 'os'
307 |
308 |     @objc private func routesAvailableDidChange(notification _: Notification) {
309 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
310 |         routeButton.isHidden = !routeDetector.multipleRoutesDetected
311 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:194:10: warning: main actor-isolated instance method 'startAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
191 | }
192 |
193 | extension UIActivityIndicatorView: LoadingIndector {
    |                                    `- note: add '@preconcurrency' to the 'LoadingIndector' conformance to defer isolation checking to run time
194 |     func startAnimating() {
    |          |- warning: main actor-isolated instance method 'startAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |          `- note: add 'nonisolated' to 'startAnimating()' to make this instance method not isolated to the actor
195 |         loadingView.backingLayer?.position = CGPoint(x: loadingView.layer!.frame.midX, y: loadingView.layer!.frame.midY)
196 |         loadingView.backingLayer?.anchorPoint = CGPoint(x: 0.5, y: 0.5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:24:10: note: mark the protocol requirement 'startAnimating()' 'async' to allow actor-isolated conformances
  22 |
  23 | public protocol LoadingIndector {
  24 |     func startAnimating()
     |          `- note: mark the protocol requirement 'startAnimating()' 'async' to allow actor-isolated conformances
  25 |     func stopAnimating()
  26 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/MacVideoPlayerView.swift:205:10: warning: main actor-isolated instance method 'stopAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
203 |     }
204 |
205 |     func stopAnimating() {
    |          |- warning: main actor-isolated instance method 'stopAnimating()' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |          `- note: add 'nonisolated' to 'stopAnimating()' to make this instance method not isolated to the actor
206 |         loadingView.backingLayer?.removeAnimation(forKey: "loading")
207 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:25:10: note: mark the protocol requirement 'stopAnimating()' 'async' to allow actor-isolated conformances
  23 | public protocol LoadingIndector {
  24 |     func startAnimating()
  25 |     func stopAnimating()
     |          `- note: mark the protocol requirement 'stopAnimating()' 'async' to allow actor-isolated conformances
  26 | }
  27 |
/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: annotate 'enableVolumeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
Build of target: 'KSPlayer' complete! (3.20s)
error: unspecified("terminated(1): /Applications/Xcode-16.2.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-symbolgraph-extract -sdk /Applications/Xcode-16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk -F /Applications/Xcode-16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -I /Applications/Xcode-16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -L /Applications/Xcode-16.2.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/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 -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 -I /Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/Modules -module-name KSPlayer -target arm64-apple-macosx10.15 -module-cache-path /Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/ModuleCache -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
Building for debugging...
[0/3] Write swift-version-5BDAB9E9C0126B9D.txt
Build of product 'snippet-extract' complete! (0.19s)
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-5BDAB9E9C0126B9D.txt
Build of target: 'KSPlayer' complete! (0.47s)
error: unspecified("terminated(1): /Applications/Xcode-16.2.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-symbolgraph-extract -sdk /Applications/Xcode-16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk -F /Applications/Xcode-16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -I /Applications/Xcode-16.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -L /Applications/Xcode-16.2.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/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 -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 -I /Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/Modules -module-name KSPlayer -target arm64-apple-macosx10.15 -module-cache-path /Users/admin/builder/spi-builder-workspace/.build/arm64-apple-macosx/debug/ModuleCache -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.2.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.