The Swift Package Index logo.Swift Package Index

Build Information

Successful build of KSPlayer, reference 2.3.4 (bdfa2d), with Swift 6.4 for tvOS using Xcode 27.0 on 21 Sep 2026 22:02:43 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=tvOS

Build Log

/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:286:23: warning: static property 'textFontSize' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
284 |     }
285 |
286 |     public static var textFontSize = SubtitleModel.Size.standard.rawValue
    |                       |- warning: static property 'textFontSize' 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 'textFontSize' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'textFontSize' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
287 |     public static var textBold = false
288 |     public static var textItalic = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:287:23: warning: static property 'textBold' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
285 |
286 |     public static var textFontSize = SubtitleModel.Size.standard.rawValue
287 |     public static var textBold = false
    |                       |- warning: static property 'textBold' 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 'textBold' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'textBold' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
288 |     public static var textItalic = false
289 |     public static var textPosition = TextPosition()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:288:23: warning: static property 'textItalic' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
286 |     public static var textFontSize = SubtitleModel.Size.standard.rawValue
287 |     public static var textBold = false
288 |     public static var textItalic = false
    |                       |- warning: static property 'textItalic' 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 'textItalic' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'textItalic' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 |     public static var textPosition = TextPosition()
290 |     public static var audioRecognizes = [any AudioRecognize]()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:289:23: warning: static property 'textPosition' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
287 |     public static var textBold = false
288 |     public static var textItalic = false
289 |     public static var textPosition = TextPosition()
    |                       |- warning: static property 'textPosition' 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 'textPosition' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'textPosition' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
290 |     public static var audioRecognizes = [any AudioRecognize]()
291 |     private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:290:23: warning: static property 'audioRecognizes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
288 |     public static var textItalic = false
289 |     public static var textPosition = TextPosition()
290 |     public static var audioRecognizes = [any AudioRecognize]()
    |                       |- warning: static property 'audioRecognizes' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                       |- note: convert 'audioRecognizes' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'audioRecognizes' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
291 |     private var subtitleDataSouces: [SubtitleDataSouce] = KSOptions.subtitleDataSouces
292 |     @Published
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:309:17: warning: capture of 'self' with non-Sendable type 'SubtitleModel?' in a '@Sendable' closure [#SendableClosureCaptures]
231 | }
232 |
233 | open class SubtitleModel: ObservableObject {
    |            `- note: class 'SubtitleModel' does not conform to the 'Sendable' protocol
234 |     public enum Size {
235 |         case smaller
    :
307 |             // 要用async,不能在更新UI的时候,修改Publishe变量
308 |             DispatchQueue.main.async { [weak self] in
309 |                 self?.parts = []
    |                 `- warning: capture of 'self' with non-Sendable type 'SubtitleModel?' in a '@Sendable' closure [#SendableClosureCaptures]
310 |                 self?.selectedSubtitleInfo = nil
311 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:80:16: warning: static property 'subtitleDataSouces' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
 78 |
 79 | public extension KSOptions {
 80 |     static var subtitleDataSouces: [SubtitleDataSouce] = [DirectorySubtitleDataSouce()]
    |                |- warning: static property 'subtitleDataSouces' 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 'subtitleDataSouces' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: add '@MainActor' to make static property 'subtitleDataSouces' part of global actor 'MainActor'
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 81 | }
 82 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:84:23: warning: static property 'singleton' is not concurrency-safe because non-'Sendable' type 'PlistCacheSubtitleDataSouce' may have shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
 81 | }
 82 |
 83 | public class PlistCacheSubtitleDataSouce: CacheSubtitleDataSouce {
    |              `- note: class 'PlistCacheSubtitleDataSouce' does not conform to the 'Sendable' protocol
 84 |     public static let singleton = PlistCacheSubtitleDataSouce()
    |                       |- warning: static property 'singleton' is not concurrency-safe because non-'Sendable' type 'PlistCacheSubtitleDataSouce' may have shared mutable state; this is an error in the Swift 6 language mode [#MutableGlobalVariable]
    |                       |- note: add '@MainActor' to make static property 'singleton' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |     public var infos = [any SubtitleInfo]()
 86 |     private let srtCacheInfoPath: String
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:97:23: warning: capture of 'self' with non-Sendable type 'PlistCacheSubtitleDataSouce?' in a '@Sendable' closure [#SendableClosureCaptures]
 81 | }
 82 |
 83 | public class PlistCacheSubtitleDataSouce: CacheSubtitleDataSouce {
    |              `- note: class 'PlistCacheSubtitleDataSouce' does not conform to the 'Sendable' protocol
 84 |     public static let singleton = PlistCacheSubtitleDataSouce()
 85 |     public var infos = [any SubtitleInfo]()
    :
 95 |         srtInfoCaches = [String: [String]]()
 96 |         DispatchQueue.global().async { [weak self] in
 97 |             guard let self else {
    |                       `- warning: capture of 'self' with non-Sendable type 'PlistCacheSubtitleDataSouce?' in a '@Sendable' closure [#SendableClosureCaptures]
 98 |                 return
 99 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:127:27: warning: capture of 'self' with non-Sendable type 'PlistCacheSubtitleDataSouce?' in a '@Sendable' closure [#SendableClosureCaptures]
 81 | }
 82 |
 83 | public class PlistCacheSubtitleDataSouce: CacheSubtitleDataSouce {
    |              `- note: class 'PlistCacheSubtitleDataSouce' does not conform to the 'Sendable' protocol
 84 |     public static let singleton = PlistCacheSubtitleDataSouce()
 85 |     public var infos = [any SubtitleInfo]()
    :
125 |             srtInfoCaches[file] = array
126 |             DispatchQueue.global().async { [weak self] in
127 |                 guard let self else {
    |                           `- warning: capture of 'self' with non-Sendable type 'PlistCacheSubtitleDataSouce?' in a '@Sendable' closure [#SendableClosureCaptures]
128 |                     return
129 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:369:42: warning: sending 'dataSouce' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
358 |     }
359 |
360 |     public func searchSubtitle(query: String?, languages: [String]) {
    |                 `- note: isolated conformance to protocol 'SearchSubtitleDataSouce' can be introduced here
361 |         for dataSouce in subtitleDataSouces {
362 |             if let dataSouce = dataSouce as? SearchSubtitleDataSouce {
    :
367 |                 }
368 |                 Task { @MainActor in
369 |                     try? await dataSouce.searchSubtitle(query: query, languages: languages)
    |                                          |- warning: sending 'dataSouce' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |                                          `- note: 'dataSouce' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context
370 |                     subtitleInfos.append(contentsOf: dataSouce.infos)
371 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:370:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
358 |     }
359 |
360 |     public func searchSubtitle(query: String?, languages: [String]) {
    |                 `- note: isolated conformance to protocol 'SearchSubtitleDataSouce' can be introduced here
361 |         for dataSouce in subtitleDataSouces {
362 |             if let dataSouce = dataSouce as? SearchSubtitleDataSouce {
    :
368 |                 Task { @MainActor in
369 |                     try? await dataSouce.searchSubtitle(query: query, languages: languages)
370 |                     subtitleInfos.append(contentsOf: dataSouce.infos)
    |                     |- 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
371 |                 }
372 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:38: warning: sending 'dataSouce' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
374 |     }
375 |
376 |     public func addSubtitle(dataSouce: SubtitleDataSouce) {
    |                 `- note: isolated conformance to protocol 'FileURLSubtitleDataSouce' can be introduced here
377 |         if let dataSouce = dataSouce as? FileURLSubtitleDataSouce {
378 |             Task { @MainActor in
379 |                 try? await dataSouce.searchSubtitle(fileURL: url)
    |                                      |- warning: sending 'dataSouce' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
    |                                      `- note: 'dataSouce' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against code in the current isolation context
380 |                 subtitleInfos.append(contentsOf: dataSouce.infos)
381 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:62: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
374 |     }
375 |
376 |     public func addSubtitle(dataSouce: SubtitleDataSouce) {
    |                 `- note: isolated conformance to protocol 'FileURLSubtitleDataSouce' can be introduced here
377 |         if let dataSouce = dataSouce as? FileURLSubtitleDataSouce {
378 |             Task { @MainActor in
379 |                 try? await dataSouce.searchSubtitle(fileURL: url)
    |                                                              |- 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
380 |                 subtitleInfos.append(contentsOf: dataSouce.infos)
381 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:309:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
307 |             // 要用async,不能在更新UI的时候,修改Publishe变量
308 |             DispatchQueue.main.async { [weak self] in
309 |                 self?.parts = []
    |                     |- 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
310 |                 self?.selectedSubtitleInfo = nil
311 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:369:42: warning: sending value of non-Sendable type 'any SearchSubtitleDataSouce' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
367 |                 }
368 |                 Task { @MainActor in
369 |                     try? await dataSouce.searchSubtitle(query: query, languages: languages)
    |                                          |- warning: sending value of non-Sendable type 'any SearchSubtitleDataSouce' 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 SearchSubtitleDataSouce' to @concurrent instance method 'searchSubtitle(query:languages:)' risks causing races in between main actor-isolated and @concurrent uses
370 |                     subtitleInfos.append(contentsOf: dataSouce.infos)
371 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:379:38: warning: sending value of non-Sendable type 'any FileURLSubtitleDataSouce' risks causing data races; this is an error in the Swift 6 language mode [#RegionIsolation::SendingRisksDataRace]
377 |         if let dataSouce = dataSouce as? FileURLSubtitleDataSouce {
378 |             Task { @MainActor in
379 |                 try? await dataSouce.searchSubtitle(fileURL: url)
    |                                      |- warning: sending value of non-Sendable type 'any FileURLSubtitleDataSouce' 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 FileURLSubtitleDataSouce' to @concurrent instance method 'searchSubtitle(fileURL:)' risks causing races in between main actor-isolated and @concurrent uses
380 |                 subtitleInfos.append(contentsOf: dataSouce.infos)
381 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:23:17: warning: passing closure as a 'sending' parameter risks causing data races between code in the current isolation context and concurrent execution of the closure; this is an error in the Swift 6 language mode [#RegionIsolation::SendingClosureRisksDataRace]
 21 |         didSet {
 22 |             if isEnabled, parts.isEmpty {
 23 |                 Task {
    |                 `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current isolation context and concurrent execution of the closure; this is an error in the Swift 6 language mode [#RegionIsolation::SendingClosureRisksDataRace]
 24 |                     try? await parse(url: downloadURL, userAgent: userAgent)
    |                                `- note: closure captures 'self' which is accessible to code in the current isolation context
 25 |                 }
 26 |             }
[#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>
[#SendingClosureRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-closure-risks-data-race>
[#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile KSSubtitle.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile SubtitleDataSouce.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/AirPlayView.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AirPlayView.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile KSVideoPlayerView.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile KSVideoPlayerViewBuilder.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift (in target 'KSPlayer' from project 'KSPlayer')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile LiveTextImage.swift
SwiftCompile normal arm64 Compiling\ resource_bundle_accessor.swift,\ KSAVPlayer.swift,\ KSOptions.swift,\ KSPictureInPictureController.swift,\ KSPlayerLayer.swift,\ KSVideoPlayer.swift /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/KSPlayer-t.build/DerivedSources/resource_bundle_accessor.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPictureInPictureController.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSPlayerLayer.swift /Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSVideoPlayer.swift (in target 'KSPlayer' from project 'KSPlayer')
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:362:23: warning: conformance of 'KSAVPlayer' 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]
109 |
110 |     @available(tvOS 14.0, *)
111 |     public var pipController: KSPictureInPictureController? {
    |                |- note: main actor-isolated property 'pipController' cannot satisfy nonisolated requirement
    |                `- note: mark property 'pipController' 'nonisolated'
112 |         _pipController as? KSPictureInPictureController
113 |     }
114 |
115 |     public var naturalSize: CGSize = .zero
116 |     public let dynamicInfo: DynamicInfo? = nil
    |                `- note: main actor-isolated property 'dynamicInfo' cannot satisfy nonisolated requirement
117 |     @available(macOS 12.0, iOS 15.0, tvOS 15.0, *)
118 |     public var playbackCoordinator: AVPlaybackCoordinator {
    |                |- note: main actor-isolated property 'playbackCoordinator' cannot satisfy nonisolated requirement
    |                `- note: mark property 'playbackCoordinator' 'nonisolated'
119 |         playerView.player.playbackCoordinator
120 |     }
    :
126 |     }
127 |
128 |     public weak var delegate: MediaPlayerDelegate?
    |                     `- note: main actor-isolated property 'delegate' cannot satisfy nonisolated requirement
129 |     public private(set) var duration: TimeInterval = 0
130 |     public private(set) var fileSize: Double = 0
131 |     public private(set) var playableTime: TimeInterval = 0
    |                             |- note: main actor-isolated property 'playableTime' cannot satisfy nonisolated requirement
    |                             `- note: change property 'playableTime' to a 'nonisolated let' constant
132 |     public let chapters: [Chapter] = []
133 |     public var playbackRate: Float = 1 {
    |                `- note: main actor-isolated property 'playbackRate' cannot satisfy nonisolated requirement
134 |         didSet {
135 |             if playbackState == .playing {
    :
139 |     }
140 |
141 |     public var playbackVolume: Float = 1.0 {
    |                `- note: main actor-isolated property 'playbackVolume' cannot satisfy nonisolated requirement
142 |         didSet {
143 |             if player.volume != playbackVolume {
    :
147 |     }
148 |
149 |     public private(set) var loadState = MediaLoadState.idle {
    |                             |- note: main actor-isolated property 'loadState' cannot satisfy nonisolated requirement
    |                             `- note: change property 'loadState' to a 'nonisolated let' constant
150 |         didSet {
151 |             if loadState != oldValue {
    :
158 |     }
159 |
160 |     public private(set) var playbackState = MediaPlaybackState.idle {
    |                             |- note: main actor-isolated property 'playbackState' cannot satisfy nonisolated requirement
    |                             `- note: change property 'playbackState' to a 'nonisolated let' constant
161 |         didSet {
162 |             if playbackState != oldValue {
    :
169 |     }
170 |
171 |     public private(set) var isReadyToPlay = false {
    |                             |- note: main actor-isolated property 'isReadyToPlay' cannot satisfy nonisolated requirement
    |                             `- note: change property 'isReadyToPlay' to a 'nonisolated let' constant
172 |         didSet {
173 |             if isReadyToPlay != oldValue {
    :
185 |     public let isExternalPlaybackActive = false
186 |     #else
187 |     public var allowsExternalPlayback: Bool {
    |                |- note: main actor-isolated property 'allowsExternalPlayback' cannot satisfy nonisolated requirement
    |                `- note: mark property 'allowsExternalPlayback' 'nonisolated'
188 |         get {
189 |             player.allowsExternalPlayback
    :
197 |     public var usesExternalPlaybackWhileExternalScreenIsActive = false
198 |     #else
199 |     public var usesExternalPlaybackWhileExternalScreenIsActive: Bool {
    |                |- note: main actor-isolated property 'usesExternalPlaybackWhileExternalScreenIsActive' cannot satisfy nonisolated requirement
    |                `- note: mark property 'usesExternalPlaybackWhileExternalScreenIsActive' 'nonisolated'
200 |         get {
201 |             player.usesExternalPlaybackWhileExternalScreenIsActive
    :
207 |     #endif
208 |
209 |     public var isExternalPlaybackActive: Bool {
    |                |- note: main actor-isolated property 'isExternalPlaybackActive' cannot satisfy nonisolated requirement
    |                `- note: mark property 'isExternalPlaybackActive' 'nonisolated'
210 |         player.isExternalPlaybackActive
211 |     }
212 |     #endif
213 |
214 |     public required init(url: URL, options: KSOptions) {
    |                     |- note: main actor-isolated initializer 'init(url:options:)' cannot satisfy nonisolated requirement
    |                     `- note: mark initializer 'init(url:options:)' 'nonisolated'
215 |         KSOptions.setAudioSession()
216 |         urlAsset = AVURLAsset(url: url, options: options.avOptions)
    :
360 | }
361 |
362 | extension KSAVPlayer: MediaPlayerProtocol {
    |                       |- warning: conformance of 'KSAVPlayer' 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'
363 |     public var subtitleDataSouce: SubtitleDataSouce? { nil }
    |                |- note: main actor-isolated property 'subtitleDataSouce' cannot satisfy nonisolated requirement
    |                `- note: mark property 'subtitleDataSouce' 'nonisolated'
364 |     public var isPlaying: Bool { player.rate > 0 ? true : playbackState == .playing }
    |                |- note: main actor-isolated property 'isPlaying' cannot satisfy nonisolated requirement
    |                `- note: mark property 'isPlaying' 'nonisolated'
365 |     public var view: UIView? { playerView }
    |                |- note: main actor-isolated property 'view' cannot satisfy nonisolated requirement
    |                `- note: mark property 'view' 'nonisolated'
366 |     public var currentPlaybackTime: TimeInterval {
367 |         get {
    :
427 |     }
428 |
429 |     public func play() {
    |                 |- note: main actor-isolated instance method 'play()' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'play()' 'nonisolated'
430 |         KSLog("play \(self)")
431 |         playbackState = .playing
432 |     }
433 |
434 |     public func pause() {
    |                 |- note: main actor-isolated instance method 'pause()' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'pause()' 'nonisolated'
435 |         KSLog("pause \(self)")
436 |         playbackState = .paused
    :
446 |     }
447 |
448 |     public func replace(url: URL, options: KSOptions) {
    |                 |- note: main actor-isolated instance method 'replace(url:options:)' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'replace(url:options:)' 'nonisolated'
449 |         KSLog("replaceUrl \(self)")
450 |         shutdown()
    :
453 |     }
454 |
455 |     public var contentMode: UIViewContentMode {
    |                |- note: main actor-isolated property 'contentMode' cannot satisfy nonisolated requirement
    |                `- note: mark property 'contentMode' 'nonisolated'
456 |         get {
457 |             playerView.contentMode
    :
462 |     }
463 |
464 |     public func enterBackground() {
    |                 |- note: main actor-isolated instance method 'enterBackground()' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'enterBackground()' 'nonisolated'
465 |         playerView.playerLayer.player = nil
466 |     }
467 |
468 |     public func enterForeground() {
    |                 |- note: main actor-isolated instance method 'enterForeground()' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'enterForeground()' 'nonisolated'
469 |         playerView.playerLayer.player = playerView.player
470 |     }
471 |
472 |     public var seekable: Bool {
    |                |- note: main actor-isolated property 'seekable' cannot satisfy nonisolated requirement
    |                `- note: mark property 'seekable' 'nonisolated'
473 |         !(player.currentItem?.seekableTimeRanges.isEmpty ?? true)
474 |     }
475 |
476 |     public var isMuted: Bool {
    |                |- note: main actor-isolated property 'isMuted' cannot satisfy nonisolated requirement
    |                `- note: mark property 'isMuted' 'nonisolated'
477 |         get {
478 |             player.isMuted
    :
483 |     }
484 |
485 |     public func tracks(mediaType: AVFoundation.AVMediaType) -> [MediaPlayerTrack] {
    |                 |- note: main actor-isolated instance method 'tracks(mediaType:)' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'tracks(mediaType:)' 'nonisolated'
486 |         player.currentItem?.tracks.filter { $0.assetTrack?.mediaType == mediaType }.map { AVMediaPlayerTrack(track: $0) } ?? []
487 |     }
488 |
489 |     public func select(track: some MediaPlayerTrack) {
    |                 |- note: main actor-isolated instance method 'select(track:)' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'select(track:)' 'nonisolated'
490 |         player.currentItem?.tracks.filter { $0.assetTrack?.mediaType == track.mediaType }.forEach { $0.isEnabled = false }
491 |         track.isEnabled = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:362:1: warning: conformance of 'KSAVPlayer' 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]
113 |     }
114 |
115 |     public var naturalSize: CGSize = .zero
    |                |- note: main actor-isolated property 'naturalSize' cannot satisfy nonisolated requirement
    |                `- note: change property 'naturalSize' to a 'nonisolated let' constant
116 |     public let dynamicInfo: DynamicInfo? = nil
117 |     @available(macOS 12.0, iOS 15.0, tvOS 15.0, *)
    :
127 |
128 |     public weak var delegate: MediaPlayerDelegate?
129 |     public private(set) var duration: TimeInterval = 0
    |                             |- note: main actor-isolated property 'duration' cannot satisfy nonisolated requirement
    |                             `- note: change property 'duration' to a 'nonisolated let' constant
130 |     public private(set) var fileSize: Double = 0
    |                             |- note: main actor-isolated property 'fileSize' cannot satisfy nonisolated requirement
    |                             `- note: change property 'fileSize' to a 'nonisolated let' constant
131 |     public private(set) var playableTime: TimeInterval = 0
132 |     public let chapters: [Chapter] = []
    |                `- note: main actor-isolated property 'chapters' cannot satisfy nonisolated requirement
133 |     public var playbackRate: Float = 1 {
134 |         didSet {
    :
360 | }
361 |
362 | extension KSAVPlayer: MediaPlayerProtocol {
    | |- warning: conformance of 'KSAVPlayer' 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'
363 |     public var subtitleDataSouce: SubtitleDataSouce? { nil }
364 |     public var isPlaying: Bool { player.rate > 0 ? true : playbackState == .playing }
365 |     public var view: UIView? { playerView }
366 |     public var currentPlaybackTime: TimeInterval {
    |                |- note: main actor-isolated property 'currentPlaybackTime' cannot satisfy nonisolated requirement
    |                `- note: mark property 'currentPlaybackTime' 'nonisolated'
367 |         get {
368 |             if shouldSeekTo > 0 {
    :
397 |     }
398 |
399 |     public func seek(time: TimeInterval, completion: @escaping ((Bool) -> Void)) {
    |                 |- note: main actor-isolated instance method 'seek(time:completion:)' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'seek(time:completion:)' 'nonisolated'
400 |         let time = max(time, 0)
401 |         shouldSeekTo = time
    :
413 |     }
414 |
415 |     public func prepareToPlay() {
    |                 |- note: main actor-isolated instance method 'prepareToPlay()' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'prepareToPlay()' 'nonisolated'
416 |         KSLog("prepareToPlay \(self)")
417 |         options.prepareTime = CACurrentMediaTime()
    :
437 |     }
438 |
439 |     public func shutdown() {
    |                 |- note: main actor-isolated instance method 'shutdown()' cannot satisfy nonisolated requirement
    |                 `- note: mark instance method 'shutdown()' 'nonisolated'
440 |         KSLog("shutdown \(self)")
441 |         isReadyToPlay = false
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:514:27: warning: conformance of 'AVMediaPlayerTrack' to protocol 'MediaPlayerTrack' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode [#ConformanceIsolation]
512 | }
513 |
514 | class AVMediaPlayerTrack: MediaPlayerTrack {
    |                           |- warning: conformance of 'AVMediaPlayerTrack' to protocol 'MediaPlayerTrack' 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'
515 |     let formatDescription: CMFormatDescription?
516 |     let description: String
    :
529 |     var isPlayable: Bool
530 |     @MainActor
531 |     var isEnabled: Bool {
    |         `- note: main actor-isolated property 'isEnabled' cannot satisfy nonisolated requirement
532 |         get {
533 |             track.isEnabled
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:220:18: warning: call to main actor-isolated instance method 'observer(playerItem:)' in a synchronous nonisolated context [#ActorIsolatedCall]
218 |         itemObservation = player.observe(\.currentItem) { [weak self] player, _ in
219 |             guard let self else { return }
220 |             self.observer(playerItem: player.currentItem)
    |                  `- warning: call to main actor-isolated instance method 'observer(playerItem:)' in a synchronous nonisolated context [#ActorIsolatedCall]
221 |         }
222 |     }
    :
324 |     }
325 |
326 |     private func observer(playerItem: AVPlayerItem?) {
    |                  `- note: calls to instance method 'observer(playerItem:)' from outside of its actor context are implicitly asynchronous
327 |         NotificationCenter.default.removeObserver(self, name: .AVPlayerItemDidPlayToEndTime, object: playerItem)
328 |         NotificationCenter.default.removeObserver(self, name: .AVPlayerItemFailedToPlayToEndTime, object: playerItem)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:313:22: warning: main actor-isolated property 'delegate' can not be referenced from a Sendable closure
126 |     }
127 |
128 |     public weak var delegate: MediaPlayerDelegate?
    |                     `- note: property declared here
129 |     public private(set) var duration: TimeInterval = 0
130 |     public private(set) var fileSize: Double = 0
    :
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: main actor-isolated property 'delegate' can not be referenced from a Sendable closure
314 |             }
315 |             loopStatusObservation = playerLooper?.observe(\.status) { [weak self] playerLooper, _ in
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:313:32: warning: call to main actor-isolated instance method 'playBack(player:loopCount:)' in a synchronous nonisolated context [#ActorIsolatedCall]
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: call to main actor-isolated instance method 'playBack(player:loopCount:)' in a synchronous nonisolated context [#ActorIsolatedCall]
314 |             }
315 |             loopStatusObservation = playerLooper?.observe(\.status) { [weak self] playerLooper, _ in
/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/AVPlayer/KSAVPlayer.swift:318:26: warning: main actor-isolated property 'error' can not be mutated from a Sendable closure
 91 |     private var loopStatusObservation: NSKeyValueObservation?
 92 |     private var mediaPlayerTracks = [AVMediaPlayerTrack]()
 93 |     private var error: Error? {
    |                 `- note: mutation of this property is only permitted within the actor
 94 |         didSet {
 95 |             if let error {
    :
316 |                 guard let self else { return }
317 |                 if playerLooper.status == .failed {
318 |                     self.error = playerLooper.error
    |                          `- warning: main actor-isolated property 'error' can not be mutated from a Sendable closure
319 |                 }
320 |             }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:356:93: warning: converting non-Sendable function value to '@Sendable (AVPlayerItem, NSKeyValueObservedChange<Bool>) -> Void' may introduce data races
354 |             }
355 |         }
356 |         bufferEmptyObservation = playerItem.observe(\.isPlaybackBufferEmpty, changeHandler: changeHandler)
    |                                                                                             `- warning: converting non-Sendable function value to '@Sendable (AVPlayerItem, NSKeyValueObservedChange<Bool>) -> Void' may introduce data races
357 |         likelyToKeepUpObservation = playerItem.observe(\.isPlaybackLikelyToKeepUp, changeHandler: changeHandler)
358 |         bufferFullObservation = playerItem.observe(\.isPlaybackBufferFull, changeHandler: changeHandler)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSAVPlayer.swift:357:99: warning: converting non-Sendable function value to '@Sendable (AVPlayerItem, NSKeyValueObservedChange<Bool>) -> Void' may introduce data races
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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/KSOptions.swift:345:57: warning: 'windows' was deprecated in tvOS 15.0: Use UIWindowScene.windows on a relevant window scene instead [#DeprecatedDeclaration]
343 |          例如退出一个视频,然后在3s内重新进入的话。所以不判断isDisplayModeSwitchInProgress了
344 |          */
345 |         guard let displayManager = UIApplication.shared.windows.first?.avDisplayManager,
    |                                                         `- warning: 'windows' was deprecated in tvOS 15.0: Use UIWindowScene.windows on a relevant window scene instead [#DeprecatedDeclaration]
346 |               displayManager.isDisplayCriteriaMatchingEnabled
347 |         else {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:426:34: warning: 'windows' was deprecated in tvOS 15.0: Use UIWindowScene.windows on a relevant window scene instead [#DeprecatedDeclaration]
424 |         #if os(tvOS) || os(xrOS)
425 |         runOnMainThread {
426 |             UIApplication.shared.windows.first?.avDisplayManager.preferredDisplayCriteria = nil
    |                                  `- warning: 'windows' was deprecated in tvOS 15.0: Use UIWindowScene.windows on a relevant window scene instead [#DeprecatedDeclaration]
427 |         }
428 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:426:49: warning: main actor-isolated property 'avDisplayManager' can not be mutated from a nonisolated context
424 |         #if os(tvOS) || os(xrOS)
425 |         runOnMainThread {
426 |             UIApplication.shared.windows.first?.avDisplayManager.preferredDisplayCriteria = nil
    |                                                 `- warning: main actor-isolated property 'avDisplayManager' can not be mutated from a nonisolated context
427 |         }
428 |         #endif
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVKit.framework/Headers/UIWindow.h:27:51: note: mutation of this property is only permitted within the actor
25 | @property (nonatomic, readonly) AVDisplayManager *avDisplayManager API_AVAILABLE(tvos(11.2), visionos(1.0));
26 | #else
27 | @property (nonatomic, readonly) AVDisplayManager *avDisplayManager API_AVAILABLE(tvos(11.2));
   |                                                   `- note: mutation of this property is only permitted within the actor
28 | #endif // TARGET_OS_VISION
29 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:426:34: warning: main actor-isolated property 'windows' can not be mutated from a nonisolated context
424 |         #if os(tvOS) || os(xrOS)
425 |         runOnMainThread {
426 |             UIApplication.shared.windows.first?.avDisplayManager.preferredDisplayCriteria = nil
    |                                  `- warning: main actor-isolated property 'windows' can not be mutated from a nonisolated context
427 |         }
428 |         #endif
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:109:62: note: mutation of this property is only permitted within the actor
107 |
108 | @property(nullable, nonatomic,readonly) UIWindow *keyWindow API_DEPRECATED("Should not be used for applications that support multiple scenes as it returns a key window across all connected scenes", ios(2.0, 13.0)) API_UNAVAILABLE(visionos, watchos);
109 | @property(nonatomic,readonly) NSArray<__kindof UIWindow *>  *windows API_DEPRECATED("Use UIWindowScene.windows on a relevant window scene instead", ios(2.0, 15.0), visionos(1.0, 1.0)) API_UNAVAILABLE(watchos);
    |                                                              `- note: mutation of this property is only permitted within the actor
110 |
111 | - (BOOL)sendAction:(SEL)action to:(nullable id)target from:(nullable id)sender forEvent:(nullable UIEvent *)event;
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/AVPlayer/KSOptions.swift:426:27: warning: main actor-isolated class property 'shared' can not be mutated from a nonisolated context
424 |         #if os(tvOS) || os(xrOS)
425 |         runOnMainThread {
426 |             UIApplication.shared.windows.first?.avDisplayManager.preferredDisplayCriteria = nil
    |                           `- warning: main actor-isolated class property 'shared' can not be mutated from a nonisolated context
427 |         }
428 |         #endif
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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: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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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 tvOS 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 tvOS 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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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 tvOS 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 tvOS 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 tvOS 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 tvOS 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 tvOS 13.0: Use AVPlayer.externalPlaybackActive instead. [#DeprecatedDeclaration]
676 |             player.usesExternalPlaybackWhileExternalScreenIsActive = true
677 |         }
678 |         isWirelessRouteActive = volumeView.isWirelessRouteActive
    |                                            `- warning: 'isWirelessRouteActive' was deprecated in tvOS 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/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-appletvos/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
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-appletvos/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-appletvos/FFmpegKit.modulemap -Xcc -fmodule-map-file\=/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/GeneratedModuleMaps-appletvos/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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -target arm64-apple-tvos15.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-appletvos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/PackageFrameworks -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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-appletvos/KSPlayer-t.build/Objects-normal/arm64 -c -j10 -enable-batch-mode -incremental -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/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-appletvos/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-appletvos/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-appletvos/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-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/KSPlayer-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/KSPlayer-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/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-appletvos/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-appletvos/KSPlayer-Swift.h /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/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-appletvos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer-Swift.h -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/GeneratedModuleMaps-appletvos/KSPlayer-Swift.h
Copy /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/KSPlayer.swiftmodule/arm64-apple-tvos.swiftmodule /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/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-appletvos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftmodule /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/KSPlayer.swiftmodule/arm64-apple-tvos.swiftmodule
Copy /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/KSPlayer.swiftmodule/arm64-apple-tvos.swiftdoc /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/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-appletvos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftdoc /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/KSPlayer.swiftmodule/arm64-apple-tvos.swiftdoc
Copy /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/KSPlayer.swiftmodule/arm64-apple-tvos.abi.json /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/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-appletvos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.abi.json /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/KSPlayer.swiftmodule/arm64-apple-tvos.abi.json
Copy /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/KSPlayer.swiftmodule/Project/arm64-apple-tvos.swiftsourceinfo /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/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-appletvos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftsourceinfo /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/KSPlayer.swiftmodule/Project/arm64-apple-tvos.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 Slider.swift, BrightnessVolume.swift, IOSVideoPlayerView.swift, KSMenu.swift, KSPlayerItem.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 KSSubtitle.swift, SubtitleDataSouce.swift, AirPlayView.swift, KSVideoPlayerView.swift, KSVideoPlayerViewBuilder.swift, LiveTextImage.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 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-appletvos/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-appletvos/FFmpegKit.modulemap -Xcc -fmodule-map-file\=/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/GeneratedModuleMaps-appletvos/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/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -target arm64-apple-tvos15.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-appletvos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/PackageFrameworks -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.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-appletvos/KSPlayer-t.build/Objects-normal/arm64 -c -j10 -enable-batch-mode -incremental -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/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-appletvos/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-appletvos/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-appletvos/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-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/KSPlayer-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/KSPlayer-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/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-appletvos/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-appletvos/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-tvos15.0 -r -isysroot /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -O0 -Xlinker -no_warn_duplicate_libraries -F/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/EagerLinkingTBDs/Debug-appletvos -F/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/PackageFrameworks -F/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -iframework /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -iframework /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/Developer/Library/Frameworks -filelist /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/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-appletvos/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-appletvos/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/appletvos -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.swiftmodule -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/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.HmaNXE/Metal.xctoolchain --module-name KSPlayer --sdk-root /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk --xcode-version 27A266a --platform-family tvOS --deployment-target 15.0 --bundle-identifier spi-builder-workspace.KSPlayer --output /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/KSPlayer.appintents --target-triple arm64-apple-tvos15.0 --binary-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/KSPlayer.o --dependency-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/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-appletvos/KSPlayer-t.build/Objects-normal/arm64/ExtractedAppShortcutsMetadata.stringsdata --source-file-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.SwiftFileList --metadata-file-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/KSPlayer-t.build/KSPlayer.DependencyMetadataFileList --static-metadata-file-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/KSPlayer-t.build/KSPlayer.DependencyStaticMetadataFileList --swift-const-vals-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/KSPlayer.build/Debug-appletvos/KSPlayer-t.build/Objects-normal/arm64/KSPlayer.SwiftConstValuesFileList --force --compile-time-extraction --deployment-aware-processing --no-app-shortcuts-localization
2026-09-21 18:02:37.934 appintentsmetadataprocessor[988:6068] Starting appintentsmetadataprocessor export
2026-09-21 18:02:38.026 appintentsmetadataprocessor[988:6068] 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/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
** BUILD SUCCEEDED **
2026-09-21 18:02:27.073 xcodebuild[783:5207] [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.