The Swift Package Index logo.Swift Package Index

Build Information

Successful build of KSPlayer, reference 2.3.4 (bdfa2d), with Swift 6.4 for iOS using Xcode 27.0 on 21 Sep 2026 22:02:45 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun xcodebuild -IDEClonedSourcePackagesDirPathOverride=$PWD/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath $PWD/.derivedData build -scheme KSPlayer -destination generic/platform=iOS

Build Log

355 |         }
356 |         bufferEmptyObservation = playerItem.observe(\.isPlaybackBufferEmpty, changeHandler: changeHandler)
357 |         likelyToKeepUpObservation = playerItem.observe(\.isPlaybackLikelyToKeepUp, changeHandler: changeHandler)
    |                                                                                                   `- warning: converting non-Sendable function value to '@Sendable (AVPlayerItem, NSKeyValueObservedChange<Bool>) -> Void' may introduce data races
358 |         bufferFullObservation = playerItem.observe(\.isPlaybackBufferFull, changeHandler: changeHandler)
359 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:358:91: warning: converting non-Sendable function value to '@Sendable (AVPlayerItem, NSKeyValueObservedChange<Bool>) -> Void' may introduce data races
356 |         bufferEmptyObservation = playerItem.observe(\.isPlaybackBufferEmpty, changeHandler: changeHandler)
357 |         likelyToKeepUpObservation = playerItem.observe(\.isPlaybackLikelyToKeepUp, changeHandler: changeHandler)
358 |         bufferFullObservation = playerItem.observe(\.isPlaybackBufferFull, changeHandler: changeHandler)
    |                                                                                           `- warning: converting non-Sendable function value to '@Sendable (AVPlayerItem, NSKeyValueObservedChange<Bool>) -> Void' may introduce data races
359 |     }
360 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:339:18: warning: call to main actor-isolated instance method 'updateStatus(item:)' in a synchronous nonisolated context [#ActorIsolatedCall]
246 |     }
247 |
248 |     private func updateStatus(item: AVPlayerItem) {
    |                  `- note: calls to instance method 'updateStatus(item:)' from outside of its actor context are implicitly asynchronous
249 |         if item.status == .readyToPlay {
250 |             options.findTime = CACurrentMediaTime()
    :
337 |         statusObservation = playerItem.observe(\.status) { [weak self] item, _ in
338 |             guard let self else { return }
339 |             self.updateStatus(item: item)
    |                  `- warning: call to main actor-isolated instance method 'updateStatus(item:)' in a synchronous nonisolated context [#ActorIsolatedCall]
340 |         }
341 |         loadedTimeRangesObservation = playerItem.observe(\.loadedTimeRanges) { [weak self] item, _ in
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:344:18: warning: call to main actor-isolated instance method 'updatePlayableDuration(item:)' in a synchronous nonisolated context [#ActorIsolatedCall]
272 |     }
273 |
274 |     private func updatePlayableDuration(item: AVPlayerItem) {
    |                  `- note: calls to instance method 'updatePlayableDuration(item:)' from outside of its actor context are implicitly asynchronous
275 |         let first = item.loadedTimeRanges.first { CMTimeRangeContainsTime($0.timeRangeValue, time: item.currentTime()) }
276 |         if let first {
    :
342 |             guard let self else { return }
343 |             // 计算缓冲进度
344 |             self.updatePlayableDuration(item: item)
    |                  `- warning: call to main actor-isolated instance method 'updatePlayableDuration(item:)' in a synchronous nonisolated context [#ActorIsolatedCall]
345 |         }
346 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:411:13: warning: capture of 'completion' with non-Sendable type '(Bool) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
409 |             guard let self else { return }
410 |             self.shouldSeekTo = 0
411 |             completion(finished)
    |             |- warning: capture of 'completion' with non-Sendable type '(Bool) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
    |             `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
412 |         }
413 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:410:18: warning: main actor-isolated property 'shouldSeekTo' can not be mutated from a Sendable closure
 80 |     private let playerView = KSAVPlayerView()
 81 |     private var urlAsset: AVURLAsset
 82 |     private var shouldSeekTo = TimeInterval(0)
    |                 `- note: mutation of this property is only permitted within the actor
 83 |     private var playerLooper: AVPlayerLooper?
 84 |     private var statusObservation: NSKeyValueObservation?
    :
408 |             [weak self] finished in
409 |             guard let self else { return }
410 |             self.shouldSeekTo = 0
    |                  `- warning: main actor-isolated property 'shouldSeekTo' can not be mutated from a Sendable closure
411 |             completion(finished)
412 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:555:39: warning: treating a forced downcast to 'CMFormatDescription' as optional will never produce 'nil'
553 |         // swiftlint:disable force_cast
554 |         if let first = track.assetTrack?.formatDescriptions.first {
555 |             formatDescription = first as! CMFormatDescription
    |                                 |     | `- note: use 'as?' to perform a conditional downcast to 'CMFormatDescription'
    |                                 |     `- warning: treating a forced downcast to 'CMFormatDescription' as optional will never produce 'nil'
    |                                 `- note: add parentheses around the cast to silence this warning
556 |         } else {
557 |             formatDescription = nil
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:542:25: warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
540 |     init(track: AVPlayerItemTrack) {
541 |         self.track = track
542 |         trackID = track.assetTrack?.trackID ?? 0
    |                         `- warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
543 |         mediaType = track.assetTrack?.mediaType ?? .video
544 |         name = track.assetTrack?.languageCode ?? ""
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: note: property declared here
 43 | 	notification queue.  By default, this queue is the main queue.
 44 | */
 45 | @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
    |                                                         `- note: property declared here
 46 |
 47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:543:27: warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
541 |         self.track = track
542 |         trackID = track.assetTrack?.trackID ?? 0
543 |         mediaType = track.assetTrack?.mediaType ?? .video
    |                           `- warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
544 |         name = track.assetTrack?.languageCode ?? ""
545 |         languageCode = track.assetTrack?.languageCode
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: note: property declared here
 43 | 	notification queue.  By default, this queue is the main queue.
 44 | */
 45 | @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
    |                                                         `- note: property declared here
 46 |
 47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:544:22: warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
542 |         trackID = track.assetTrack?.trackID ?? 0
543 |         mediaType = track.assetTrack?.mediaType ?? .video
544 |         name = track.assetTrack?.languageCode ?? ""
    |                      `- warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
545 |         languageCode = track.assetTrack?.languageCode
546 |         nominalFrameRate = track.assetTrack?.nominalFrameRate ?? 24.0
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: note: property declared here
 43 | 	notification queue.  By default, this queue is the main queue.
 44 | */
 45 | @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
    |                                                         `- note: property declared here
 46 |
 47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:545:30: warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
543 |         mediaType = track.assetTrack?.mediaType ?? .video
544 |         name = track.assetTrack?.languageCode ?? ""
545 |         languageCode = track.assetTrack?.languageCode
    |                              `- warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
546 |         nominalFrameRate = track.assetTrack?.nominalFrameRate ?? 24.0
547 |         bitRate = Int64(track.assetTrack?.estimatedDataRate ?? 0)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: note: property declared here
 43 | 	notification queue.  By default, this queue is the main queue.
 44 | */
 45 | @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
    |                                                         `- note: property declared here
 46 |
 47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:546:34: warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
544 |         name = track.assetTrack?.languageCode ?? ""
545 |         languageCode = track.assetTrack?.languageCode
546 |         nominalFrameRate = track.assetTrack?.nominalFrameRate ?? 24.0
    |                                  `- warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
547 |         bitRate = Int64(track.assetTrack?.estimatedDataRate ?? 0)
548 |         #if os(xrOS)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: note: property declared here
 43 | 	notification queue.  By default, this queue is the main queue.
 44 | */
 45 | @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
    |                                                         `- note: property declared here
 46 |
 47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:547:31: warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
545 |         languageCode = track.assetTrack?.languageCode
546 |         nominalFrameRate = track.assetTrack?.nominalFrameRate ?? 24.0
547 |         bitRate = Int64(track.assetTrack?.estimatedDataRate ?? 0)
    |                               `- warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
548 |         #if os(xrOS)
549 |         isPlayable = false
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: note: property declared here
 43 | 	notification queue.  By default, this queue is the main queue.
 44 | */
 45 | @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
    |                                                         `- note: property declared here
 46 |
 47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:551:28: warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
549 |         isPlayable = false
550 |         #else
551 |         isPlayable = track.assetTrack?.isPlayable ?? false
    |                            `- warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
552 |         #endif
553 |         // swiftlint:disable force_cast
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: note: property declared here
 43 | 	notification queue.  By default, this queue is the main queue.
 44 | */
 45 | @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
    |                                                         `- note: property declared here
 46 |
 47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:554:30: warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
552 |         #endif
553 |         // swiftlint:disable force_cast
554 |         if let first = track.assetTrack?.formatDescriptions.first {
    |                              `- warning: main actor-isolated property 'assetTrack' can not be referenced from a nonisolated context
555 |             formatDescription = first as! CMFormatDescription
556 |         } else {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVPlayerItemTrack.h:45:57: note: property declared here
 43 | 	notification queue.  By default, this queue is the main queue.
 44 | */
 45 | @property (nonatomic, readonly, nullable) AVAssetTrack *assetTrack;
    |                                                         `- note: property declared here
 46 |
 47 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:586:17: warning: capture of 'handler' with non-Sendable type '(CGImage?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
584 |         imageGenerator.generateCGImagesAsynchronously(forTimes: [NSValue(time: currentTime)]) { _, cgImage, _, _, _ in
585 |             if let cgImage {
586 |                 handler(cgImage)
    |                 |- warning: capture of 'handler' with non-Sendable type '(CGImage?) -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
587 |             } else {
588 |                 handler(nil)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:458:16: warning: static property 'firstPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
456 |
457 | public extension KSOptions {
458 |     static var firstPlayerType: MediaPlayerProtocol.Type = KSAVPlayer.self
    |                |- warning: static property 'firstPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'firstPlayerType' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'firstPlayerType' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
459 |     static var secondPlayerType: MediaPlayerProtocol.Type? = KSMEPlayer.self
460 |     /// 最低缓存视频时间
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:459:16: warning: static property 'secondPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
457 | public extension KSOptions {
458 |     static var firstPlayerType: MediaPlayerProtocol.Type = KSAVPlayer.self
459 |     static var secondPlayerType: MediaPlayerProtocol.Type? = KSMEPlayer.self
    |                |- warning: static property 'secondPlayerType' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'secondPlayerType' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'secondPlayerType' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
460 |     /// 最低缓存视频时间
461 |     static var preferredForwardBufferDuration = 3.0
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:461:16: warning: static property 'preferredForwardBufferDuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
459 |     static var secondPlayerType: MediaPlayerProtocol.Type? = KSMEPlayer.self
460 |     /// 最低缓存视频时间
461 |     static var preferredForwardBufferDuration = 3.0
    |                |- warning: static property 'preferredForwardBufferDuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'preferredForwardBufferDuration' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'preferredForwardBufferDuration' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
462 |     /// 最大缓存视频时间
463 |     static var maxBufferDuration = 30.0
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:463:16: warning: static property 'maxBufferDuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
461 |     static var preferredForwardBufferDuration = 3.0
462 |     /// 最大缓存视频时间
463 |     static var maxBufferDuration = 30.0
    |                |- warning: static property 'maxBufferDuration' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'maxBufferDuration' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'maxBufferDuration' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
464 |     /// 是否开启秒开
465 |     static var isSecondOpen = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:465:16: warning: static property 'isSecondOpen' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
463 |     static var maxBufferDuration = 30.0
464 |     /// 是否开启秒开
465 |     static var isSecondOpen = false
    |                |- warning: static property 'isSecondOpen' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'isSecondOpen' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'isSecondOpen' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
466 |     /// 开启精确seek
467 |     static var isAccurateSeek = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:467:16: warning: static property 'isAccurateSeek' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
465 |     static var isSecondOpen = false
466 |     /// 开启精确seek
467 |     static var isAccurateSeek = false
    |                |- warning: static property 'isAccurateSeek' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'isAccurateSeek' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'isAccurateSeek' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
468 |     /// Applies to short videos only
469 |     static var isLoopPlay = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:469:16: warning: static property 'isLoopPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
467 |     static var isAccurateSeek = false
468 |     /// Applies to short videos only
469 |     static var isLoopPlay = false
    |                |- warning: static property 'isLoopPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'isLoopPlay' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'isLoopPlay' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
470 |     /// 是否自动播放,默认true
471 |     static var isAutoPlay = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:471:16: warning: static property 'isAutoPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
469 |     static var isLoopPlay = false
470 |     /// 是否自动播放,默认true
471 |     static var isAutoPlay = true
    |                |- warning: static property 'isAutoPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'isAutoPlay' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'isAutoPlay' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
472 |     /// seek完是否自动播放
473 |     static var isSeekedAutoPlay = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:473:16: warning: static property 'isSeekedAutoPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
471 |     static var isAutoPlay = true
472 |     /// seek完是否自动播放
473 |     static var isSeekedAutoPlay = true
    |                |- warning: static property 'isSeekedAutoPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'isSeekedAutoPlay' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'isSeekedAutoPlay' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
474 |     static var hardwareDecode = true
475 |     // 默认不用自研的硬解,因为有些视频的AVPacket的pts顺序是不对的,只有解码后的AVFrame里面的pts是对的。
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:474:16: warning: static property 'hardwareDecode' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
472 |     /// seek完是否自动播放
473 |     static var isSeekedAutoPlay = true
474 |     static var hardwareDecode = true
    |                |- warning: static property 'hardwareDecode' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'hardwareDecode' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'hardwareDecode' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
475 |     // 默认不用自研的硬解,因为有些视频的AVPacket的pts顺序是不对的,只有解码后的AVFrame里面的pts是对的。
476 |     static var asynchronousDecompression = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:476:16: warning: static property 'asynchronousDecompression' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
474 |     static var hardwareDecode = true
475 |     // 默认不用自研的硬解,因为有些视频的AVPacket的pts顺序是不对的,只有解码后的AVFrame里面的pts是对的。
476 |     static var asynchronousDecompression = false
    |                |- warning: static property 'asynchronousDecompression' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'asynchronousDecompression' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'asynchronousDecompression' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
477 |     static var isPipPopViewController = false
478 |     static var canStartPictureInPictureAutomaticallyFromInline = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:477:16: warning: static property 'isPipPopViewController' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
475 |     // 默认不用自研的硬解,因为有些视频的AVPacket的pts顺序是不对的,只有解码后的AVFrame里面的pts是对的。
476 |     static var asynchronousDecompression = false
477 |     static var isPipPopViewController = false
    |                |- warning: static property 'isPipPopViewController' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'isPipPopViewController' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'isPipPopViewController' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
478 |     static var canStartPictureInPictureAutomaticallyFromInline = true
479 |     static var preferredFrame = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:478:16: warning: static property 'canStartPictureInPictureAutomaticallyFromInline' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
476 |     static var asynchronousDecompression = false
477 |     static var isPipPopViewController = false
478 |     static var canStartPictureInPictureAutomaticallyFromInline = true
    |                |- warning: static property 'canStartPictureInPictureAutomaticallyFromInline' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'canStartPictureInPictureAutomaticallyFromInline' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'canStartPictureInPictureAutomaticallyFromInline' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
479 |     static var preferredFrame = true
480 |     static var useSystemHTTPProxy = true
/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 [#MutableGlobalVariable]
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 [#MutableGlobalVariable]
    |                |- note: convert 'preferredFrame' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'preferredFrame' part of global actor 'MainActor'
    |                `- 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/AVPlayer/KSOptions.swift:480:16: warning: static property 'useSystemHTTPProxy' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
478 |     static var canStartPictureInPictureAutomaticallyFromInline = true
479 |     static var preferredFrame = true
480 |     static var useSystemHTTPProxy = true
    |                |- warning: static property 'useSystemHTTPProxy' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'useSystemHTTPProxy' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'useSystemHTTPProxy' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
481 |     /// 日志级别
482 |     static var logLevel = LogLevel.warning
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:482:16: warning: static property 'logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
480 |     static var useSystemHTTPProxy = true
481 |     /// 日志级别
482 |     static var logLevel = LogLevel.warning
    |                |- warning: static property 'logLevel' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'logLevel' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'logLevel' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
483 |     static var logger: LogHandler = OSLog(lable: "KSPlayer")
484 |     internal static func deviceCpuCount() -> Int {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:483:16: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
481 |     /// 日志级别
482 |     static var logLevel = LogLevel.warning
483 |     static var logger: LogHandler = OSLog(lable: "KSPlayer")
    |                |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
484 |     internal static func deviceCpuCount() -> Int {
485 |         var ncpu = UInt(0)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:317:21: warning: variable 'yadifMode' was never mutated; consider changing to 'let' constant [#VariableNeverMutated]
315 |                 asynchronousDecompression = false
316 |                 let yadif = hardwareDecode ? "yadif_videotoolbox" : "yadif"
317 |                 var yadifMode = KSOptions.yadifMode
    |                     `- warning: variable 'yadifMode' was never mutated; consider changing to 'let' constant [#VariableNeverMutated]
318 | //                if let assetTrack = assetTrack as? FFmpegAssetTrack {
319 | //                    if assetTrack.realFrameRate.num == 2 * assetTrack.avgFrameRate.num, assetTrack.realFrameRate.den == assetTrack.avgFrameRate.den {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:12:24: warning: static property 'pipController' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
 10 | @available(tvOS 14.0, *)
 11 | public class KSPictureInPictureController: AVPictureInPictureController {
 12 |     private static var pipController: KSPictureInPictureController?
    |                        |- warning: static property 'pipController' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                        |- note: convert 'pipController' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'pipController' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 13 |     private var originalViewController: UIViewController?
 14 |     private var view: KSPlayerLayer?
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:33:24: warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated context
 31 |                 guard let self, let viewController, let originalViewController else { return }
 32 |                 if let nav = viewController as? UINavigationController,
 33 |                    nav.viewControllers.isEmpty || (nav.viewControllers.count == 1 && nav.viewControllers[0] != originalViewController)
    |                        `- warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated context
 34 |                 {
 35 |                     nav.viewControllers = [originalViewController]
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:70:65: note: property declared here
 68 | @property(nullable, nonatomic,readonly,strong) UIViewController *visibleViewController; // Return modal view controller if it exists. Otherwise the top view controller.
 69 |
 70 | @property(nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers; // The current view controller stack.
    |                                                                 `- note: property declared here
 71 |
 72 | - (void)setViewControllers:(NSArray<UIViewController *> *)viewControllers animated:(BOOL)animated API_AVAILABLE(ios(3.0)); // If animated is YES, then simulate a push or pop depending on whether the new top view controller was previously in the stack.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:33:56: warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated autoclosure
 31 |                 guard let self, let viewController, let originalViewController else { return }
 32 |                 if let nav = viewController as? UINavigationController,
 33 |                    nav.viewControllers.isEmpty || (nav.viewControllers.count == 1 && nav.viewControllers[0] != originalViewController)
    |                                                        `- warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated autoclosure
 34 |                 {
 35 |                     nav.viewControllers = [originalViewController]
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:70:65: note: property declared here
 68 | @property(nullable, nonatomic,readonly,strong) UIViewController *visibleViewController; // Return modal view controller if it exists. Otherwise the top view controller.
 69 |
 70 | @property(nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers; // The current view controller stack.
    |                                                                 `- note: property declared here
 71 |
 72 | - (void)setViewControllers:(NSArray<UIViewController *> *)viewControllers animated:(BOOL)animated API_AVAILABLE(ios(3.0)); // If animated is YES, then simulate a push or pop depending on whether the new top view controller was previously in the stack.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:33:90: warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated autoclosure
 31 |                 guard let self, let viewController, let originalViewController else { return }
 32 |                 if let nav = viewController as? UINavigationController,
 33 |                    nav.viewControllers.isEmpty || (nav.viewControllers.count == 1 && nav.viewControllers[0] != originalViewController)
    |                                                                                          `- warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated autoclosure
 34 |                 {
 35 |                     nav.viewControllers = [originalViewController]
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:70:65: note: property declared here
 68 | @property(nullable, nonatomic,readonly,strong) UIViewController *visibleViewController; // Return modal view controller if it exists. Otherwise the top view controller.
 69 |
 70 | @property(nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers; // The current view controller stack.
    |                                                                 `- note: property declared here
 71 |
 72 | - (void)setViewControllers:(NSArray<UIViewController *> *)viewControllers animated:(BOOL)animated API_AVAILABLE(ios(3.0)); // If animated is YES, then simulate a push or pop depending on whether the new top view controller was previously in the stack.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:35:25: warning: main actor-isolated property 'viewControllers' can not be mutated from a nonisolated context
 33 |                    nav.viewControllers.isEmpty || (nav.viewControllers.count == 1 && nav.viewControllers[0] != originalViewController)
 34 |                 {
 35 |                     nav.viewControllers = [originalViewController]
    |                         `- warning: main actor-isolated property 'viewControllers' can not be mutated from a nonisolated context
 36 |                 }
 37 |                 if let navigationController {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:70:65: note: mutation of this property is only permitted within the actor
 68 | @property(nullable, nonatomic,readonly,strong) UIViewController *visibleViewController; // Return modal view controller if it exists. Otherwise the top view controller.
 69 |
 70 | @property(nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers; // The current view controller stack.
    |                                                                 `- note: mutation of this property is only permitted within the actor
 71 |
 72 | - (void)setViewControllers:(NSArray<UIViewController *> *)viewControllers animated:(BOOL)animated API_AVAILABLE(ios(3.0)); // If animated is YES, then simulate a push or pop depending on whether the new top view controller was previously in the stack.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:38:64: warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated context
 36 |                 }
 37 |                 if let navigationController {
 38 |                     var viewControllers = navigationController.viewControllers
    |                                                                `- warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated context
 39 |                     if viewControllers.count > 1, let last = viewControllers.last, type(of: last) == type(of: viewController) {
 40 |                         viewControllers[viewControllers.count - 1] = viewController
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:70:65: note: property declared here
 68 | @property(nullable, nonatomic,readonly,strong) UIViewController *visibleViewController; // Return modal view controller if it exists. Otherwise the top view controller.
 69 |
 70 | @property(nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers; // The current view controller stack.
    |                                                                 `- note: property declared here
 71 |
 72 | - (void)setViewControllers:(NSArray<UIViewController *> *)viewControllers animated:(BOOL)animated API_AVAILABLE(ios(3.0)); // If animated is YES, then simulate a push or pop depending on whether the new top view controller was previously in the stack.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:41:46: warning: main actor-isolated property 'viewControllers' can not be mutated from a nonisolated context
 39 |                     if viewControllers.count > 1, let last = viewControllers.last, type(of: last) == type(of: viewController) {
 40 |                         viewControllers[viewControllers.count - 1] = viewController
 41 |                         navigationController.viewControllers = viewControllers
    |                                              `- warning: main actor-isolated property 'viewControllers' can not be mutated from a nonisolated context
 42 |                     }
 43 |                     if viewControllers.firstIndex(of: viewController) == nil {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:70:65: note: mutation of this property is only permitted within the actor
 68 | @property(nullable, nonatomic,readonly,strong) UIViewController *visibleViewController; // Return modal view controller if it exists. Otherwise the top view controller.
 69 |
 70 | @property(nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers; // The current view controller stack.
    |                                                                 `- note: mutation of this property is only permitted within the actor
 71 |
 72 | - (void)setViewControllers:(NSArray<UIViewController *> *)viewControllers animated:(BOOL)animated API_AVAILABLE(ios(3.0)); // If animated is YES, then simulate a push or pop depending on whether the new top view controller was previously in the stack.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:45:46: warning: call to main actor-isolated instance method 'pushViewController(_:animated:)' in a synchronous nonisolated context [#ActorIsolatedCall]
 43 |                     if viewControllers.firstIndex(of: viewController) == nil {
 44 |                         // 新的swiftUI push之后。view会变成是emptyView。所以页面就空白了。
 45 |                         navigationController.pushViewController(viewController, animated: true)
    |                                              `- warning: call to main actor-isolated instance method 'pushViewController(_:animated:)' in a synchronous nonisolated context [#ActorIsolatedCall]
 46 |                     }
 47 |                 } else {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:61:1: note: calls to instance method 'pushViewController(_:animated:)' from outside of its actor context are implicitly asynchronous
 59 | - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;
 60 |
 61 | - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated; // Uses a horizontal slide transition. Has no effect if the view controller is already in the stack.
    | `- note: calls to instance method 'pushViewController(_:animated:)' from outside of its actor context are implicitly asynchronous
 62 |
 63 | - (nullable UIViewController *)popViewControllerAnimated:(BOOL)animated; // Returns the popped controller.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:48:47: warning: call to main actor-isolated instance method 'present(_:animated:completion:)' in a synchronous nonisolated context [#ActorIsolatedCall]
 46 |                     }
 47 |                 } else {
 48 |                     presentingViewController?.present(originalViewController, animated: true)
    |                                               `- warning: call to main actor-isolated instance method 'present(_:animated:completion:)' in a synchronous nonisolated context [#ActorIsolatedCall]
 49 |                 }
 50 |             }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h:264:1: note: calls to instance method 'present(_:animated:completion:)' from outside of its actor context are implicitly asynchronous
262 |   controllers viewDidAppear: callback is invoked.
263 | */
264 | - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(ios(5.0));
    | `- note: calls to instance method 'present(_:animated:completion:)' from outside of its actor context are implicitly asynchronous
265 | // The completion handler, if provided, will be invoked after the dismissed controller's viewDidDisappear: callback is invoked.
266 | - (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^ __nullable)(void))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(ios(5.0));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:67:29: warning: call to main actor-isolated instance method 'sendAction(_:to:for:)' in a synchronous nonisolated context [#ActorIsolatedCall]
 65 |             // 直接退到后台
 66 |             runOnMainThread {
 67 |                 UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)
    |                             `- warning: call to main actor-isolated instance method 'sendAction(_:to:for:)' in a synchronous nonisolated context [#ActorIsolatedCall]
 68 |             }
 69 |             #endif
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIControl.h:128:1: note: calls to instance method 'sendAction(_:to:for:)' from outside of its actor context are implicitly asynchronous
126 |
127 | /// Dispatch the target-action pair. This method is called repeatedly by -sendActionsForControlEvents: and is a point at which you can observe or override behavior.
128 | - (void)sendAction:(SEL)action to:(nullable id)target forEvent:(nullable UIEvent *)event;
    | `- note: calls to instance method 'sendAction(_:to:for:)' from outside of its actor context are implicitly asynchronous
129 | /// Like -sendAction:to:forEvent:, this method is called by -sendActionsForControlEvents:. You may override this method to observe or modify behavior. If you override this method, you should call super precisely once to dispatch the action, or not call super to suppress sending that action.
130 | - (void)sendAction:(UIAction *)action API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(watchos);
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:67:17: warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context [#ActorIsolatedCall]
 65 |             // 直接退到后台
 66 |             runOnMainThread {
 67 |                 UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)
    |                 `- warning: call to main actor-isolated initializer 'init()' in a synchronous nonisolated context [#ActorIsolatedCall]
 68 |             }
 69 |             #endif
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:158:1: note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
156 | - (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;
157 | - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;
158 | - (instancetype)init API_AVAILABLE(ios(2.0), tvos(9.0), visionos(1.0)) API_UNAVAILABLE(watchos);
    | `- note: calls to initializer 'init()' from outside of its actor context are implicitly asynchronous
159 |
160 | @property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteractionEnabled;  // default is YES. if set to NO, user events (touch, keys) are ignored and removed from the event queue.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:67:93: warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context
 65 |             // 直接退到后台
 66 |             runOnMainThread {
 67 |                 UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)
    |                                                                                             `- warning: main actor-isolated class property 'shared' can not be referenced from a nonisolated context
 68 |             }
 69 |             #endif
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:87:54: note: class property declared here
 85 | @interface UIApplication : UIResponder
 86 |
 87 | @property(class, nonatomic, readonly) UIApplication *sharedApplication NS_EXTENSION_UNAVAILABLE_IOS("Use view controller based solutions where appropriate instead.");
    |                                                      `- note: class property declared here
 88 |
 89 | @property(nullable, nonatomic, assign) id<UIApplicationDelegate> delegate;
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:75:68: warning: main actor-isolated property 'viewController' can not be referenced from a nonisolated context
 73 |         #if canImport(UIKit)
 74 |         runOnMainThread { [weak self] in
 75 |             guard let self, let viewController = view.player.view?.viewController else { return }
    |                                                                    `- warning: main actor-isolated property 'viewController' can not be referenced from a nonisolated context
 76 |
 77 |             originalViewController = viewController
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/PlayerView.swift:210:9: note: property declared here
208 |
209 | extension UIView {
210 |     var viewController: UIViewController? {
    |         `- note: property declared here
211 |         var next = next
212 |         while next != nil {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:78:58: warning: main actor-isolated property 'navigationController' can not be referenced from a nonisolated context
 76 |
 77 |             originalViewController = viewController
 78 |             if let navigationController = viewController.navigationController, navigationController.viewControllers.count == 1 {
    |                                                          `- warning: main actor-isolated property 'navigationController' can not be referenced from a nonisolated context
 79 |                 self.viewController = navigationController
 80 |             } else {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:153:72: note: property declared here
151 | @property(nonatomic,readonly,strong) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.
152 | @property(nonatomic) BOOL hidesBottomBarWhenPushed API_UNAVAILABLE(tvos); // If YES, then when this view controller is pushed into a controller hierarchy with a bottom bar (like a tab bar), the bottom bar will slide out. Default is NO.
153 | @property(nullable, nonatomic,readonly,strong) UINavigationController *navigationController; // If this view controller has been pushed onto a navigation controller, return it.
    |                                                                        `- note: property declared here
154 |
155 | @end
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:78:101: warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated context
 76 |
 77 |             originalViewController = viewController
 78 |             if let navigationController = viewController.navigationController, navigationController.viewControllers.count == 1 {
    |                                                                                                     `- warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated context
 79 |                 self.viewController = navigationController
 80 |             } else {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:70:65: note: property declared here
 68 | @property(nullable, nonatomic,readonly,strong) UIViewController *visibleViewController; // Return modal view controller if it exists. Otherwise the top view controller.
 69 |
 70 | @property(nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers; // The current view controller stack.
    |                                                                 `- note: property declared here
 71 |
 72 | - (void)setViewControllers:(NSArray<UIViewController *> *)viewControllers animated:(BOOL)animated API_AVAILABLE(ios(3.0)); // If animated is YES, then simulate a push or pop depending on whether the new top view controller was previously in the stack.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:83:57: warning: main actor-isolated property 'navigationController' can not be referenced from a nonisolated context
 81 |                 self.viewController = viewController
 82 |             }
 83 |             navigationController = self.viewController?.navigationController
    |                                                         `- warning: main actor-isolated property 'navigationController' can not be referenced from a nonisolated context
 84 |             if let pre = KSPictureInPictureController.pipController {
 85 |                 view.player.isMuted = true
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:153:72: note: property declared here
151 | @property(nonatomic,readonly,strong) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.
152 | @property(nonatomic) BOOL hidesBottomBarWhenPushed API_UNAVAILABLE(tvos); // If YES, then when this view controller is pushed into a controller hierarchy with a bottom bar (like a tab bar), the bottom bar will slide out. Default is NO.
153 | @property(nullable, nonatomic,readonly,strong) UINavigationController *navigationController; // If this view controller has been pushed onto a navigation controller, return it.
    |                                                                        `- note: property declared here
154 |
155 | @end
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:89:42: warning: call to main actor-isolated instance method 'popViewController(animated:)' in a synchronous nonisolated context [#ActorIsolatedCall]
 87 |             } else {
 88 |                 if let navigationController {
 89 |                     navigationController.popViewController(animated: true)
    |                                          `- warning: call to main actor-isolated instance method 'popViewController(animated:)' in a synchronous nonisolated context [#ActorIsolatedCall]
 90 |                     #if os(iOS)
 91 |                     if navigationController.tabBarController != nil, navigationController.viewControllers.count == 1 {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:63:1: note: calls to instance method 'popViewController(animated:)' from outside of its actor context are implicitly asynchronous
 61 | - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated; // Uses a horizontal slide transition. Has no effect if the view controller is already in the stack.
 62 |
 63 | - (nullable UIViewController *)popViewControllerAnimated:(BOOL)animated; // Returns the popped controller.
    | `- note: calls to instance method 'popViewController(animated:)' from outside of its actor context are implicitly asynchronous
 64 | - (nullable NSArray<__kindof UIViewController *> *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated; // Pops view controllers until the one specified is on top. Returns the popped controllers.
 65 | - (nullable NSArray<__kindof UIViewController *> *)popToRootViewControllerAnimated:(BOOL)animated; // Pops until there's only a single view controller left on the stack. Returns the popped controllers.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:91:45: warning: main actor-isolated property 'tabBarController' can not be referenced from a nonisolated context
 89 |                     navigationController.popViewController(animated: true)
 90 |                     #if os(iOS)
 91 |                     if navigationController.tabBarController != nil, navigationController.viewControllers.count == 1 {
    |                                             `- warning: main actor-isolated property 'tabBarController' can not be referenced from a nonisolated context
 92 |                         DispatchQueue.main.async { [weak self] in
 93 |                             self?.navigationController?.setToolbarHidden(false, animated: true)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarController.h:245:70: note: property declared here
243 | @property(null_resettable, nonatomic, strong) UITabBarItem *tabBarItem; // Automatically created lazily with the view controller's title if it's not set explicitly.
244 |
245 | @property(nullable, nonatomic, readonly, strong) UITabBarController *tabBarController; // If the view controller has a tab bar controller as its ancestor, return it. Returns nil otherwise.
    |                                                                      `- note: property declared here
246 |
247 | /* Deprecated on tvOS 15.0 in favor of -[UIViewController setContentScrollView:forEdge:].
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:91:91: warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated context
 89 |                     navigationController.popViewController(animated: true)
 90 |                     #if os(iOS)
 91 |                     if navigationController.tabBarController != nil, navigationController.viewControllers.count == 1 {
    |                                                                                           `- warning: main actor-isolated property 'viewControllers' can not be referenced from a nonisolated context
 92 |                         DispatchQueue.main.async { [weak self] in
 93 |                             self?.navigationController?.setToolbarHidden(false, animated: true)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationController.h:70:65: note: property declared here
 68 | @property(nullable, nonatomic,readonly,strong) UIViewController *visibleViewController; // Return modal view controller if it exists. Otherwise the top view controller.
 69 |
 70 | @property(nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers; // The current view controller stack.
    |                                                                 `- note: property declared here
 71 |
 72 | - (void)setViewControllers:(NSArray<UIViewController *> *)viewControllers animated:(BOOL)animated API_AVAILABLE(ios(3.0)); // If animated is YES, then simulate a push or pop depending on whether the new top view controller was previously in the stack.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:93:29: warning: capture of 'self' with non-Sendable type 'KSPictureInPictureController?' in a '@Sendable' closure [#SendableClosureCaptures]
  9 |
 10 | @available(tvOS 14.0, *)
 11 | public class KSPictureInPictureController: AVPictureInPictureController {
    |              `- note: class 'KSPictureInPictureController' does not conform to the 'Sendable' protocol
 12 |     private static var pipController: KSPictureInPictureController?
 13 |     private var originalViewController: UIViewController?
    :
 91 |                     if navigationController.tabBarController != nil, navigationController.viewControllers.count == 1 {
 92 |                         DispatchQueue.main.async { [weak self] in
 93 |                             self?.navigationController?.setToolbarHidden(false, animated: true)
    |                             `- warning: capture of 'self' with non-Sendable type 'KSPictureInPictureController?' in a '@Sendable' closure [#SendableClosureCaptures]
 94 |                         }
 95 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:98:72: warning: main actor-isolated property 'presentingViewController' can not be referenced from a nonisolated context
 96 |                     #endif
 97 |                 } else {
 98 |                     presentingViewController = originalViewController?.presentingViewController
    |                                                                        `- warning: main actor-isolated property 'presentingViewController' can not be referenced from a nonisolated context
 99 |                     originalViewController?.dismiss(animated: true)
100 |                 }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h:225:59: note: property declared here
223 |
224 | // The view controller that presented this view controller (or its farthest ancestor.)
225 | @property(nullable, nonatomic,readonly) UIViewController *presentingViewController API_AVAILABLE(ios(5.0));
    |                                                           `- note: property declared here
226 |
227 | /*
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:99:45: warning: call to main actor-isolated instance method 'dismiss(animated:completion:)' in a synchronous nonisolated context [#ActorIsolatedCall]
 97 |                 } else {
 98 |                     presentingViewController = originalViewController?.presentingViewController
 99 |                     originalViewController?.dismiss(animated: true)
    |                                             `- warning: call to main actor-isolated instance method 'dismiss(animated:completion:)' in a synchronous nonisolated context [#ActorIsolatedCall]
100 |                 }
101 |             }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h:266:1: note: calls to instance method 'dismiss(animated:completion:)' from outside of its actor context are implicitly asynchronous
264 | - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(ios(5.0));
265 | // The completion handler, if provided, will be invoked after the dismissed controller's viewDidDisappear: callback is invoked.
266 | - (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^ __nullable)(void))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(ios(5.0));
    | `- note: calls to instance method 'dismiss(animated:completion:)' from outside of its actor context are implicitly asynchronous
267 |
268 | // Display another view controller as a modal child. Uses a vertical sheet transition if animated.This method has been replaced by presentViewController:animated:completion:
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:84:35: warning: capture of 'self' with non-Sendable type 'KSPlayerLayer?' in a '@Sendable' closure [#SendableClosureCaptures]
 65 | }
 66 |
 67 | open class KSPlayerLayer: NSObject {
    |            `- note: class 'KSPlayerLayer' does not conform to the 'Sendable' protocol
 68 |     public weak var delegate: KSPlayerLayerDelegate?
 69 |     @Published
    :
 82 |                     // 一定要async才不会pip之后就暂停播放
 83 |                     DispatchQueue.main.async { [weak self] in
 84 |                         guard let self else { return }
    |                                   `- warning: capture of 'self' with non-Sendable type 'KSPlayerLayer?' in a '@Sendable' closure [#SendableClosureCaptures]
 85 |                         pipController.start(view: self)
 86 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:85:25: warning: capture of 'pipController' with non-Sendable type 'KSPictureInPictureController' in a '@Sendable' closure [#SendableClosureCaptures]
 83 |                     DispatchQueue.main.async { [weak self] in
 84 |                         guard let self else { return }
 85 |                         pipController.start(view: self)
    |                         `- warning: capture of 'pipController' with non-Sendable type 'KSPictureInPictureController' in a '@Sendable' closure [#SendableClosureCaptures]
 86 |                     }
 87 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:11:14: note: class 'KSPictureInPictureController' does not conform to the 'Sendable' protocol
  9 |
 10 | @available(tvOS 14.0, *)
 11 | public class KSPictureInPictureController: AVPictureInPictureController {
    |              `- note: class 'KSPictureInPictureController' does not conform to the 'Sendable' protocol
 12 |     private static var pipController: KSPictureInPictureController?
 13 |     private var originalViewController: UIViewController?
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:102:73: warning: main actor-isolated property 'superview' can not be referenced from a nonisolated context
100 |             runOnMainThread { [weak self] in
101 |                 guard let self else { return }
102 |                 if let oldView = oldValue.view, let superview = oldView.superview, let view = player.view {
    |                                                                         `- warning: main actor-isolated property 'superview' can not be referenced from a nonisolated context
103 |                     #if canImport(UIKit)
104 |                     superview.insertSubview(view, belowSubview: oldView)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:229:55: note: property declared here
227 | @interface UIView(UIViewHierarchy)
228 |
229 | @property(nullable, nonatomic,readonly) UIView       *superview;
    |                                                       `- note: property declared here
230 | @property(nonatomic,readonly,copy) NSArray<__kindof UIView *> *subviews;
231 | @property(nullable, nonatomic,readonly) UIWindow     *window;
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:104:31: warning: call to main actor-isolated instance method 'insertSubview(_:belowSubview:)' in a synchronous nonisolated context [#ActorIsolatedCall]
102 |                 if let oldView = oldValue.view, let superview = oldView.superview, let view = player.view {
103 |                     #if canImport(UIKit)
104 |                     superview.insertSubview(view, belowSubview: oldView)
    |                               `- warning: call to main actor-isolated instance method 'insertSubview(_:belowSubview:)' in a synchronous nonisolated context [#ActorIsolatedCall]
105 |                     #else
106 |                     superview.addSubview(view, positioned: .below, relativeTo: oldView)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:238:1: note: calls to instance method 'insertSubview(_:belowSubview:)' from outside of its actor context are implicitly asynchronous
236 |
237 | - (void)addSubview:(UIView *)view;
238 | - (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
    | `- note: calls to instance method 'insertSubview(_:belowSubview:)' from outside of its actor context are implicitly asynchronous
239 | - (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;
240 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:108:26: warning: main actor-isolated property 'translatesAutoresizingMaskIntoConstraints' can not be mutated from a nonisolated context
106 |                     superview.addSubview(view, positioned: .below, relativeTo: oldView)
107 |                     #endif
108 |                     view.translatesAutoresizingMaskIntoConstraints = false
    |                          `- warning: main actor-isolated property 'translatesAutoresizingMaskIntoConstraints' can not be mutated from a nonisolated context
109 |                     NSLayoutConstraint.activate([
110 |                         view.topAnchor.constraint(equalTo: superview.topAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:482:27: note: mutation of this property is only permitted within the actor
480 |  you must set this property to NO. IB will do this for you.
481 |  */
482 | @property(nonatomic) BOOL translatesAutoresizingMaskIntoConstraints API_AVAILABLE(ios(6.0)); // Default YES
    |                           `- note: mutation of this property is only permitted within the actor
483 |
484 | /* constraint-based layout engages lazily when someone tries to use it (e.g., adds a constraint to a view).  If you do all of your constraint set up in -updateConstraints, you might never even receive updateConstraints if no one makes a constraint.  To fix this chicken and egg problem, override this method to return YES if your view needs the window to use constraint-based layout.
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:109:40: warning: call to main actor-isolated class method 'activate' in a synchronous nonisolated context [#ActorIsolatedCall]
107 |                     #endif
108 |                     view.translatesAutoresizingMaskIntoConstraints = false
109 |                     NSLayoutConstraint.activate([
    |                                        `- warning: call to main actor-isolated class method 'activate' in a synchronous nonisolated context [#ActorIsolatedCall]
110 |                         view.topAnchor.constraint(equalTo: superview.topAnchor),
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutConstraint.h:184:1: note: calls to class method 'activate' from outside of its actor context are implicitly asynchronous
182 |
183 | /* Convenience method that activates each constraint in the contained array, in the same manner as setting active=YES. This is often more efficient than activating each constraint individually. */
184 | + (void)activateConstraints:(NSArray<NSLayoutConstraint *> *)constraints API_AVAILABLE(macos(10.10), ios(8.0));
    | `- note: calls to class method 'activate' from outside of its actor context are implicitly asynchronous
185 |
186 | /* Convenience method that deactivates each constraint in the contained array, in the same manner as setting active=NO. This is often more efficient than deactivating each constraint individually. */
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:110:40: warning: call to main actor-isolated instance method 'constraint(equalTo:)' in a synchronous nonisolated context [#ActorIsolatedCall]
108 |                     view.translatesAutoresizingMaskIntoConstraints = false
109 |                     NSLayoutConstraint.activate([
110 |                         view.topAnchor.constraint(equalTo: superview.topAnchor),
    |                                        `- warning: call to main actor-isolated instance method 'constraint(equalTo:)' in a synchronous nonisolated context [#ActorIsolatedCall]
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutAnchor.h:43:1: note: calls to instance method 'constraint(equalTo:)' from outside of its actor context are implicitly asynchronous
 41 |
 42 | // These methods return an inactive constraint of the form thisAnchor = otherAnchor.
 43 | - (NSLayoutConstraint *)constraintEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
    | `- note: calls to instance method 'constraint(equalTo:)' from outside of its actor context are implicitly asynchronous
 44 | - (NSLayoutConstraint *)constraintGreaterThanOrEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
 45 | - (NSLayoutConstraint *)constraintLessThanOrEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:110:30: warning: main actor-isolated property 'topAnchor' can not be referenced from a nonisolated context
108 |                     view.translatesAutoresizingMaskIntoConstraints = false
109 |                     NSLayoutConstraint.activate([
110 |                         view.topAnchor.constraint(equalTo: superview.topAnchor),
    |                              `- warning: main actor-isolated property 'topAnchor' can not be referenced from a nonisolated context
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:594:59: note: property declared here
592 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(ios(9.0));
593 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(ios(9.0));
594 | @property(nonatomic,readonly,strong) NSLayoutYAxisAnchor *topAnchor API_AVAILABLE(ios(9.0));
    |                                                           `- note: property declared here
595 | @property(nonatomic,readonly,strong) NSLayoutYAxisAnchor *bottomAnchor API_AVAILABLE(ios(9.0));
596 | @property(nonatomic,readonly,strong) NSLayoutDimension *widthAnchor API_AVAILABLE(ios(9.0));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:110:70: warning: main actor-isolated property 'topAnchor' can not be referenced from a nonisolated context
108 |                     view.translatesAutoresizingMaskIntoConstraints = false
109 |                     NSLayoutConstraint.activate([
110 |                         view.topAnchor.constraint(equalTo: superview.topAnchor),
    |                                                                      `- warning: main actor-isolated property 'topAnchor' can not be referenced from a nonisolated context
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:594:59: note: property declared here
592 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(ios(9.0));
593 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(ios(9.0));
594 | @property(nonatomic,readonly,strong) NSLayoutYAxisAnchor *topAnchor API_AVAILABLE(ios(9.0));
    |                                                           `- note: property declared here
595 | @property(nonatomic,readonly,strong) NSLayoutYAxisAnchor *bottomAnchor API_AVAILABLE(ios(9.0));
596 | @property(nonatomic,readonly,strong) NSLayoutDimension *widthAnchor API_AVAILABLE(ios(9.0));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:111:44: warning: call to main actor-isolated instance method 'constraint(equalTo:)' in a synchronous nonisolated context [#ActorIsolatedCall]
109 |                     NSLayoutConstraint.activate([
110 |                         view.topAnchor.constraint(equalTo: superview.topAnchor),
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
    |                                            `- warning: call to main actor-isolated instance method 'constraint(equalTo:)' in a synchronous nonisolated context [#ActorIsolatedCall]
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
113 |                         view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutAnchor.h:43:1: note: calls to instance method 'constraint(equalTo:)' from outside of its actor context are implicitly asynchronous
 41 |
 42 | // These methods return an inactive constraint of the form thisAnchor = otherAnchor.
 43 | - (NSLayoutConstraint *)constraintEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
    | `- note: calls to instance method 'constraint(equalTo:)' from outside of its actor context are implicitly asynchronous
 44 | - (NSLayoutConstraint *)constraintGreaterThanOrEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
 45 | - (NSLayoutConstraint *)constraintLessThanOrEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:111:30: warning: main actor-isolated property 'leadingAnchor' can not be referenced from a nonisolated context
109 |                     NSLayoutConstraint.activate([
110 |                         view.topAnchor.constraint(equalTo: superview.topAnchor),
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
    |                              `- warning: main actor-isolated property 'leadingAnchor' can not be referenced from a nonisolated context
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
113 |                         view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:590:59: note: property declared here
588 | /* Constraint creation conveniences. See NSLayoutAnchor.h for details.
589 |  */
590 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leadingAnchor API_AVAILABLE(ios(9.0));
    |                                                           `- note: property declared here
591 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *trailingAnchor API_AVAILABLE(ios(9.0));
592 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(ios(9.0));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:111:74: warning: main actor-isolated property 'leadingAnchor' can not be referenced from a nonisolated context
109 |                     NSLayoutConstraint.activate([
110 |                         view.topAnchor.constraint(equalTo: superview.topAnchor),
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
    |                                                                          `- warning: main actor-isolated property 'leadingAnchor' can not be referenced from a nonisolated context
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
113 |                         view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:590:59: note: property declared here
588 | /* Constraint creation conveniences. See NSLayoutAnchor.h for details.
589 |  */
590 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leadingAnchor API_AVAILABLE(ios(9.0));
    |                                                           `- note: property declared here
591 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *trailingAnchor API_AVAILABLE(ios(9.0));
592 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(ios(9.0));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:112:43: warning: call to main actor-isolated instance method 'constraint(equalTo:)' in a synchronous nonisolated context [#ActorIsolatedCall]
110 |                         view.topAnchor.constraint(equalTo: superview.topAnchor),
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
    |                                           `- warning: call to main actor-isolated instance method 'constraint(equalTo:)' in a synchronous nonisolated context [#ActorIsolatedCall]
113 |                         view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
114 |                     ])
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutAnchor.h:43:1: note: calls to instance method 'constraint(equalTo:)' from outside of its actor context are implicitly asynchronous
 41 |
 42 | // These methods return an inactive constraint of the form thisAnchor = otherAnchor.
 43 | - (NSLayoutConstraint *)constraintEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
    | `- note: calls to instance method 'constraint(equalTo:)' from outside of its actor context are implicitly asynchronous
 44 | - (NSLayoutConstraint *)constraintGreaterThanOrEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
 45 | - (NSLayoutConstraint *)constraintLessThanOrEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:112:30: warning: main actor-isolated property 'bottomAnchor' can not be referenced from a nonisolated context
110 |                         view.topAnchor.constraint(equalTo: superview.topAnchor),
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
    |                              `- warning: main actor-isolated property 'bottomAnchor' can not be referenced from a nonisolated context
113 |                         view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
114 |                     ])
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:595:59: note: property declared here
593 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(ios(9.0));
594 | @property(nonatomic,readonly,strong) NSLayoutYAxisAnchor *topAnchor API_AVAILABLE(ios(9.0));
595 | @property(nonatomic,readonly,strong) NSLayoutYAxisAnchor *bottomAnchor API_AVAILABLE(ios(9.0));
    |                                                           `- note: property declared here
596 | @property(nonatomic,readonly,strong) NSLayoutDimension *widthAnchor API_AVAILABLE(ios(9.0));
597 | @property(nonatomic,readonly,strong) NSLayoutDimension *heightAnchor API_AVAILABLE(ios(9.0));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:112:73: warning: main actor-isolated property 'bottomAnchor' can not be referenced from a nonisolated context
110 |                         view.topAnchor.constraint(equalTo: superview.topAnchor),
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
    |                                                                         `- warning: main actor-isolated property 'bottomAnchor' can not be referenced from a nonisolated context
113 |                         view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
114 |                     ])
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:595:59: note: property declared here
593 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(ios(9.0));
594 | @property(nonatomic,readonly,strong) NSLayoutYAxisAnchor *topAnchor API_AVAILABLE(ios(9.0));
595 | @property(nonatomic,readonly,strong) NSLayoutYAxisAnchor *bottomAnchor API_AVAILABLE(ios(9.0));
    |                                                           `- note: property declared here
596 | @property(nonatomic,readonly,strong) NSLayoutDimension *widthAnchor API_AVAILABLE(ios(9.0));
597 | @property(nonatomic,readonly,strong) NSLayoutDimension *heightAnchor API_AVAILABLE(ios(9.0));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:113:45: warning: call to main actor-isolated instance method 'constraint(equalTo:)' in a synchronous nonisolated context [#ActorIsolatedCall]
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
113 |                         view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
    |                                             `- warning: call to main actor-isolated instance method 'constraint(equalTo:)' in a synchronous nonisolated context [#ActorIsolatedCall]
114 |                     ])
115 |                 }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSLayoutAnchor.h:43:1: note: calls to instance method 'constraint(equalTo:)' from outside of its actor context are implicitly asynchronous
 41 |
 42 | // These methods return an inactive constraint of the form thisAnchor = otherAnchor.
 43 | - (NSLayoutConstraint *)constraintEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
    | `- note: calls to instance method 'constraint(equalTo:)' from outside of its actor context are implicitly asynchronous
 44 | - (NSLayoutConstraint *)constraintGreaterThanOrEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
 45 | - (NSLayoutConstraint *)constraintLessThanOrEqualToAnchor:(NSLayoutAnchor<AnchorType> *)anchor __attribute__((warn_unused_result));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:113:30: warning: main actor-isolated property 'trailingAnchor' can not be referenced from a nonisolated context
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
113 |                         view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
    |                              `- warning: main actor-isolated property 'trailingAnchor' can not be referenced from a nonisolated context
114 |                     ])
115 |                 }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:591:59: note: property declared here
589 |  */
590 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leadingAnchor API_AVAILABLE(ios(9.0));
591 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *trailingAnchor API_AVAILABLE(ios(9.0));
    |                                                           `- note: property declared here
592 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(ios(9.0));
593 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(ios(9.0));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:113:75: warning: main actor-isolated property 'trailingAnchor' can not be referenced from a nonisolated context
111 |                         view.leadingAnchor.constraint(equalTo: superview.leadingAnchor),
112 |                         view.bottomAnchor.constraint(equalTo: superview.bottomAnchor),
113 |                         view.trailingAnchor.constraint(equalTo: superview.trailingAnchor),
    |                                                                           `- warning: main actor-isolated property 'trailingAnchor' can not be referenced from a nonisolated context
114 |                     ])
115 |                 }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:591:59: note: property declared here
589 |  */
590 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leadingAnchor API_AVAILABLE(ios(9.0));
591 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *trailingAnchor API_AVAILABLE(ios(9.0));
    |                                                           `- note: property declared here
592 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *leftAnchor API_AVAILABLE(ios(9.0));
593 | @property(nonatomic,readonly,strong) NSLayoutXAxisAnchor *rightAnchor API_AVAILABLE(ios(9.0));
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:116:32: warning: call to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context [#ActorIsolatedCall]
114 |                     ])
115 |                 }
116 |                 oldValue.view?.removeFromSuperview()
    |                                `- warning: call to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context [#ActorIsolatedCall]
117 |             }
118 |             player.playbackRate = oldValue.playbackRate
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:233:1: note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
231 | @property(nullable, nonatomic,readonly) UIWindow     *window;
232 |
233 | - (void)removeFromSuperview;
    | `- note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
234 | - (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
235 | - (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:176:19: warning: capture of 'self' with non-Sendable type 'KSPlayerLayer?' in a '@Sendable' closure [#SendableClosureCaptures]
 65 | }
 66 |
 67 | open class KSPlayerLayer: NSObject {
    |            `- note: class 'KSPlayerLayer' does not conform to the 'Sendable' protocol
 68 |     public weak var delegate: KSPlayerLayerDelegate?
 69 |     @Published
    :
174 |
175 |     private lazy var timer: Timer = .scheduledTimer(withTimeInterval: 0.1, repeats: true) { [weak self] _ in
176 |         guard let self, self.player.isReadyToPlay else {
    |                   `- warning: capture of 'self' with non-Sendable type 'KSPlayerLayer?' in a '@Sendable' closure [#SendableClosureCaptures]
177 |             return
178 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:179:24: warning: call to main actor-isolated instance method 'player(layer:currentTime:totalTime:)' in a synchronous nonisolated context [#ActorIsolatedCall]
 60 | public protocol KSPlayerLayerDelegate: AnyObject {
 61 |     func player(layer: KSPlayerLayer, state: KSPlayerState)
 62 |     func player(layer: KSPlayerLayer, currentTime: TimeInterval, totalTime: TimeInterval)
    |          `- note: calls to instance method 'player(layer:currentTime:totalTime:)' from outside of its actor context are implicitly asynchronous
 63 |     func player(layer: KSPlayerLayer, finish error: Error?)
 64 |     func player(layer: KSPlayerLayer, bufferedCount: Int, consumeTime: TimeInterval)
    :
177 |             return
178 |         }
179 |         self.delegate?.player(layer: self, currentTime: self.player.currentPlaybackTime, totalTime: self.player.duration)
    |                        `- warning: call to main actor-isolated instance method 'player(layer:currentTime:totalTime:)' in a synchronous nonisolated context [#ActorIsolatedCall]
180 |         if self.player.playbackState == .playing, self.player.loadState == .playable, self.state == .buffering {
181 |             // 一个兜底保护,正常不能走到这里
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:488:5: warning: non-'@objc' instance method declared in extension cannot be overridden; use 'public' instead; this will be an error in a future Swift language mode
486 |
487 | extension KSPlayerLayer {
488 |     open func prepareToPlay() {
    |     `- warning: non-'@objc' instance method declared in extension cannot be overridden; use 'public' instead; this will be an error in a future Swift language mode
489 |         state = .preparing
490 |         startTime = CACurrentMediaTime()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:169:36: warning: call to main actor-isolated instance method 'player(layer:state:)' in a synchronous nonisolated context [#ActorIsolatedCall]
 59 | @MainActor
 60 | public protocol KSPlayerLayerDelegate: AnyObject {
 61 |     func player(layer: KSPlayerLayer, state: KSPlayerState)
    |          `- note: calls to instance method 'player(layer:state:)' from outside of its actor context are implicitly asynchronous
 62 |     func player(layer: KSPlayerLayer, currentTime: TimeInterval, totalTime: TimeInterval)
 63 |     func player(layer: KSPlayerLayer, finish error: Error?)
    :
167 |                     guard let self else { return }
168 |                     KSLog("playerStateDidChange - \(newValue)")
169 |                     self.delegate?.player(layer: self, state: newValue)
    |                                    `- warning: call to main actor-isolated instance method 'player(layer:state:)' in a synchronous nonisolated context [#ActorIsolatedCall]
170 |                 }
171 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:227:127: warning: 'MPVolumeViewWirelessRouteActiveDidChange' was deprecated in iOS 13.0: Use AVPlayer.externalPlaybackActive KVO instead. [#DeprecatedDeclaration]
225 |         }
226 |         #if !os(xrOS)
227 |         NotificationCenter.default.addObserver(self, selector: #selector(wirelessRouteActiveDidChange(notification:)), name: .MPVolumeViewWirelessRouteActiveDidChange, object: nil)
    |                                                                                                                               `- warning: 'MPVolumeViewWirelessRouteActiveDidChange' was deprecated in iOS 13.0: Use AVPlayer.externalPlaybackActive KVO instead. [#DeprecatedDeclaration]
228 |         #endif
229 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:281:34: warning: main actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context
279 |     open func play() {
280 |         runOnMainThread {
281 |             UIApplication.shared.isIdleTimerDisabled = true
    |                                  `- warning: main actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context
282 |         }
283 |         isAutoPlay = true
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:95:60: note: mutation of this property is only permitted within the actor
 93 | @property(nonatomic, readonly, getter=isIgnoringInteractionEvents) BOOL ignoringInteractionEvents API_DEPRECATED("Use UIView's userInteractionEnabled property instead", ios(2.0, 13.0)) API_UNAVAILABLE(visionos, watchos);                  // returns YES if we are at least one deep in ignoring events
 94 |
 95 | @property(nonatomic,getter=isIdleTimerDisabled)       BOOL idleTimerDisabled;	  // default is NO
    |                                                            `- note: mutation of this property is only permitted within the actor
 96 |
 97 | - (BOOL)openURL:(NSURL*)url API_DEPRECATED_WITH_REPLACEMENT("openURL:options:completionHandler:", ios(2.0, 10.0)) API_UNAVAILABLE(visionos, watchos);
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:281:27: warning: main actor-isolated class property 'shared' can not be mutated from a nonisolated context
279 |     open func play() {
280 |         runOnMainThread {
281 |             UIApplication.shared.isIdleTimerDisabled = true
    |                           `- warning: main actor-isolated class property 'shared' can not be mutated from a nonisolated context
282 |         }
283 |         isAutoPlay = true
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:87:54: note: mutation of this class property is only permitted within the actor
 85 | @interface UIApplication : UIResponder
 86 |
 87 | @property(class, nonatomic, readonly) UIApplication *sharedApplication NS_EXTENSION_UNAVAILABLE_IOS("Use view controller based solutions where appropriate instead.");
    |                                                      `- note: mutation of this class property is only permitted within the actor
 88 |
 89 | @property(nullable, nonatomic, assign) id<UIApplicationDelegate> delegate;
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:314:34: warning: main actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context
312 |         MPNowPlayingInfoCenter.default().playbackState = .paused
313 |         runOnMainThread {
314 |             UIApplication.shared.isIdleTimerDisabled = false
    |                                  `- warning: main actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context
315 |         }
316 |     }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:95:60: note: mutation of this property is only permitted within the actor
 93 | @property(nonatomic, readonly, getter=isIgnoringInteractionEvents) BOOL ignoringInteractionEvents API_DEPRECATED("Use UIView's userInteractionEnabled property instead", ios(2.0, 13.0)) API_UNAVAILABLE(visionos, watchos);                  // returns YES if we are at least one deep in ignoring events
 94 |
 95 | @property(nonatomic,getter=isIdleTimerDisabled)       BOOL idleTimerDisabled;	  // default is NO
    |                                                            `- note: mutation of this property is only permitted within the actor
 96 |
 97 | - (BOOL)openURL:(NSURL*)url API_DEPRECATED_WITH_REPLACEMENT("openURL:options:completionHandler:", ios(2.0, 10.0)) API_UNAVAILABLE(visionos, watchos);
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:314:27: warning: main actor-isolated class property 'shared' can not be mutated from a nonisolated context
312 |         MPNowPlayingInfoCenter.default().playbackState = .paused
313 |         runOnMainThread {
314 |             UIApplication.shared.isIdleTimerDisabled = false
    |                           `- warning: main actor-isolated class property 'shared' can not be mutated from a nonisolated context
315 |         }
316 |     }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:87:54: note: mutation of this class property is only permitted within the actor
 85 | @interface UIApplication : UIResponder
 86 |
 87 | @property(class, nonatomic, readonly) UIApplication *sharedApplication NS_EXTENSION_UNAVAILABLE_IOS("Use view controller based solutions where appropriate instead.");
    |                                                      `- note: mutation of this class property is only permitted within the actor
 88 |
 89 | @property(nullable, nonatomic, assign) id<UIApplicationDelegate> delegate;
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:328:34: warning: main actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context
326 |         MPNowPlayingInfoCenter.default().nowPlayingInfo = nil
327 |         runOnMainThread {
328 |             UIApplication.shared.isIdleTimerDisabled = false
    |                                  `- warning: main actor-isolated property 'isIdleTimerDisabled' can not be mutated from a nonisolated context
329 |         }
330 |     }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:95:60: note: mutation of this property is only permitted within the actor
 93 | @property(nonatomic, readonly, getter=isIgnoringInteractionEvents) BOOL ignoringInteractionEvents API_DEPRECATED("Use UIView's userInteractionEnabled property instead", ios(2.0, 13.0)) API_UNAVAILABLE(visionos, watchos);                  // returns YES if we are at least one deep in ignoring events
 94 |
 95 | @property(nonatomic,getter=isIdleTimerDisabled)       BOOL idleTimerDisabled;	  // default is NO
    |                                                            `- note: mutation of this property is only permitted within the actor
 96 |
 97 | - (BOOL)openURL:(NSURL*)url API_DEPRECATED_WITH_REPLACEMENT("openURL:options:completionHandler:", ios(2.0, 10.0)) API_UNAVAILABLE(visionos, watchos);
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:328:27: warning: main actor-isolated class property 'shared' can not be mutated from a nonisolated context
326 |         MPNowPlayingInfoCenter.default().nowPlayingInfo = nil
327 |         runOnMainThread {
328 |             UIApplication.shared.isIdleTimerDisabled = false
    |                           `- warning: main actor-isolated class property 'shared' can not be mutated from a nonisolated context
329 |         }
330 |     }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:87:54: note: mutation of this class property is only permitted within the actor
 85 | @interface UIApplication : UIResponder
 86 |
 87 | @property(class, nonatomic, readonly) UIApplication *sharedApplication NS_EXTENSION_UNAVAILABLE_IOS("Use view controller based solutions where appropriate instead.");
    |                                                      `- note: mutation of this class property is only permitted within the actor
 88 |
 89 | @property(nullable, nonatomic, assign) id<UIApplicationDelegate> delegate;
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:671:106: warning: 'isWirelessRouteActive' was deprecated in iOS 13.0: Use AVPlayer.externalPlaybackActive instead. [#DeprecatedDeclaration]
669 |     @MainActor
670 |     @objc private func wirelessRouteActiveDidChange(notification: Notification) {
671 |         guard let volumeView = notification.object as? MPVolumeView, isWirelessRouteActive != volumeView.isWirelessRouteActive else { return }
    |                                                                                                          `- warning: 'isWirelessRouteActive' was deprecated in iOS 13.0: Use AVPlayer.externalPlaybackActive instead. [#DeprecatedDeclaration]
672 |         if volumeView.isWirelessRouteActive {
673 |             if !player.allowsExternalPlayback {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:672:23: warning: 'isWirelessRouteActive' was deprecated in iOS 13.0: Use AVPlayer.externalPlaybackActive instead. [#DeprecatedDeclaration]
670 |     @objc private func wirelessRouteActiveDidChange(notification: Notification) {
671 |         guard let volumeView = notification.object as? MPVolumeView, isWirelessRouteActive != volumeView.isWirelessRouteActive else { return }
672 |         if volumeView.isWirelessRouteActive {
    |                       `- warning: 'isWirelessRouteActive' was deprecated in iOS 13.0: Use AVPlayer.externalPlaybackActive instead. [#DeprecatedDeclaration]
673 |             if !player.allowsExternalPlayback {
674 |                 isWirelessRouteActive = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:678:44: warning: 'isWirelessRouteActive' was deprecated in iOS 13.0: Use AVPlayer.externalPlaybackActive instead. [#DeprecatedDeclaration]
676 |             player.usesExternalPlaybackWhileExternalScreenIsActive = true
677 |         }
678 |         isWirelessRouteActive = volumeView.isWirelessRouteActive
    |                                            `- warning: 'isWirelessRouteActive' was deprecated in iOS 13.0: Use AVPlayer.externalPlaybackActive instead. [#DeprecatedDeclaration]
679 |     }
680 |     #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:313:32: warning: sending value of non-Sendable type 'any MediaPlayerDelegate' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
311 |             loopCountObservation = playerLooper?.observe(\.loopCount) { [weak self] playerLooper, _ in
312 |                 guard let self else { return }
313 |                 self.delegate?.playBack(player: self, loopCount: playerLooper.loopCount)
    |                                |- warning: sending value of non-Sendable type 'any MediaPlayerDelegate' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |                                `- note: sending main actor-isolated value of non-Sendable type 'any MediaPlayerDelegate' to main actor-isolated instance method 'playBack(player:loopCount:)' risks causing races in between main actor-isolated and main actor-isolated uses
314 |             }
315 |             loopStatusObservation = playerLooper?.observe(\.status) { [weak self] playerLooper, _ in
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift:93:33: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
 91 |                     if navigationController.tabBarController != nil, navigationController.viewControllers.count == 1 {
 92 |                         DispatchQueue.main.async { [weak self] in
 93 |                             self?.navigationController?.setToolbarHidden(false, animated: true)
    |                                 |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |                                 `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context
 94 |                         }
 95 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:84:25: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
 82 |                     // 一定要async才不会pip之后就暂停播放
 83 |                     DispatchQueue.main.async { [weak self] in
 84 |                         guard let self else { return }
    |                         |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |                         `- note: 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context
 85 |                         pipController.start(view: self)
 86 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:85:39: warning: sending 'pipController' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
 83 |                     DispatchQueue.main.async { [weak self] in
 84 |                         guard let self else { return }
 85 |                         pipController.start(view: self)
    |                                       |- warning: sending 'pipController' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |                                       `- note: 'pipController' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context
 86 |                     }
 87 |                 } else {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:169:36: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
167 |                     guard let self else { return }
168 |                     KSLog("playerStateDidChange - \(newValue)")
169 |                     self.delegate?.player(layer: self, state: newValue)
    |                                    |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |                                    `- note: sending 'self' to main actor-isolated instance method 'player(layer:state:)' risks causing data races between main actor-isolated code and code in the current isolation context
170 |                 }
171 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:169:36: warning: sending 'newValue' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
167 |                     guard let self else { return }
168 |                     KSLog("playerStateDidChange - \(newValue)")
169 |                     self.delegate?.player(layer: self, state: newValue)
    |                                    |- warning: sending 'newValue' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |                                    `- note: sending 'newValue' to main actor-isolated instance method 'player(layer:state:)' risks causing data races between main actor-isolated code and code in the current isolation context
170 |                 }
171 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:169:36: warning: sending value of non-Sendable type 'any KSPlayerLayerDelegate' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
167 |                     guard let self else { return }
168 |                     KSLog("playerStateDidChange - \(newValue)")
169 |                     self.delegate?.player(layer: self, state: newValue)
    |                                    |- warning: sending value of non-Sendable type 'any KSPlayerLayerDelegate' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |                                    `- note: sending value of non-Sendable type 'any KSPlayerLayerDelegate' to main actor-isolated instance method 'player(layer:state:)' risks causing races in between code in the current isolation context and main actor-isolated uses
170 |                 }
171 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:179:24: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
177 |             return
178 |         }
179 |         self.delegate?.player(layer: self, currentTime: self.player.currentPlaybackTime, totalTime: self.player.duration)
    |                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |                        `- note: sending 'self' to main actor-isolated instance method 'player(layer:currentTime:totalTime:)' risks causing data races between main actor-isolated code and code in the current isolation context
180 |         if self.player.playbackState == .playing, self.player.loadState == .playable, self.state == .buffering {
181 |             // 一个兜底保护,正常不能走到这里
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift:179:24: warning: sending value of non-Sendable type 'any KSPlayerLayerDelegate' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
177 |             return
178 |         }
179 |         self.delegate?.player(layer: self, currentTime: self.player.currentPlaybackTime, totalTime: self.player.duration)
    |                        |- warning: sending value of non-Sendable type 'any KSPlayerLayerDelegate' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |                        `- note: sending value of non-Sendable type 'any KSPlayerLayerDelegate' to main actor-isolated instance method 'player(layer:currentTime:totalTime:)' risks causing races in between code in the current isolation context and main actor-isolated uses
180 |         if self.player.playbackState == .playing, self.player.loadState == .playable, self.state == .buffering {
181 |             // 一个兜底保护,正常不能走到这里
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#ConformanceIsolation]: <https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation>
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
[#MutableGlobalVariable]: <https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable>
[#RegionIsolation]: <https://docs.swift.org/compiler/documentation/diagnostics/region-isolation>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
[#VariableNeverMutated]: <https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated>
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/DerivedSources/resource_bundle_accessor.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile resource_bundle_accessor.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile KSAVPlayer.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile KSOptions.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile KSPictureInPictureController.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile KSPlayerLayer.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSVideoPlayer.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile KSVideoPlayer.swift
SwiftCompile normal arm64 Compiling\ MediaPlayerProtocol.swift,\ PlayerDefines.swift,\ AudioPlayerView.swift,\ AppKitExtend.swift,\ PlayerToolBar.swift,\ PlayerView.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/PlayerDefines.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Audio/AudioPlayerView.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/PlayerToolBar.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/PlayerView.swift (in target 'KSPlayer' from project 'KSPlayer')
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/PlayerView.swift:41:55: warning: conformance of 'PlayerView' to protocol 'KSSliderDelegate' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode [#ConformanceIsolation]
 39 | }
 40 |
 41 | open class PlayerView: UIView, KSPlayerLayerDelegate, KSSliderDelegate {
    |                                                       |- warning: conformance of 'PlayerView' to protocol 'KSSliderDelegate' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode [#ConformanceIsolation]
    |                                                       |- note: isolate this conformance to the main actor with '@MainActor'
    |                                                       `- note: turn data races into runtime errors with '@preconcurrency'
 42 |     public typealias ControllerDelegate = PlayerControllerDelegate
 43 |     public var playerLayer: KSPlayerLayer? {
    :
157 |     // MARK: - KSSliderDelegate
158 |
159 |     open func slider(value: Double, event: ControlEvents) {
    |               |- note: main actor-isolated instance method 'slider(value:event:)' cannot satisfy nonisolated requirement
    |               `- note: mark instance method 'slider(value:event:)' 'nonisolated'
160 |         if event == .valueChanged {
161 |             toolBar.currentTime = value
[#ConformanceIsolation]: <https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation>
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile MediaPlayerProtocol.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/PlayerDefines.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PlayerDefines.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Audio/AudioPlayerView.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AudioPlayerView.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AppKitExtend.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/PlayerToolBar.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PlayerToolBar.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/PlayerView.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PlayerView.swift
SwiftCompile normal arm64 Compiling\ FFmpegDecode.swift,\ Filter.swift,\ KSMEPlayer.swift,\ MEPlayerItem.swift,\ MEPlayerItemTrack.swift,\ MetalPlayView.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Filter.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItemTrack.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift (in target 'KSPlayer' from project 'KSPlayer')
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:95:37: warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
 93 |                                 }
 94 |                             } else if sideData.type == AV_FRAME_DATA_DOVI_RPU_BUFFER {
 95 |                                 let data = sideData.data.withMemoryRebound(to: [UInt8].self, capacity: 1) { $0 }
    |                                     `- warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
 96 |                             } else if sideData.type == AV_FRAME_DATA_DOVI_METADATA { // AVDOVIMetadata
 97 |                                 let data = sideData.data.withMemoryRebound(to: AVDOVIMetadata.self, capacity: 1) { $0 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:98:37: warning: initialization of immutable value 'header' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
 96 |                             } else if sideData.type == AV_FRAME_DATA_DOVI_METADATA { // AVDOVIMetadata
 97 |                                 let data = sideData.data.withMemoryRebound(to: AVDOVIMetadata.self, capacity: 1) { $0 }
 98 |                                 let header = av_dovi_get_header(data)
    |                                     `- warning: initialization of immutable value 'header' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
 99 |                                 let mapping = av_dovi_get_mapping(data)
100 |                                 let color = av_dovi_get_color(data)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:99:37: warning: initialization of immutable value 'mapping' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
 97 |                                 let data = sideData.data.withMemoryRebound(to: AVDOVIMetadata.self, capacity: 1) { $0 }
 98 |                                 let header = av_dovi_get_header(data)
 99 |                                 let mapping = av_dovi_get_mapping(data)
    |                                     `- warning: initialization of immutable value 'mapping' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
100 |                                 let color = av_dovi_get_color(data)
101 | //                                frame.corePixelBuffer?.transferFunction = kCVImageBufferTransferFunction_ITU_R_2020
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:100:37: warning: initialization of immutable value 'color' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
 98 |                                 let header = av_dovi_get_header(data)
 99 |                                 let mapping = av_dovi_get_mapping(data)
100 |                                 let color = av_dovi_get_color(data)
    |                                     `- warning: initialization of immutable value 'color' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
101 | //                                frame.corePixelBuffer?.transferFunction = kCVImageBufferTransferFunction_ITU_R_2020
102 |                             } else if sideData.type == AV_FRAME_DATA_DYNAMIC_HDR_PLUS { // AVDynamicHDRPlus
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:103:37: warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
101 | //                                frame.corePixelBuffer?.transferFunction = kCVImageBufferTransferFunction_ITU_R_2020
102 |                             } else if sideData.type == AV_FRAME_DATA_DYNAMIC_HDR_PLUS { // AVDynamicHDRPlus
103 |                                 let data = sideData.data.withMemoryRebound(to: AVDynamicHDRPlus.self, capacity: 1) { $0 }.pointee
    |                                     `- warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
104 |                             } else if sideData.type == AV_FRAME_DATA_DYNAMIC_HDR_VIVID { // AVDynamicHDRVivid
105 |                                 let data = sideData.data.withMemoryRebound(to: AVDynamicHDRVivid.self, capacity: 1) { $0 }.pointee
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift:105:37: warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
103 |                                 let data = sideData.data.withMemoryRebound(to: AVDynamicHDRPlus.self, capacity: 1) { $0 }.pointee
104 |                             } else if sideData.type == AV_FRAME_DATA_DYNAMIC_HDR_VIVID { // AVDynamicHDRVivid
105 |                                 let data = sideData.data.withMemoryRebound(to: AVDynamicHDRVivid.self, capacity: 1) { $0 }.pointee
    |                                     `- warning: initialization of immutable value 'data' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
106 |                             } else if sideData.type == AV_FRAME_DATA_MASTERING_DISPLAY_METADATA {
107 |                                 let data = sideData.data.withMemoryRebound(to: AVMasteringDisplayMetadata.self, capacity: 1) { $0 }.pointee
/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 [#ActorIsolatedCall]
 24 |             oldValue?.invalidate()
 25 |             runOnMainThread {
 26 |                 oldValue?.removeFromSuperview()
    |                           `- warning: call to main actor-isolated instance method 'removeFromSuperview()' in a synchronous nonisolated context [#ActorIsolatedCall]
 27 |             }
 28 |         }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:233:1: note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
231 | @property(nullable, nonatomic,readonly) UIWindow     *window;
232 |
233 | - (void)removeFromSuperview;
    | `- note: calls to instance method 'removeFromSuperview()' from outside of its actor context are implicitly asynchronous
234 | - (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
235 | - (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;
/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 [#ActorIsolatedCall]
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 [#ActorIsolatedCall]
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:291:23: warning: conformance of 'KSMEPlayer' to protocol 'MediaPlayerProtocol' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode [#ConformanceIsolation]
289 | }
290 |
291 | extension KSMEPlayer: MediaPlayerProtocol {
    |                       |- warning: conformance of 'KSMEPlayer' to protocol 'MediaPlayerProtocol' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode [#ConformanceIsolation]
    |                       |- note: isolate this conformance to the main actor with '@MainActor'
    |                       `- note: turn data races into runtime errors with '@preconcurrency'
292 |     public var chapters: [Chapter] {
293 |         playerItem.chapters
    :
427 |
428 |     @MainActor
429 |     public var contentMode: UIViewContentMode {
    |                `- note: main actor-isolated property 'contentMode' cannot satisfy nonisolated requirement
430 |         get {
431 |             view?.contentMode ?? .center
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:291:1: warning: conformance of 'KSMEPlayer' to protocol 'MediaPlayback' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode [#ConformanceIsolation]
289 | }
290 |
291 | extension KSMEPlayer: MediaPlayerProtocol {
    | |- warning: conformance of 'KSMEPlayer' to protocol 'MediaPlayback' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode [#ConformanceIsolation]
    | |- note: isolate this conformance to the main actor with '@MainActor'
    | `- note: turn data races into runtime errors with '@preconcurrency'
292 |     public var chapters: [Chapter] {
293 |         playerItem.chapters
    :
307 |
308 |     @MainActor
309 |     public var naturalSize: CGSize {
    |                `- note: main actor-isolated property 'naturalSize' cannot satisfy nonisolated requirement
310 |         options.display == .plane ? playerItem.naturalSize : KSOptions.sceneSize
311 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:16:14: warning: non-final class 'KSMEPlayer' cannot conform to the 'Sendable' protocol
 14 | #endif
 15 |
 16 | public class KSMEPlayer: NSObject {
    |              `- warning: non-final class 'KSMEPlayer' cannot conform to the 'Sendable' protocol
 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
 15 |
 16 | public class KSMEPlayer: NSObject {
 17 |     private var loopCount = 1
    |                 `- warning: stored property 'loopCount' of 'Sendable'-conforming class 'KSMEPlayer' is mutable
 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 [#ActorIsolatedCall]
 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 [#ActorIsolatedCall]
 36 |             }
 37 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:112:10: note: calls to instance method 'changeBuffering(player:progress:)' from outside of its actor context are implicitly asynchronous
110 |     func changeLoadState(player: some MediaPlayerProtocol)
111 |     // 缓冲加载进度,0-100
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
    |          `- note: calls to instance method 'changeBuffering(player:progress:)' from outside of its actor context are implicitly asynchronous
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:164:28: warning: call to main actor-isolated instance method 'changeLoadState(player:)' in a synchronous nonisolated context [#ActorIsolatedCall]
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 [#ActorIsolatedCall]
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:178:19: warning: value 'reason' was defined but never used; consider replacing with boolean test [#NoUsage]
176 |     @objc private func audioRouteChange(notification: Notification) {
177 |         KSLog("[audio] audioRouteChange")
178 |         guard let reason = notification.userInfo?[AVAudioSessionRouteChangeReasonKey] as? UInt else {
    |                   `- warning: value 'reason' was defined but never used; consider replacing with boolean test [#NoUsage]
179 |             return
180 |         }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:210:64: warning: main actor-isolated property 'controlTimebase' can not be referenced from a nonisolated context
208 |                 audioOutput.prepare(audioFormat: audioDescriptor.audioFormat)
209 |             }
210 |             if let controlTimebase = videoOutput?.displayLayer.controlTimebase, options.startPlayTime > 1 {
    |                                                                `- warning: main actor-isolated property 'controlTimebase' can not be referenced from a nonisolated context
211 |                 CMTimebaseSetTime(controlTimebase, time: CMTimeMake(value: Int64(options.startPlayTime), timescale: 1))
212 |             }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVSampleBufferDisplayLayer.h:54:70: note: property declared here
 52 | ///
 53 | /// Note that prior to OSX 10.10 and iOS 8.0, the control timebase could not be changed after enqueueSampleBuffer: was called. As of OSX 10.10 and iOS 8.0, the control timebase may be changed at any time.
 54 | @property (retain, nullable) __attribute__((NSObject)) CMTimebaseRef controlTimebase;
    |                                                                      `- note: property declared here
 55 |
 56 | /// A string defining how the video is displayed within an AVSampleBufferDisplayLayer bounds rect. @discusssion Options are AVLayerVideoGravityResizeAspect, AVLayerVideoGravityResizeAspectFill and AVLayerVideoGravityResize. AVLayerVideoGravityResizeAspect is default. See <AVFoundation/AVAnimation.h> for a description of these options.
/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 [#ActorIsolatedCall]
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 [#ActorIsolatedCall]
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 [#ActorIsolatedCall]
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 [#ActorIsolatedCall]
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 [#ActorIsolatedCall]
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 [#ActorIsolatedCall]
230 |                 self.audioOutput.play()
231 |                 self.videoOutput?.play()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/MediaPlayerProtocol.swift:113:10: note: calls to instance method 'playBack(player:loopCount:)' from outside of its actor context are implicitly asynchronous
111 |     // 缓冲加载进度,0-100
112 |     func changeBuffering(player: some MediaPlayerProtocol, progress: Int)
113 |     func playBack(player: some MediaPlayerProtocol, loopCount: Int)
    |          `- note: calls to instance method 'playBack(player:loopCount:)' from outside of its actor context are implicitly asynchronous
114 |     func finish(player: some MediaPlayerProtocol, error: Error?)
115 | }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift:373:77: warning: main actor-isolated property 'controlTimebase' can not be referenced from a nonisolated context
371 |                 runOnMainThread { [weak self] in
372 |                     guard let self else { return }
373 |                     if let controlTimebase = self.videoOutput?.displayLayer.controlTimebase {
    |                                                                             `- warning: main actor-isolated property 'controlTimebase' can not be referenced from a nonisolated context
374 |                         CMTimebaseSetTime(controlTimebase, time: CMTimeMake(value: Int64(self.currentPlaybackTime), timescale: 1))
375 |                     }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVSampleBufferDisplayLayer.h:54:70: note: property declared here
 52 | ///
 53 | /// Note that prior to OSX 10.10 and iOS 8.0, the control timebase could not be changed after enqueueSampleBuffer: was called. As of OSX 10.10 and iOS 8.0, the control timebase may be changed at any time.
 54 | @property (retain, nullable) __attribute__((NSObject)) CMTimebaseRef controlTimebase;
    |                                                                      `- note: property declared here
 55 |
 56 | /// A string defining how the video is displayed within an AVSampleBufferDisplayLayer bounds rect. @discusssion Options are AVLayerVideoGravityResizeAspect, AVLayerVideoGravityResizeAspectFill and AVLayerVideoGravityResize. AVLayerVideoGravityResizeAspect is default. See <AVFoundation/AVAnimation.h> for a description of these options.
/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 [#SendableClosureCaptures]
514 |                 self.play()
515 |             }
516 |             completionHandler()
    |             |- warning: capture of 'completionHandler' with non-Sendable type '() -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
    |             `- 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 [#SendableClosureCaptures]
530 |                 self.pause()
531 |             }
532 |             completionHandler()
    |             |- warning: capture of 'completionHandler' with non-Sendable type '() -> Void' in a '@Sendable' closure [#SendableClosureCaptures]
    |             `- 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 [#SendableClosureCaptures]
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 [#SendableClosureCaptures]
    |                 `- 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 [#SendableClosureCaptures]
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 [#SendableClosureCaptures]
    |                 `- 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 [#MutableGlobalVariable]
 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 [#MutableGlobalVariable]
    |                        |- note: convert 'onceInitial' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'onceInitial' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 95 |         var result = avformat_network_init()
 96 |         av_log_set_callback { ptr, level, format, args in
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:16:17: warning: stored property 'options' of 'Sendable'-conforming class 'MEPlayerItem' has non-Sendable type 'KSOptions'; this is an error in the Swift 6 language mode
 14 | public final class MEPlayerItem: Sendable {
 15 |     private let url: URL
 16 |     private let options: KSOptions
    |                 `- warning: stored property 'options' of 'Sendable'-conforming class 'MEPlayerItem' has non-Sendable type 'KSOptions'; this is an error in the Swift 6 language mode
 17 |     private let operationQueue = OperationQueue()
 18 |     private let condition = NSCondition()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:17:12: note: class 'KSOptions' does not conform to the 'Sendable' protocol
 15 | import UIKit
 16 | #endif
 17 | open class KSOptions {
    |            `- note: class 'KSOptions' does not conform to the 'Sendable' protocol
 18 |     /// 最低缓存视频时间
 19 |     @Published
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:19:17: warning: stored property 'formatCtx' of 'Sendable'-conforming class 'MEPlayerItem' is mutable; this is an error in the Swift 6 language mode
 17 |     private let operationQueue = OperationQueue()
 18 |     private let condition = NSCondition()
 19 |     private var formatCtx: UnsafeMutablePointer<AVFormatContext>?
    |                 `- warning: stored property 'formatCtx' of 'Sendable'-conforming class 'MEPlayerItem' is mutable; this is an error in the Swift 6 language mode
 20 |     private var outputFormatCtx: UnsafeMutablePointer<AVFormatContext>?
 21 |     private var outputPacket: UnsafeMutablePointer<AVPacket>?
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:441:21: warning: initialization of immutable value 'result' was never used; consider replacing with assignment to '_' or removing it [#NoUsage]
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 [#NoUsage]
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 [#SendableClosureCaptures]
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 [#SendableClosureCaptures]
508 |                     self.seekingCompletionHandler = nil
509 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItemTrack.swift:223:23: warning: capture of 'self' with non-Sendable type 'AsyncPlayerItemTrack<Frame>?' in a '@Sendable' closure [#SendableClosureCaptures]
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 [#SendableClosureCaptures]
224 |             Thread.current.name = self.operationQueue.name
225 |             Thread.current.stackSize = KSOptions.stackSize
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItemTrack.swift:223:23: warning: capture of non-Sendable type 'Frame.Type' in an isolated closure [#SendableMetatypes]
221 |         guard operationQueue.operationCount == 0 else { return }
222 |         decodeOperation = BlockOperation { [weak self] in
223 |             guard let self else { return }
    |                       `- warning: capture of non-Sendable type 'Frame.Type' in an isolated closure [#SendableMetatypes]
224 |             Thread.current.name = self.operationQueue.name
225 |             Thread.current.stackSize = KSOptions.stackSize
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:28:43: warning: conformance of 'MetalPlayView' to protocol 'VideoOutput' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode [#ConformanceIsolation]
 26 | }
 27 |
 28 | public final class MetalPlayView: UIView, VideoOutput {
    |                                           |- warning: conformance of 'MetalPlayView' to protocol 'VideoOutput' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode [#ConformanceIsolation]
    |                                           |- note: isolate this conformance to the main actor with '@MainActor'
    |                                           `- note: turn data races into runtime errors with '@preconcurrency'
 29 |     public var displayLayer: AVSampleBufferDisplayLayer {
    |                |- note: main actor-isolated property 'displayLayer' cannot satisfy nonisolated requirement
    |                `- note: mark property 'displayLayer' 'nonisolated'
 30 |         displayView.displayLayer
 31 |     }
    :
 54 |     }
 55 |
 56 |     public private(set) var pixelBuffer: PixelBufferProtocol?
    |                             |- note: main actor-isolated property 'pixelBuffer' cannot satisfy nonisolated requirement
    |                             `- note: change property 'pixelBuffer' to a 'nonisolated let' constant
 57 |     /// 用displayLink会导致锁屏无法draw,
 58 |     /// 用DispatchSourceTimer的话,在播放4k视频的时候repeat的时间会变长,
    :
 60 |     private var displayLink: CADisplayLink!
 61 | //    private let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
 62 |     public var options: KSOptions
    |                `- note: main actor-isolated property 'options' cannot satisfy nonisolated requirement
 63 |     public weak var renderSource: OutputRenderSourceDelegate?
 64 |     // AVSampleBufferAudioRenderer AVSampleBufferRenderSynchronizer AVSampleBufferDisplayLayer
    :
 70 |
 71 |     private let metalView = MetalView()
 72 |     public weak var displayLayerDelegate: DisplayLayerDelegate?
    |                     `- note: main actor-isolated property 'displayLayerDelegate' cannot satisfy nonisolated requirement
 73 |     public init(options: KSOptions) {
    |            |- note: main actor-isolated initializer 'init(options:)' cannot satisfy nonisolated requirement
    |            `- note: mark initializer 'init(options:)' 'nonisolated'
 74 |         self.options = options
 75 |         super.init(frame: .zero)
    :
151 |     }
152 |
153 |     public func invalidate() {
    |                 |- note: main actor-isolated instance method 'invalidate()' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'invalidate()' 'nonisolated'
154 |         displayLink.invalidate()
155 |     }
156 |
157 |     public func readNextFrame() {
    |                 |- note: main actor-isolated instance method 'readNextFrame()' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'readNextFrame()' 'nonisolated'
158 |         draw(force: true)
159 |     }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift:28:20: warning: conformance of 'MetalPlayView' to protocol 'FrameOutput' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode [#ConformanceIsolation]
 26 | }
 27 |
 28 | public final class MetalPlayView: UIView, VideoOutput {
    |                    |- warning: conformance of 'MetalPlayView' to protocol 'FrameOutput' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode [#ConformanceIsolation]
    |                    |- note: isolate this conformance to the main actor with '@MainActor'
    |                    `- note: turn data races into runtime errors with '@preconcurrency'
 29 |     public var displayLayer: AVSampleBufferDisplayLayer {
 30 |         displayView.displayLayer
    :
 61 | //    private let timer = DispatchSource.makeTimerSource(queue: DispatchQueue.main)
 62 |     public var options: KSOptions
 63 |     public weak var renderSource: OutputRenderSourceDelegate?
    |                     `- note: main actor-isolated property 'renderSource' cannot satisfy nonisolated requirement
 64 |     // AVSampleBufferAudioRenderer AVSampleBufferRenderSynchronizer AVSampleBufferDisplayLayer
 65 |     var displayView = AVSampleBufferDisplayView() {
    :
 84 |     }
 85 |
 86 |     public func play() {
    |                 |- note: main actor-isolated instance method 'play()' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'play()' 'nonisolated'
 87 |         displayLink.isPaused = false
 88 |     }
 89 |
 90 |     public func pause() {
    |                 |- note: main actor-isolated instance method 'pause()' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'pause()' 'nonisolated'
 91 |         displayLink.isPaused = true
 92 |     }
    :
142 |     #endif
143 |
144 |     public func flush() {
    |                 |- note: main actor-isolated instance method 'flush()' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'flush()' 'nonisolated'
145 |         pixelBuffer = nil
146 |         if displayView.isHidden {
/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 [#RegionIsolation::SendingRisksDataRace]
514 |                 self.play()
515 |             }
516 |             completionHandler()
    |             |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |             `- note: 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context
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 [#RegionIsolation::SendingRisksDataRace]
530 |                 self.pause()
531 |             }
532 |             completionHandler()
    |             |- warning: sending 'completionHandler' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |             `- note: 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context
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 [#RegionIsolation::SendingRisksDataRace]
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 [#RegionIsolation::SendingRisksDataRace]
    |                 `- note: 'completionHandler' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context
558 |                 return
559 |             }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/FFmpegDecode.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile FFmpegDecode.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/Filter.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Filter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/KSMEPlayer.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile KSMEPlayer.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile MEPlayerItem.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItemTrack.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile MEPlayerItemTrack.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MetalPlayView.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile MetalPlayView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/MEPlayer/MEPlayerItem.swift:494:28: warning: 'result' mutated after capture by sendable closure
483 |                 // can not seek to key frame
484 |                 let seekStartTime = CACurrentMediaTime()
485 |                 var result = avformat_seek_file(formatCtx, -1, seekMin, timeStamp, seekMax, seekFlags)
    |                     `- note: variable defined here
486 | //                var result = av_seek_frame(formatCtx, -1, timeStamp, seekFlags)
487 |                 // When seeking before the beginning of the file, and seeking fails,
    :
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)")
    :
503 |                 isSeek = true
504 |                 allPlayerItemTracks.forEach { $0.seek(time: seekToTime) }
505 |                 DispatchQueue.main.async { [weak self] in
    |                                          `- note: variable captured by sendable closure
506 |                     guard let self else { return }
507 |                     self.seekingCompletionHandler?(result >= 0)
    |                                                    `- note: capturing use
508 |                     self.seekingCompletionHandler = nil
509 |                 }
[#ActorIsolatedCall]: <https://docs.swift.org/compiler/documentation/diagnostics/actor-isolated-call>
[#ConformanceIsolation]: <https://docs.swift.org/compiler/documentation/diagnostics/conformance-isolation>
[#MutableGlobalVariable]: <https://docs.swift.org/compiler/documentation/diagnostics/mutable-global-variable>
[#NoUsage]: <https://docs.swift.org/compiler/documentation/diagnostics/no-usage>
[#RegionIsolation]: <https://docs.swift.org/compiler/documentation/diagnostics/region-isolation>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[#SendableMetatypes]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-metatypes>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
SwiftDriverJobDiscovery normal arm64 Emitting module for KSPlayer (in target 'KSPlayer' from project 'KSPlayer')
SwiftDriver\ Compilation\ Requirements KSPlayer normal arm64 com.apple.xcode.tools.swift.compiler (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-Swift-Compilation-Requirements -- /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -parse-as-library -module-name KSPlayer -Onone @/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.SwiftFileList -DSWIFT_PACKAGE -DDEBUG -DSWIFT_MODULE_RESOURCE_BUNDLE_AVAILABLE -Xcc -fmodule-map-file\=/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/GeneratedModuleMaps-iphoneos/FFmpegKit.modulemap -Xcc -fmodule-map-file\=/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/GeneratedModuleMaps-iphoneos/DisplayCriteria.modulemap -DXcode -enable-experimental-feature StrictConcurrency -plugin-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins/testing -enable-experimental-feature DebugDescriptionMacro -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk -target arm64-apple-ios15.0 -g -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -Xfrontend -serialize-debugging-options -profile-coverage-mapping -profile-generate -enable-testing -index-store-path /Users/admin/builder/spi-builder-workspace/.derivedData/Index.noindex/DataStore -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -swift-version 5 -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/PackageFrameworks -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/Developer/Library/Frameworks -emit-localized-strings -emit-localized-strings-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64 -c -j10 -enable-batch-mode -incremental -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/iphoneos27.0-24A430-e829b21a6f8c9b70876ba0858053c04440ceaa042ed91876912b2eeea4e3aa14.sdkstatcache -output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer-OutputFileMap.json -save-temps -no-color-diagnostics -explicit-module-build -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -clang-scanner-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -sdk-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules -emit-dependencies -emit-module -emit-module-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftmodule -serialize-diagnostics -dependency-scan-serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer-dependency-scan.dia -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -package-name spi_builder_workspace -emit-const-values -const-gather-protocols-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer_const_extract_protocols.json -Xcc -I/Users/admin/builder/spi-builder-workspace/.dependencies/checkouts/FFmpegKit/Sources/FFmpegKit/include -Xcc -I/Users/admin/builder/spi-builder-workspace/Sources/DisplayCriteria/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -emit-objc-header -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer-Swift.h -working-directory /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -experimental-emit-module-separately -disable-cmo
SwiftDriverJobDiscovery normal arm64 Compiling AudioGraphPlayer.swift, AudioRendererPlayer.swift, AudioUnitPlayer.swift, CircularBuffer.swift, EmbedDataSouce.swift, FFmpegAssetTrack.swift (in target 'KSPlayer' from project 'KSPlayer')
SwiftMergeGeneratedHeaders /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/GeneratedModuleMaps-iphoneos/KSPlayer-Swift.h /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer-Swift.h (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace
    builtin-swiftHeaderTool -arch arm64 /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer-Swift.h -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/GeneratedModuleMaps-iphoneos/KSPlayer-Swift.h
Copy /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.swiftmodule/arm64-apple-ios.swiftmodule /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftmodule (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace
    builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -resolve-src-symlinks -rename /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftmodule /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.swiftmodule/arm64-apple-ios.swiftmodule
Copy /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.swiftmodule/arm64-apple-ios.swiftdoc /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftdoc (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace
    builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -resolve-src-symlinks -rename /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftdoc /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.swiftmodule/arm64-apple-ios.swiftdoc
Copy /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.swiftmodule/arm64-apple-ios.abi.json /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.abi.json (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace
    builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -resolve-src-symlinks -rename /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.abi.json /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.swiftmodule/arm64-apple-ios.abi.json
Copy /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftsourceinfo (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace
    builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -resolve-src-symlinks -rename /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftsourceinfo /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo
SwiftDriverJobDiscovery normal arm64 Compiling MetalRender.swift, MotionSensor.swift, PixelBufferProtocol.swift, Transforms.swift, AudioRecognize.swift, KSParseProtocol.swift (in target 'KSPlayer' from project 'KSPlayer')
SwiftDriverJobDiscovery normal arm64 Compiling Model.swift, Resample.swift, SubtitleDecode.swift, ThumbnailController.swift, VideoToolboxDecode.swift, DisplayModel.swift (in target 'KSPlayer' from project 'KSPlayer')
SwiftDriverJobDiscovery normal arm64 Compiling MediaPlayerProtocol.swift, PlayerDefines.swift, AudioPlayerView.swift, AppKitExtend.swift, PlayerToolBar.swift, PlayerView.swift (in target 'KSPlayer' from project 'KSPlayer')
SwiftDriverJobDiscovery normal arm64 Compiling resource_bundle_accessor.swift, KSAVPlayer.swift, KSOptions.swift, KSPictureInPictureController.swift, KSPlayerLayer.swift, KSVideoPlayer.swift (in target 'KSPlayer' from project 'KSPlayer')
SwiftDriverJobDiscovery normal arm64 Compiling MacVideoPlayerView.swift, PlayerFullScreenViewController.swift, PlayerTransitionAnimator.swift, SeekView.swift, VideoPlayerView.swift (in target 'KSPlayer' from project 'KSPlayer')
SwiftDriverJobDiscovery normal arm64 Compiling UIKitExtend.swift, UXKit.swift, Utility.swift, AVFFmpegExtension.swift, AVFoundationExtension.swift, AudioEnginePlayer.swift (in target 'KSPlayer' from project 'KSPlayer')
SwiftDriverJobDiscovery normal arm64 Compiling Slider.swift, BrightnessVolume.swift, IOSVideoPlayerView.swift, KSMenu.swift, KSPlayerItem.swift (in target 'KSPlayer' from project 'KSPlayer')
SwiftDriverJobDiscovery normal arm64 Compiling KSSubtitle.swift, SubtitleDataSouce.swift, AirPlayView.swift, KSVideoPlayerView.swift, KSVideoPlayerViewBuilder.swift, LiveTextImage.swift (in target 'KSPlayer' from project 'KSPlayer')
SwiftDriverJobDiscovery normal arm64 Compiling FFmpegDecode.swift, Filter.swift, KSMEPlayer.swift, MEPlayerItem.swift, MEPlayerItemTrack.swift, MetalPlayView.swift (in target 'KSPlayer' from project 'KSPlayer')
SwiftDriver\ Compilation KSPlayer normal arm64 com.apple.xcode.tools.swift.compiler (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-Swift-Compilation -- /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -parse-as-library -module-name KSPlayer -Onone @/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.SwiftFileList -DSWIFT_PACKAGE -DDEBUG -DSWIFT_MODULE_RESOURCE_BUNDLE_AVAILABLE -Xcc -fmodule-map-file\=/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/GeneratedModuleMaps-iphoneos/FFmpegKit.modulemap -Xcc -fmodule-map-file\=/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/GeneratedModuleMaps-iphoneos/DisplayCriteria.modulemap -DXcode -enable-experimental-feature StrictConcurrency -plugin-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins/testing -enable-experimental-feature DebugDescriptionMacro -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk -target arm64-apple-ios15.0 -g -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -Xfrontend -serialize-debugging-options -profile-coverage-mapping -profile-generate -enable-testing -index-store-path /Users/admin/builder/spi-builder-workspace/.derivedData/Index.noindex/DataStore -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -swift-version 5 -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/PackageFrameworks -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/Developer/Library/Frameworks -emit-localized-strings -emit-localized-strings-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64 -c -j10 -enable-batch-mode -incremental -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/iphoneos27.0-24A430-e829b21a6f8c9b70876ba0858053c04440ceaa042ed91876912b2eeea4e3aa14.sdkstatcache -output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer-OutputFileMap.json -save-temps -no-color-diagnostics -explicit-module-build -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -clang-scanner-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -sdk-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules -emit-dependencies -emit-module -emit-module-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftmodule -serialize-diagnostics -dependency-scan-serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer-dependency-scan.dia -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -package-name spi_builder_workspace -emit-const-values -const-gather-protocols-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer_const_extract_protocols.json -Xcc -I/Users/admin/builder/spi-builder-workspace/.dependencies/checkouts/FFmpegKit/Sources/FFmpegKit/include -Xcc -I/Users/admin/builder/spi-builder-workspace/Sources/DisplayCriteria/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -emit-objc-header -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer-Swift.h -working-directory /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -experimental-emit-module-separately -disable-cmo
Ld /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.o normal (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace
    /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Xlinker -reproducible -target arm64-apple-ios15.0 -r -isysroot /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk -O0 -Xlinker -no_warn_duplicate_libraries -F/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/EagerLinkingTBDs/Debug-iphoneos -F/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/PackageFrameworks -F/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos -iframework /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks -iframework /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk/Developer/Library/Frameworks -filelist /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.LinkFileList -nostdlib -Xlinker -object_path_lto -Xlinker /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer_lto.o -Xlinker -no_deduplicate -Xlinker -debug_variant -Xlinker -dependency_info -Xlinker /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer_dependency_info.dat -fobjc-link-runtime -L/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftmodule -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.o
ExtractAppIntentsMetadata (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace
    /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/appintentsmetadataprocessor --toolchain-dir /var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v27.1.266.1.aHtPKb/Metal.xctoolchain --module-name KSPlayer --sdk-root /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS27.0.sdk --xcode-version 27A266a --platform-family iOS --deployment-target 15.0 --bundle-identifier spi-builder-workspace.KSPlayer --output /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.appintents --target-triple arm64-apple-ios15.0 --binary-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-iphoneos/KSPlayer.o --dependency-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer_dependency_info.dat --stringsdata-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/ExtractedAppShortcutsMetadata.stringsdata --source-file-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.SwiftFileList --metadata-file-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/KSPlayer.DependencyMetadataFileList --static-metadata-file-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/KSPlayer.DependencyStaticMetadataFileList --swift-const-vals-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-iphoneos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.SwiftConstValuesFileList --force --compile-time-extraction --deployment-aware-processing --no-app-shortcuts-localization
2026-09-21 18:02:40.073 appintentsmetadataprocessor[998:6069] Starting appintentsmetadataprocessor export
2026-09-21 18:02:40.156 appintentsmetadataprocessor[998:6069] Extracted no relevant App Intents symbols, skipping writing output
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
** BUILD SUCCEEDED **
2026-09-21 18:02:27.854 xcodebuild[785:5177] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
Build complete.
{
  "default_localization" : "en",
  "dependencies" : [
    {
      "identity" : "ffmpegkit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "6.1.3",
            "upper_bound" : "7.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/kingslay/FFmpegKit.git"
    }
  ],
  "manifest_display_name" : "KSPlayer",
  "name" : "KSPlayer",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "maccatalyst",
      "version" : "13.0"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "KSPlayer",
      "targets" : [
        "KSPlayer"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "KSPlayerTests",
      "module_type" : "SwiftTarget",
      "name" : "KSPlayerTests",
      "path" : "Tests/KSPlayerTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/KSPlayerTests/Resources/test.m3u",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "AudioTest.swift",
        "KSAVPlayerTest.swift",
        "KSMEPlayerTest.swift",
        "KSPlayerLayerTest.swift",
        "M3UParseTest.swift",
        "SubtitleTest.swift",
        "VideoPlayerControllerTest.swift",
        "VideoPlayerViewTest.swift"
      ],
      "target_dependencies" : [
        "KSPlayer"
      ],
      "type" : "test"
    },
    {
      "c99name" : "KSPlayer",
      "module_type" : "SwiftTarget",
      "name" : "KSPlayer",
      "path" : "Sources/KSPlayer",
      "product_dependencies" : [
        "FFmpegKit"
      ],
      "product_memberships" : [
        "KSPlayer"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Metal/Shaders.metal",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "AVPlayer/KSAVPlayer.swift",
        "AVPlayer/KSOptions.swift",
        "AVPlayer/KSPictureInPictureController.swift",
        "AVPlayer/KSPlayerLayer.swift",
        "AVPlayer/KSVideoPlayer.swift",
        "AVPlayer/MediaPlayerProtocol.swift",
        "AVPlayer/PlayerDefines.swift",
        "Audio/AudioPlayerView.swift",
        "Core/AppKitExtend.swift",
        "Core/PlayerToolBar.swift",
        "Core/PlayerView.swift",
        "Core/UIKitExtend.swift",
        "Core/UXKit.swift",
        "Core/Utility.swift",
        "MEPlayer/AVFFmpegExtension.swift",
        "MEPlayer/AVFoundationExtension.swift",
        "MEPlayer/AudioEnginePlayer.swift",
        "MEPlayer/AudioGraphPlayer.swift",
        "MEPlayer/AudioRendererPlayer.swift",
        "MEPlayer/AudioUnitPlayer.swift",
        "MEPlayer/CircularBuffer.swift",
        "MEPlayer/EmbedDataSouce.swift",
        "MEPlayer/FFmpegAssetTrack.swift",
        "MEPlayer/FFmpegDecode.swift",
        "MEPlayer/Filter.swift",
        "MEPlayer/KSMEPlayer.swift",
        "MEPlayer/MEPlayerItem.swift",
        "MEPlayer/MEPlayerItemTrack.swift",
        "MEPlayer/MetalPlayView.swift",
        "MEPlayer/Model.swift",
        "MEPlayer/Resample.swift",
        "MEPlayer/SubtitleDecode.swift",
        "MEPlayer/ThumbnailController.swift",
        "MEPlayer/VideoToolboxDecode.swift",
        "Metal/DisplayModel.swift",
        "Metal/MetalRender.swift",
        "Metal/MotionSensor.swift",
        "Metal/PixelBufferProtocol.swift",
        "Metal/Transforms.swift",
        "Subtitle/AudioRecognize.swift",
        "Subtitle/KSParseProtocol.swift",
        "Subtitle/KSSubtitle.swift",
        "Subtitle/SubtitleDataSouce.swift",
        "SwiftUI/AirPlayView.swift",
        "SwiftUI/KSVideoPlayerView.swift",
        "SwiftUI/KSVideoPlayerViewBuilder.swift",
        "SwiftUI/LiveTextImage.swift",
        "SwiftUI/Slider.swift",
        "Video/BrightnessVolume.swift",
        "Video/IOSVideoPlayerView.swift",
        "Video/KSMenu.swift",
        "Video/KSPlayerItem.swift",
        "Video/MacVideoPlayerView.swift",
        "Video/PlayerFullScreenViewController.swift",
        "Video/PlayerTransitionAnimator.swift",
        "Video/SeekView.swift",
        "Video/VideoPlayerView.swift"
      ],
      "target_dependencies" : [
        "DisplayCriteria"
      ],
      "type" : "library"
    },
    {
      "c99name" : "DisplayCriteria",
      "module_type" : "ClangTarget",
      "name" : "DisplayCriteria",
      "path" : "Sources/DisplayCriteria",
      "product_memberships" : [
        "KSPlayer"
      ],
      "sources" : [
        "DisplayCriteria.m"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.