The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of KSPlayer, reference main (8fe5fe), with Swift 6.0 for macOS (SPM) on 5 Aug 2025 07:20:41 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64

Build Log

 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
 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
    |                       |- note: annotate 'singleton' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |     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
 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
 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
 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
128 |                     return
129 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:218:25: warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
216 |                 providers.first?.loadDataRepresentation(forTypeIdentifier: "public.file-url") { data, _ in
217 |                     if let data, let path = NSString(data: data, encoding: 4), let url = URL(string: path as String) {
218 |                         openURL(url)
    |                         `- warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
219 |                     }
220 |                 }
    :
302 |     }
303 |
304 |     public func openURL(_ url: URL) {
    |                 `- note: calls to instance method 'openURL' from outside of its actor context are implicitly asynchronous
305 |         runOnMainThread {
306 |             if url.isSubtitle {
/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
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
    |                       |- note: convert 'textPosition' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textPosition' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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:280:23: warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 |     }
279 |
280 |     public static var textColor: Color = .white
    |                       |- warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |     public static var textBackgroundColor: Color = .clear
282 |     public static var textFont: UIFont {
/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
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
    |                       |- note: convert 'textItalic' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textItalic' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 |     public static var textPosition = TextPosition()
290 |     public static var audioRecognizes = [any AudioRecognize]()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
279 |
280 |     public static var textColor: Color = .white
281 |     public static var textBackgroundColor: Color = .clear
    |                       |- warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textBackgroundColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
282 |     public static var textFont: UIFont {
283 |         textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:58:51: warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
56 |             do {
57 |                 let configuration = ImageAnalyzer.Configuration([.text])
58 |                 let analysis = try await analyzer.analyze(image, orientation: .up, configuration: configuration)
   |                                                   `- warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
59 |                 interaction.preferredInteractionTypes = .textSelection
60 |                 interaction.analysis = analysis
VisionKit.ImageAnalysis:2:20: note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
1 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
2 | final public class ImageAnalysis {
  |                    `- note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
3 |     final public var transcript: String { get }
4 |     final public func hasResults(for analysisTypes: ImageAnalyzer.AnalysisTypes) -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
 8 | import SwiftUI
 9 | #if canImport(VisionKit)
10 | import VisionKit
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
11 |
12 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:23:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 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 task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 24 |                     try? await parse(url: downloadURL, userAgent: userAgent)
    |                                `- note: closure captures 'self' which is accessible to code in the current task
 25 |                 }
 26 |             }
[82/91] Compiling KSPlayer AirPlayView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/AirPlayView.swift:11:9: warning: unknown operating system for build configuration 'os'
 9 | import SwiftUI
10 |
11 | #if !os(xrOS)
   |         |- warning: unknown operating system for build configuration 'os'
   |         |- note: did you mean 'tvOS'?
   |         `- note: did you mean 'iOS'?
12 | public struct AirPlayView: UIViewRepresentable {
13 |     public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:143:27: warning: unknown operating system for build configuration 'os'
141 |             }
142 |
143 |         #if os(iOS) || os(xrOS)
    |                           |- warning: unknown operating system for build configuration 'os'
    |                           |- note: did you mean 'tvOS'?
    |                           `- note: did you mean 'iOS'?
144 |             .navigationBarTitleDisplayMode(.inline)
145 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:150:17: warning: unknown operating system for build configuration 'os'
148 |         .focused($focusableField, equals: .play)
149 |         #endif
150 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
151 |             .onKeyPressLeftArrow {
152 |             playerCoordinator.skip(interval: -15)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:229:21: warning: unknown operating system for build configuration 'os'
227 |         VStack {
228 |             VideoControllerView(config: playerCoordinator, subtitleModel: playerCoordinator.subtitleModel, title: $title, volumeSliderSize: playerWidth / 4)
229 |             #if !os(xrOS)
    |                     |- warning: unknown operating system for build configuration 'os'
    |                     |- note: did you mean 'tvOS'?
    |                     `- note: did you mean 'iOS'?
230 |             // 设置opacity为0,还是会去更新View。所以只能这样了
231 |             if playerCoordinator.isMaskShow {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:242:16: warning: unknown operating system for build configuration 'os'
240 |             #endif
241 |         }
242 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
243 |         .ornament(visibility: playerCoordinator.isMaskShow ? .visible : .hidden, attachmentAnchor: .scene(.bottom)) {
244 |             ornamentView(playerWidth: playerWidth)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:279:16: warning: unknown operating system for build configuration 'os'
277 |         .padding(.vertical, 24)
278 |         .padding(.horizontal, 36)
279 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
280 |             .glassBackgroundEffect()
281 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:406:25: warning: unknown operating system for build configuration 'os'
404 |             #else
405 |             HStack {
406 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
407 |                 Button {
408 |                     dismiss()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:421:28: warning: unknown operating system for build configuration 'os'
419 |                 if let audioTracks = config.playerLayer?.player.tracks(mediaType: .audio), !audioTracks.isEmpty {
420 |                     audioButton(audioTracks: audioTracks)
421 |                     #if os(xrOS)
    |                            |- warning: unknown operating system for build configuration 'os'
    |                            |- note: did you mean 'tvOS'?
    |                            `- note: did you mean 'iOS'?
422 |                         .aspectRatio(1, contentMode: .fit)
423 |                         .glassBackgroundEffect()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:427:25: warning: unknown operating system for build configuration 'os'
425 |                 }
426 |                 muteButton
427 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
428 |                 contentModeButton
429 |                 subtitleButton
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:433:21: warning: unknown operating system for build configuration 'os'
431 |             }
432 |             Spacer()
433 |             #if !os(xrOS)
    |                     |- warning: unknown operating system for build configuration 'os'
    |                     |- note: did you mean 'tvOS'?
    |                     `- note: did you mean 'iOS'?
434 |             KSVideoPlayerViewBuilder.playbackControlView(config: config)
435 |             Spacer()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:456:16: warning: unknown operating system for build configuration 'os'
454 |
455 |     private var muteButton: some View {
456 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
457 |         HStack {
458 |             Slider(value: $config.playbackVolume, in: 0 ... 1)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:491:20: warning: unknown operating system for build configuration 'os'
489 |         } label: {
490 |             Image(systemName: "waveform.circle.fill")
491 |             #if os(xrOS)
    |                    |- warning: unknown operating system for build configuration 'os'
    |                    |- note: did you mean 'tvOS'?
    |                    `- note: did you mean 'iOS'?
492 |                 .padding()
493 |                 .clipShape(Circle())
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:577:24: warning: unknown operating system for build configuration 'os'
575 |                 }
576 |                 .frame(maxHeight: 20)
577 |                 #if os(xrOS)
    |                        |- warning: unknown operating system for build configuration 'os'
    |                        |- note: did you mean 'tvOS'?
    |                        `- note: did you mean 'iOS'?
578 |                     .tint(.white.opacity(0.8))
579 |                 #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:709:63: warning: unknown operating system for build configuration 'os'
707 |             }
708 |         }
709 |         #if os(macOS) || targetEnvironment(macCatalyst) || os(xrOS)
    |                                                               |- warning: unknown operating system for build configuration 'os'
    |                                                               |- note: did you mean 'tvOS'?
    |                                                               `- note: did you mean 'iOS'?
710 |         .toolbar {
711 |             Button("Done") {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:16:20: warning: unknown operating system for build configuration 'os'
 14 |         HStack(spacing: spacing) {
 15 |             // Playback controls don't need spacers for visionOS, since the controls are laid out in a HStack.
 16 |             #if os(xrOS)
    |                    |- warning: unknown operating system for build configuration 'os'
    |                    |- note: did you mean 'tvOS'?
    |                    `- note: did you mean 'iOS'?
 17 |             backwardButton(config: config)
 18 |             playButton(config: config)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:111:16: warning: unknown operating system for build configuration 'os'
109 | private extension KSVideoPlayerViewBuilder {
110 |     static var playSystemName: String {
111 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
112 |         "play.fill"
113 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:119:16: warning: unknown operating system for build configuration 'os'
117 |
118 |     static var pauseSystemName: String {
119 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
120 |         "pause.fill"
121 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:127:16: warning: unknown operating system for build configuration 'os'
125 |
126 |     static var speakerSystemName: String {
127 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
128 |         "speaker.fill"
129 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:135:16: warning: unknown operating system for build configuration 'os'
133 |
134 |     static var speakerDisabledSystemName: String {
135 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
136 |         "speaker.slash.fill"
137 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:186:16: warning: unknown operating system for build configuration 'os'
184 |                 .font(.largeTitle)
185 |         }
186 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
187 |         .contentTransition(.symbolEffect(.replace))
188 |         #endif
/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
 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
    |                |- note: convert 'subtitleDataSouces' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'subtitleDataSouces' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 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
 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
    |                       |- note: annotate 'singleton' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |     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
 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
 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
 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
128 |                     return
129 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:218:25: warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
216 |                 providers.first?.loadDataRepresentation(forTypeIdentifier: "public.file-url") { data, _ in
217 |                     if let data, let path = NSString(data: data, encoding: 4), let url = URL(string: path as String) {
218 |                         openURL(url)
    |                         `- warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
219 |                     }
220 |                 }
    :
302 |     }
303 |
304 |     public func openURL(_ url: URL) {
    |                 `- note: calls to instance method 'openURL' from outside of its actor context are implicitly asynchronous
305 |         runOnMainThread {
306 |             if url.isSubtitle {
/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
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
    |                       |- note: convert 'textPosition' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textPosition' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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:280:23: warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 |     }
279 |
280 |     public static var textColor: Color = .white
    |                       |- warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |     public static var textBackgroundColor: Color = .clear
282 |     public static var textFont: UIFont {
/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
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
    |                       |- note: convert 'textItalic' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textItalic' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 |     public static var textPosition = TextPosition()
290 |     public static var audioRecognizes = [any AudioRecognize]()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
279 |
280 |     public static var textColor: Color = .white
281 |     public static var textBackgroundColor: Color = .clear
    |                       |- warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textBackgroundColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
282 |     public static var textFont: UIFont {
283 |         textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:58:51: warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
56 |             do {
57 |                 let configuration = ImageAnalyzer.Configuration([.text])
58 |                 let analysis = try await analyzer.analyze(image, orientation: .up, configuration: configuration)
   |                                                   `- warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
59 |                 interaction.preferredInteractionTypes = .textSelection
60 |                 interaction.analysis = analysis
VisionKit.ImageAnalysis:2:20: note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
1 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
2 | final public class ImageAnalysis {
  |                    `- note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
3 |     final public var transcript: String { get }
4 |     final public func hasResults(for analysisTypes: ImageAnalyzer.AnalysisTypes) -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
 8 | import SwiftUI
 9 | #if canImport(VisionKit)
10 | import VisionKit
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
11 |
12 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:23:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 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 task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 24 |                     try? await parse(url: downloadURL, userAgent: userAgent)
    |                                `- note: closure captures 'self' which is accessible to code in the current task
 25 |                 }
 26 |             }
[83/91] Compiling KSPlayer KSVideoPlayerView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/AirPlayView.swift:11:9: warning: unknown operating system for build configuration 'os'
 9 | import SwiftUI
10 |
11 | #if !os(xrOS)
   |         |- warning: unknown operating system for build configuration 'os'
   |         |- note: did you mean 'tvOS'?
   |         `- note: did you mean 'iOS'?
12 | public struct AirPlayView: UIViewRepresentable {
13 |     public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:143:27: warning: unknown operating system for build configuration 'os'
141 |             }
142 |
143 |         #if os(iOS) || os(xrOS)
    |                           |- warning: unknown operating system for build configuration 'os'
    |                           |- note: did you mean 'tvOS'?
    |                           `- note: did you mean 'iOS'?
144 |             .navigationBarTitleDisplayMode(.inline)
145 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:150:17: warning: unknown operating system for build configuration 'os'
148 |         .focused($focusableField, equals: .play)
149 |         #endif
150 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
151 |             .onKeyPressLeftArrow {
152 |             playerCoordinator.skip(interval: -15)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:229:21: warning: unknown operating system for build configuration 'os'
227 |         VStack {
228 |             VideoControllerView(config: playerCoordinator, subtitleModel: playerCoordinator.subtitleModel, title: $title, volumeSliderSize: playerWidth / 4)
229 |             #if !os(xrOS)
    |                     |- warning: unknown operating system for build configuration 'os'
    |                     |- note: did you mean 'tvOS'?
    |                     `- note: did you mean 'iOS'?
230 |             // 设置opacity为0,还是会去更新View。所以只能这样了
231 |             if playerCoordinator.isMaskShow {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:242:16: warning: unknown operating system for build configuration 'os'
240 |             #endif
241 |         }
242 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
243 |         .ornament(visibility: playerCoordinator.isMaskShow ? .visible : .hidden, attachmentAnchor: .scene(.bottom)) {
244 |             ornamentView(playerWidth: playerWidth)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:279:16: warning: unknown operating system for build configuration 'os'
277 |         .padding(.vertical, 24)
278 |         .padding(.horizontal, 36)
279 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
280 |             .glassBackgroundEffect()
281 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:406:25: warning: unknown operating system for build configuration 'os'
404 |             #else
405 |             HStack {
406 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
407 |                 Button {
408 |                     dismiss()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:421:28: warning: unknown operating system for build configuration 'os'
419 |                 if let audioTracks = config.playerLayer?.player.tracks(mediaType: .audio), !audioTracks.isEmpty {
420 |                     audioButton(audioTracks: audioTracks)
421 |                     #if os(xrOS)
    |                            |- warning: unknown operating system for build configuration 'os'
    |                            |- note: did you mean 'tvOS'?
    |                            `- note: did you mean 'iOS'?
422 |                         .aspectRatio(1, contentMode: .fit)
423 |                         .glassBackgroundEffect()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:427:25: warning: unknown operating system for build configuration 'os'
425 |                 }
426 |                 muteButton
427 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
428 |                 contentModeButton
429 |                 subtitleButton
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:433:21: warning: unknown operating system for build configuration 'os'
431 |             }
432 |             Spacer()
433 |             #if !os(xrOS)
    |                     |- warning: unknown operating system for build configuration 'os'
    |                     |- note: did you mean 'tvOS'?
    |                     `- note: did you mean 'iOS'?
434 |             KSVideoPlayerViewBuilder.playbackControlView(config: config)
435 |             Spacer()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:456:16: warning: unknown operating system for build configuration 'os'
454 |
455 |     private var muteButton: some View {
456 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
457 |         HStack {
458 |             Slider(value: $config.playbackVolume, in: 0 ... 1)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:491:20: warning: unknown operating system for build configuration 'os'
489 |         } label: {
490 |             Image(systemName: "waveform.circle.fill")
491 |             #if os(xrOS)
    |                    |- warning: unknown operating system for build configuration 'os'
    |                    |- note: did you mean 'tvOS'?
    |                    `- note: did you mean 'iOS'?
492 |                 .padding()
493 |                 .clipShape(Circle())
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:577:24: warning: unknown operating system for build configuration 'os'
575 |                 }
576 |                 .frame(maxHeight: 20)
577 |                 #if os(xrOS)
    |                        |- warning: unknown operating system for build configuration 'os'
    |                        |- note: did you mean 'tvOS'?
    |                        `- note: did you mean 'iOS'?
578 |                     .tint(.white.opacity(0.8))
579 |                 #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:709:63: warning: unknown operating system for build configuration 'os'
707 |             }
708 |         }
709 |         #if os(macOS) || targetEnvironment(macCatalyst) || os(xrOS)
    |                                                               |- warning: unknown operating system for build configuration 'os'
    |                                                               |- note: did you mean 'tvOS'?
    |                                                               `- note: did you mean 'iOS'?
710 |         .toolbar {
711 |             Button("Done") {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:16:20: warning: unknown operating system for build configuration 'os'
 14 |         HStack(spacing: spacing) {
 15 |             // Playback controls don't need spacers for visionOS, since the controls are laid out in a HStack.
 16 |             #if os(xrOS)
    |                    |- warning: unknown operating system for build configuration 'os'
    |                    |- note: did you mean 'tvOS'?
    |                    `- note: did you mean 'iOS'?
 17 |             backwardButton(config: config)
 18 |             playButton(config: config)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:111:16: warning: unknown operating system for build configuration 'os'
109 | private extension KSVideoPlayerViewBuilder {
110 |     static var playSystemName: String {
111 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
112 |         "play.fill"
113 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:119:16: warning: unknown operating system for build configuration 'os'
117 |
118 |     static var pauseSystemName: String {
119 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
120 |         "pause.fill"
121 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:127:16: warning: unknown operating system for build configuration 'os'
125 |
126 |     static var speakerSystemName: String {
127 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
128 |         "speaker.fill"
129 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:135:16: warning: unknown operating system for build configuration 'os'
133 |
134 |     static var speakerDisabledSystemName: String {
135 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
136 |         "speaker.slash.fill"
137 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:186:16: warning: unknown operating system for build configuration 'os'
184 |                 .font(.largeTitle)
185 |         }
186 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
187 |         .contentTransition(.symbolEffect(.replace))
188 |         #endif
/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
 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
    |                |- note: convert 'subtitleDataSouces' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'subtitleDataSouces' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 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
 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
    |                       |- note: annotate 'singleton' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |     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
 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
 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
 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
128 |                     return
129 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:218:25: warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
216 |                 providers.first?.loadDataRepresentation(forTypeIdentifier: "public.file-url") { data, _ in
217 |                     if let data, let path = NSString(data: data, encoding: 4), let url = URL(string: path as String) {
218 |                         openURL(url)
    |                         `- warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
219 |                     }
220 |                 }
    :
302 |     }
303 |
304 |     public func openURL(_ url: URL) {
    |                 `- note: calls to instance method 'openURL' from outside of its actor context are implicitly asynchronous
305 |         runOnMainThread {
306 |             if url.isSubtitle {
/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
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
    |                       |- note: convert 'textPosition' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textPosition' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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:280:23: warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 |     }
279 |
280 |     public static var textColor: Color = .white
    |                       |- warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |     public static var textBackgroundColor: Color = .clear
282 |     public static var textFont: UIFont {
/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
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
    |                       |- note: convert 'textItalic' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textItalic' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 |     public static var textPosition = TextPosition()
290 |     public static var audioRecognizes = [any AudioRecognize]()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
279 |
280 |     public static var textColor: Color = .white
281 |     public static var textBackgroundColor: Color = .clear
    |                       |- warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textBackgroundColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
282 |     public static var textFont: UIFont {
283 |         textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:58:51: warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
56 |             do {
57 |                 let configuration = ImageAnalyzer.Configuration([.text])
58 |                 let analysis = try await analyzer.analyze(image, orientation: .up, configuration: configuration)
   |                                                   `- warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
59 |                 interaction.preferredInteractionTypes = .textSelection
60 |                 interaction.analysis = analysis
VisionKit.ImageAnalysis:2:20: note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
1 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
2 | final public class ImageAnalysis {
  |                    `- note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
3 |     final public var transcript: String { get }
4 |     final public func hasResults(for analysisTypes: ImageAnalyzer.AnalysisTypes) -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
 8 | import SwiftUI
 9 | #if canImport(VisionKit)
10 | import VisionKit
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
11 |
12 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:23:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 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 task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 24 |                     try? await parse(url: downloadURL, userAgent: userAgent)
    |                                `- note: closure captures 'self' which is accessible to code in the current task
 25 |                 }
 26 |             }
[84/91] Compiling KSPlayer KSVideoPlayerViewBuilder.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/AirPlayView.swift:11:9: warning: unknown operating system for build configuration 'os'
 9 | import SwiftUI
10 |
11 | #if !os(xrOS)
   |         |- warning: unknown operating system for build configuration 'os'
   |         |- note: did you mean 'tvOS'?
   |         `- note: did you mean 'iOS'?
12 | public struct AirPlayView: UIViewRepresentable {
13 |     public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:143:27: warning: unknown operating system for build configuration 'os'
141 |             }
142 |
143 |         #if os(iOS) || os(xrOS)
    |                           |- warning: unknown operating system for build configuration 'os'
    |                           |- note: did you mean 'tvOS'?
    |                           `- note: did you mean 'iOS'?
144 |             .navigationBarTitleDisplayMode(.inline)
145 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:150:17: warning: unknown operating system for build configuration 'os'
148 |         .focused($focusableField, equals: .play)
149 |         #endif
150 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
151 |             .onKeyPressLeftArrow {
152 |             playerCoordinator.skip(interval: -15)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:229:21: warning: unknown operating system for build configuration 'os'
227 |         VStack {
228 |             VideoControllerView(config: playerCoordinator, subtitleModel: playerCoordinator.subtitleModel, title: $title, volumeSliderSize: playerWidth / 4)
229 |             #if !os(xrOS)
    |                     |- warning: unknown operating system for build configuration 'os'
    |                     |- note: did you mean 'tvOS'?
    |                     `- note: did you mean 'iOS'?
230 |             // 设置opacity为0,还是会去更新View。所以只能这样了
231 |             if playerCoordinator.isMaskShow {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:242:16: warning: unknown operating system for build configuration 'os'
240 |             #endif
241 |         }
242 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
243 |         .ornament(visibility: playerCoordinator.isMaskShow ? .visible : .hidden, attachmentAnchor: .scene(.bottom)) {
244 |             ornamentView(playerWidth: playerWidth)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:279:16: warning: unknown operating system for build configuration 'os'
277 |         .padding(.vertical, 24)
278 |         .padding(.horizontal, 36)
279 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
280 |             .glassBackgroundEffect()
281 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:406:25: warning: unknown operating system for build configuration 'os'
404 |             #else
405 |             HStack {
406 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
407 |                 Button {
408 |                     dismiss()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:421:28: warning: unknown operating system for build configuration 'os'
419 |                 if let audioTracks = config.playerLayer?.player.tracks(mediaType: .audio), !audioTracks.isEmpty {
420 |                     audioButton(audioTracks: audioTracks)
421 |                     #if os(xrOS)
    |                            |- warning: unknown operating system for build configuration 'os'
    |                            |- note: did you mean 'tvOS'?
    |                            `- note: did you mean 'iOS'?
422 |                         .aspectRatio(1, contentMode: .fit)
423 |                         .glassBackgroundEffect()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:427:25: warning: unknown operating system for build configuration 'os'
425 |                 }
426 |                 muteButton
427 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
428 |                 contentModeButton
429 |                 subtitleButton
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:433:21: warning: unknown operating system for build configuration 'os'
431 |             }
432 |             Spacer()
433 |             #if !os(xrOS)
    |                     |- warning: unknown operating system for build configuration 'os'
    |                     |- note: did you mean 'tvOS'?
    |                     `- note: did you mean 'iOS'?
434 |             KSVideoPlayerViewBuilder.playbackControlView(config: config)
435 |             Spacer()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:456:16: warning: unknown operating system for build configuration 'os'
454 |
455 |     private var muteButton: some View {
456 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
457 |         HStack {
458 |             Slider(value: $config.playbackVolume, in: 0 ... 1)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:491:20: warning: unknown operating system for build configuration 'os'
489 |         } label: {
490 |             Image(systemName: "waveform.circle.fill")
491 |             #if os(xrOS)
    |                    |- warning: unknown operating system for build configuration 'os'
    |                    |- note: did you mean 'tvOS'?
    |                    `- note: did you mean 'iOS'?
492 |                 .padding()
493 |                 .clipShape(Circle())
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:577:24: warning: unknown operating system for build configuration 'os'
575 |                 }
576 |                 .frame(maxHeight: 20)
577 |                 #if os(xrOS)
    |                        |- warning: unknown operating system for build configuration 'os'
    |                        |- note: did you mean 'tvOS'?
    |                        `- note: did you mean 'iOS'?
578 |                     .tint(.white.opacity(0.8))
579 |                 #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:709:63: warning: unknown operating system for build configuration 'os'
707 |             }
708 |         }
709 |         #if os(macOS) || targetEnvironment(macCatalyst) || os(xrOS)
    |                                                               |- warning: unknown operating system for build configuration 'os'
    |                                                               |- note: did you mean 'tvOS'?
    |                                                               `- note: did you mean 'iOS'?
710 |         .toolbar {
711 |             Button("Done") {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:16:20: warning: unknown operating system for build configuration 'os'
 14 |         HStack(spacing: spacing) {
 15 |             // Playback controls don't need spacers for visionOS, since the controls are laid out in a HStack.
 16 |             #if os(xrOS)
    |                    |- warning: unknown operating system for build configuration 'os'
    |                    |- note: did you mean 'tvOS'?
    |                    `- note: did you mean 'iOS'?
 17 |             backwardButton(config: config)
 18 |             playButton(config: config)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:111:16: warning: unknown operating system for build configuration 'os'
109 | private extension KSVideoPlayerViewBuilder {
110 |     static var playSystemName: String {
111 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
112 |         "play.fill"
113 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:119:16: warning: unknown operating system for build configuration 'os'
117 |
118 |     static var pauseSystemName: String {
119 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
120 |         "pause.fill"
121 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:127:16: warning: unknown operating system for build configuration 'os'
125 |
126 |     static var speakerSystemName: String {
127 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
128 |         "speaker.fill"
129 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:135:16: warning: unknown operating system for build configuration 'os'
133 |
134 |     static var speakerDisabledSystemName: String {
135 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
136 |         "speaker.slash.fill"
137 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:186:16: warning: unknown operating system for build configuration 'os'
184 |                 .font(.largeTitle)
185 |         }
186 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
187 |         .contentTransition(.symbolEffect(.replace))
188 |         #endif
/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
 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
    |                |- note: convert 'subtitleDataSouces' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'subtitleDataSouces' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 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
 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
    |                       |- note: annotate 'singleton' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |     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
 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
 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
 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
128 |                     return
129 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:218:25: warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
216 |                 providers.first?.loadDataRepresentation(forTypeIdentifier: "public.file-url") { data, _ in
217 |                     if let data, let path = NSString(data: data, encoding: 4), let url = URL(string: path as String) {
218 |                         openURL(url)
    |                         `- warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
219 |                     }
220 |                 }
    :
302 |     }
303 |
304 |     public func openURL(_ url: URL) {
    |                 `- note: calls to instance method 'openURL' from outside of its actor context are implicitly asynchronous
305 |         runOnMainThread {
306 |             if url.isSubtitle {
/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
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
    |                       |- note: convert 'textPosition' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textPosition' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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:280:23: warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 |     }
279 |
280 |     public static var textColor: Color = .white
    |                       |- warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |     public static var textBackgroundColor: Color = .clear
282 |     public static var textFont: UIFont {
/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
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
    |                       |- note: convert 'textItalic' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textItalic' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 |     public static var textPosition = TextPosition()
290 |     public static var audioRecognizes = [any AudioRecognize]()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
279 |
280 |     public static var textColor: Color = .white
281 |     public static var textBackgroundColor: Color = .clear
    |                       |- warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textBackgroundColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
282 |     public static var textFont: UIFont {
283 |         textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:58:51: warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
56 |             do {
57 |                 let configuration = ImageAnalyzer.Configuration([.text])
58 |                 let analysis = try await analyzer.analyze(image, orientation: .up, configuration: configuration)
   |                                                   `- warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
59 |                 interaction.preferredInteractionTypes = .textSelection
60 |                 interaction.analysis = analysis
VisionKit.ImageAnalysis:2:20: note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
1 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
2 | final public class ImageAnalysis {
  |                    `- note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
3 |     final public var transcript: String { get }
4 |     final public func hasResults(for analysisTypes: ImageAnalyzer.AnalysisTypes) -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
 8 | import SwiftUI
 9 | #if canImport(VisionKit)
10 | import VisionKit
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
11 |
12 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:23:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 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 task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 24 |                     try? await parse(url: downloadURL, userAgent: userAgent)
    |                                `- note: closure captures 'self' which is accessible to code in the current task
 25 |                 }
 26 |             }
[85/91] Compiling KSPlayer LiveTextImage.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/AirPlayView.swift:11:9: warning: unknown operating system for build configuration 'os'
 9 | import SwiftUI
10 |
11 | #if !os(xrOS)
   |         |- warning: unknown operating system for build configuration 'os'
   |         |- note: did you mean 'tvOS'?
   |         `- note: did you mean 'iOS'?
12 | public struct AirPlayView: UIViewRepresentable {
13 |     public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:143:27: warning: unknown operating system for build configuration 'os'
141 |             }
142 |
143 |         #if os(iOS) || os(xrOS)
    |                           |- warning: unknown operating system for build configuration 'os'
    |                           |- note: did you mean 'tvOS'?
    |                           `- note: did you mean 'iOS'?
144 |             .navigationBarTitleDisplayMode(.inline)
145 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:150:17: warning: unknown operating system for build configuration 'os'
148 |         .focused($focusableField, equals: .play)
149 |         #endif
150 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
151 |             .onKeyPressLeftArrow {
152 |             playerCoordinator.skip(interval: -15)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:229:21: warning: unknown operating system for build configuration 'os'
227 |         VStack {
228 |             VideoControllerView(config: playerCoordinator, subtitleModel: playerCoordinator.subtitleModel, title: $title, volumeSliderSize: playerWidth / 4)
229 |             #if !os(xrOS)
    |                     |- warning: unknown operating system for build configuration 'os'
    |                     |- note: did you mean 'tvOS'?
    |                     `- note: did you mean 'iOS'?
230 |             // 设置opacity为0,还是会去更新View。所以只能这样了
231 |             if playerCoordinator.isMaskShow {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:242:16: warning: unknown operating system for build configuration 'os'
240 |             #endif
241 |         }
242 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
243 |         .ornament(visibility: playerCoordinator.isMaskShow ? .visible : .hidden, attachmentAnchor: .scene(.bottom)) {
244 |             ornamentView(playerWidth: playerWidth)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:279:16: warning: unknown operating system for build configuration 'os'
277 |         .padding(.vertical, 24)
278 |         .padding(.horizontal, 36)
279 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
280 |             .glassBackgroundEffect()
281 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:406:25: warning: unknown operating system for build configuration 'os'
404 |             #else
405 |             HStack {
406 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
407 |                 Button {
408 |                     dismiss()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:421:28: warning: unknown operating system for build configuration 'os'
419 |                 if let audioTracks = config.playerLayer?.player.tracks(mediaType: .audio), !audioTracks.isEmpty {
420 |                     audioButton(audioTracks: audioTracks)
421 |                     #if os(xrOS)
    |                            |- warning: unknown operating system for build configuration 'os'
    |                            |- note: did you mean 'tvOS'?
    |                            `- note: did you mean 'iOS'?
422 |                         .aspectRatio(1, contentMode: .fit)
423 |                         .glassBackgroundEffect()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:427:25: warning: unknown operating system for build configuration 'os'
425 |                 }
426 |                 muteButton
427 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
428 |                 contentModeButton
429 |                 subtitleButton
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:433:21: warning: unknown operating system for build configuration 'os'
431 |             }
432 |             Spacer()
433 |             #if !os(xrOS)
    |                     |- warning: unknown operating system for build configuration 'os'
    |                     |- note: did you mean 'tvOS'?
    |                     `- note: did you mean 'iOS'?
434 |             KSVideoPlayerViewBuilder.playbackControlView(config: config)
435 |             Spacer()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:456:16: warning: unknown operating system for build configuration 'os'
454 |
455 |     private var muteButton: some View {
456 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
457 |         HStack {
458 |             Slider(value: $config.playbackVolume, in: 0 ... 1)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:491:20: warning: unknown operating system for build configuration 'os'
489 |         } label: {
490 |             Image(systemName: "waveform.circle.fill")
491 |             #if os(xrOS)
    |                    |- warning: unknown operating system for build configuration 'os'
    |                    |- note: did you mean 'tvOS'?
    |                    `- note: did you mean 'iOS'?
492 |                 .padding()
493 |                 .clipShape(Circle())
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:577:24: warning: unknown operating system for build configuration 'os'
575 |                 }
576 |                 .frame(maxHeight: 20)
577 |                 #if os(xrOS)
    |                        |- warning: unknown operating system for build configuration 'os'
    |                        |- note: did you mean 'tvOS'?
    |                        `- note: did you mean 'iOS'?
578 |                     .tint(.white.opacity(0.8))
579 |                 #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:709:63: warning: unknown operating system for build configuration 'os'
707 |             }
708 |         }
709 |         #if os(macOS) || targetEnvironment(macCatalyst) || os(xrOS)
    |                                                               |- warning: unknown operating system for build configuration 'os'
    |                                                               |- note: did you mean 'tvOS'?
    |                                                               `- note: did you mean 'iOS'?
710 |         .toolbar {
711 |             Button("Done") {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:16:20: warning: unknown operating system for build configuration 'os'
 14 |         HStack(spacing: spacing) {
 15 |             // Playback controls don't need spacers for visionOS, since the controls are laid out in a HStack.
 16 |             #if os(xrOS)
    |                    |- warning: unknown operating system for build configuration 'os'
    |                    |- note: did you mean 'tvOS'?
    |                    `- note: did you mean 'iOS'?
 17 |             backwardButton(config: config)
 18 |             playButton(config: config)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:111:16: warning: unknown operating system for build configuration 'os'
109 | private extension KSVideoPlayerViewBuilder {
110 |     static var playSystemName: String {
111 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
112 |         "play.fill"
113 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:119:16: warning: unknown operating system for build configuration 'os'
117 |
118 |     static var pauseSystemName: String {
119 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
120 |         "pause.fill"
121 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:127:16: warning: unknown operating system for build configuration 'os'
125 |
126 |     static var speakerSystemName: String {
127 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
128 |         "speaker.fill"
129 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:135:16: warning: unknown operating system for build configuration 'os'
133 |
134 |     static var speakerDisabledSystemName: String {
135 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
136 |         "speaker.slash.fill"
137 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:186:16: warning: unknown operating system for build configuration 'os'
184 |                 .font(.largeTitle)
185 |         }
186 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
187 |         .contentTransition(.symbolEffect(.replace))
188 |         #endif
/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
 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
    |                |- note: convert 'subtitleDataSouces' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'subtitleDataSouces' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 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
 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
    |                       |- note: annotate 'singleton' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |     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
 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
 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
 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
128 |                     return
129 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:218:25: warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
216 |                 providers.first?.loadDataRepresentation(forTypeIdentifier: "public.file-url") { data, _ in
217 |                     if let data, let path = NSString(data: data, encoding: 4), let url = URL(string: path as String) {
218 |                         openURL(url)
    |                         `- warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
219 |                     }
220 |                 }
    :
302 |     }
303 |
304 |     public func openURL(_ url: URL) {
    |                 `- note: calls to instance method 'openURL' from outside of its actor context are implicitly asynchronous
305 |         runOnMainThread {
306 |             if url.isSubtitle {
/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
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
    |                       |- note: convert 'textPosition' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textPosition' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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:280:23: warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 |     }
279 |
280 |     public static var textColor: Color = .white
    |                       |- warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |     public static var textBackgroundColor: Color = .clear
282 |     public static var textFont: UIFont {
/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
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
    |                       |- note: convert 'textItalic' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textItalic' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 |     public static var textPosition = TextPosition()
290 |     public static var audioRecognizes = [any AudioRecognize]()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
279 |
280 |     public static var textColor: Color = .white
281 |     public static var textBackgroundColor: Color = .clear
    |                       |- warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textBackgroundColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
282 |     public static var textFont: UIFont {
283 |         textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:58:51: warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
56 |             do {
57 |                 let configuration = ImageAnalyzer.Configuration([.text])
58 |                 let analysis = try await analyzer.analyze(image, orientation: .up, configuration: configuration)
   |                                                   `- warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
59 |                 interaction.preferredInteractionTypes = .textSelection
60 |                 interaction.analysis = analysis
VisionKit.ImageAnalysis:2:20: note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
1 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
2 | final public class ImageAnalysis {
  |                    `- note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
3 |     final public var transcript: String { get }
4 |     final public func hasResults(for analysisTypes: ImageAnalyzer.AnalysisTypes) -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
 8 | import SwiftUI
 9 | #if canImport(VisionKit)
10 | import VisionKit
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
11 |
12 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:23:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 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 task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 24 |                     try? await parse(url: downloadURL, userAgent: userAgent)
    |                                `- note: closure captures 'self' which is accessible to code in the current task
 25 |                 }
 26 |             }
[86/91] Compiling KSPlayer Slider.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/AirPlayView.swift:11:9: warning: unknown operating system for build configuration 'os'
 9 | import SwiftUI
10 |
11 | #if !os(xrOS)
   |         |- warning: unknown operating system for build configuration 'os'
   |         |- note: did you mean 'tvOS'?
   |         `- note: did you mean 'iOS'?
12 | public struct AirPlayView: UIViewRepresentable {
13 |     public init() {}
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:143:27: warning: unknown operating system for build configuration 'os'
141 |             }
142 |
143 |         #if os(iOS) || os(xrOS)
    |                           |- warning: unknown operating system for build configuration 'os'
    |                           |- note: did you mean 'tvOS'?
    |                           `- note: did you mean 'iOS'?
144 |             .navigationBarTitleDisplayMode(.inline)
145 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:150:17: warning: unknown operating system for build configuration 'os'
148 |         .focused($focusableField, equals: .play)
149 |         #endif
150 |         #if !os(xrOS)
    |                 |- warning: unknown operating system for build configuration 'os'
    |                 |- note: did you mean 'tvOS'?
    |                 `- note: did you mean 'iOS'?
151 |             .onKeyPressLeftArrow {
152 |             playerCoordinator.skip(interval: -15)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:229:21: warning: unknown operating system for build configuration 'os'
227 |         VStack {
228 |             VideoControllerView(config: playerCoordinator, subtitleModel: playerCoordinator.subtitleModel, title: $title, volumeSliderSize: playerWidth / 4)
229 |             #if !os(xrOS)
    |                     |- warning: unknown operating system for build configuration 'os'
    |                     |- note: did you mean 'tvOS'?
    |                     `- note: did you mean 'iOS'?
230 |             // 设置opacity为0,还是会去更新View。所以只能这样了
231 |             if playerCoordinator.isMaskShow {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:242:16: warning: unknown operating system for build configuration 'os'
240 |             #endif
241 |         }
242 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
243 |         .ornament(visibility: playerCoordinator.isMaskShow ? .visible : .hidden, attachmentAnchor: .scene(.bottom)) {
244 |             ornamentView(playerWidth: playerWidth)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:279:16: warning: unknown operating system for build configuration 'os'
277 |         .padding(.vertical, 24)
278 |         .padding(.horizontal, 36)
279 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
280 |             .glassBackgroundEffect()
281 |         #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:406:25: warning: unknown operating system for build configuration 'os'
404 |             #else
405 |             HStack {
406 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
407 |                 Button {
408 |                     dismiss()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:421:28: warning: unknown operating system for build configuration 'os'
419 |                 if let audioTracks = config.playerLayer?.player.tracks(mediaType: .audio), !audioTracks.isEmpty {
420 |                     audioButton(audioTracks: audioTracks)
421 |                     #if os(xrOS)
    |                            |- warning: unknown operating system for build configuration 'os'
    |                            |- note: did you mean 'tvOS'?
    |                            `- note: did you mean 'iOS'?
422 |                         .aspectRatio(1, contentMode: .fit)
423 |                         .glassBackgroundEffect()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:427:25: warning: unknown operating system for build configuration 'os'
425 |                 }
426 |                 muteButton
427 |                 #if !os(xrOS)
    |                         |- warning: unknown operating system for build configuration 'os'
    |                         |- note: did you mean 'tvOS'?
    |                         `- note: did you mean 'iOS'?
428 |                 contentModeButton
429 |                 subtitleButton
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:433:21: warning: unknown operating system for build configuration 'os'
431 |             }
432 |             Spacer()
433 |             #if !os(xrOS)
    |                     |- warning: unknown operating system for build configuration 'os'
    |                     |- note: did you mean 'tvOS'?
    |                     `- note: did you mean 'iOS'?
434 |             KSVideoPlayerViewBuilder.playbackControlView(config: config)
435 |             Spacer()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:456:16: warning: unknown operating system for build configuration 'os'
454 |
455 |     private var muteButton: some View {
456 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
457 |         HStack {
458 |             Slider(value: $config.playbackVolume, in: 0 ... 1)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:491:20: warning: unknown operating system for build configuration 'os'
489 |         } label: {
490 |             Image(systemName: "waveform.circle.fill")
491 |             #if os(xrOS)
    |                    |- warning: unknown operating system for build configuration 'os'
    |                    |- note: did you mean 'tvOS'?
    |                    `- note: did you mean 'iOS'?
492 |                 .padding()
493 |                 .clipShape(Circle())
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:577:24: warning: unknown operating system for build configuration 'os'
575 |                 }
576 |                 .frame(maxHeight: 20)
577 |                 #if os(xrOS)
    |                        |- warning: unknown operating system for build configuration 'os'
    |                        |- note: did you mean 'tvOS'?
    |                        `- note: did you mean 'iOS'?
578 |                     .tint(.white.opacity(0.8))
579 |                 #endif
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:709:63: warning: unknown operating system for build configuration 'os'
707 |             }
708 |         }
709 |         #if os(macOS) || targetEnvironment(macCatalyst) || os(xrOS)
    |                                                               |- warning: unknown operating system for build configuration 'os'
    |                                                               |- note: did you mean 'tvOS'?
    |                                                               `- note: did you mean 'iOS'?
710 |         .toolbar {
711 |             Button("Done") {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:16:20: warning: unknown operating system for build configuration 'os'
 14 |         HStack(spacing: spacing) {
 15 |             // Playback controls don't need spacers for visionOS, since the controls are laid out in a HStack.
 16 |             #if os(xrOS)
    |                    |- warning: unknown operating system for build configuration 'os'
    |                    |- note: did you mean 'tvOS'?
    |                    `- note: did you mean 'iOS'?
 17 |             backwardButton(config: config)
 18 |             playButton(config: config)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:111:16: warning: unknown operating system for build configuration 'os'
109 | private extension KSVideoPlayerViewBuilder {
110 |     static var playSystemName: String {
111 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
112 |         "play.fill"
113 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:119:16: warning: unknown operating system for build configuration 'os'
117 |
118 |     static var pauseSystemName: String {
119 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
120 |         "pause.fill"
121 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:127:16: warning: unknown operating system for build configuration 'os'
125 |
126 |     static var speakerSystemName: String {
127 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
128 |         "speaker.fill"
129 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:135:16: warning: unknown operating system for build configuration 'os'
133 |
134 |     static var speakerDisabledSystemName: String {
135 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
136 |         "speaker.slash.fill"
137 |         #else
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerViewBuilder.swift:186:16: warning: unknown operating system for build configuration 'os'
184 |                 .font(.largeTitle)
185 |         }
186 |         #if os(xrOS)
    |                |- warning: unknown operating system for build configuration 'os'
    |                |- note: did you mean 'tvOS'?
    |                `- note: did you mean 'iOS'?
187 |         .contentTransition(.symbolEffect(.replace))
188 |         #endif
/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
 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
    |                |- note: convert 'subtitleDataSouces' to a 'let' constant to make 'Sendable' shared state immutable
    |                |- note: annotate 'subtitleDataSouces' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 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
 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
    |                       |- note: annotate 'singleton' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 85 |     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
 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
 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
 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
128 |                     return
129 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/KSVideoPlayerView.swift:218:25: warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
216 |                 providers.first?.loadDataRepresentation(forTypeIdentifier: "public.file-url") { data, _ in
217 |                     if let data, let path = NSString(data: data, encoding: 4), let url = URL(string: path as String) {
218 |                         openURL(url)
    |                         `- warning: call to main actor-isolated instance method 'openURL' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
219 |                     }
220 |                 }
    :
302 |     }
303 |
304 |     public func openURL(_ url: URL) {
    |                 `- note: calls to instance method 'openURL' from outside of its actor context are implicitly asynchronous
305 |         runOnMainThread {
306 |             if url.isSubtitle {
/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
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
    |                       |- note: convert 'textPosition' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textPosition' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
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:280:23: warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 |     }
279 |
280 |     public static var textColor: Color = .white
    |                       |- warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |     public static var textBackgroundColor: Color = .clear
282 |     public static var textFont: UIFont {
/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
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
    |                       |- note: convert 'textItalic' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textItalic' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
289 |     public static var textPosition = TextPosition()
290 |     public static var audioRecognizes = [any AudioRecognize]()
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
279 |
280 |     public static var textColor: Color = .white
281 |     public static var textBackgroundColor: Color = .clear
    |                       |- warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textBackgroundColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
282 |     public static var textFont: UIFont {
283 |         textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:58:51: warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
56 |             do {
57 |                 let configuration = ImageAnalyzer.Configuration([.text])
58 |                 let analysis = try await analyzer.analyze(image, orientation: .up, configuration: configuration)
   |                                                   `- warning: non-sendable type 'ImageAnalysis' returned by implicitly asynchronous call to nonisolated function cannot cross actor boundary; this is an error in the Swift 6 language mode
59 |                 interaction.preferredInteractionTypes = .textSelection
60 |                 interaction.analysis = analysis
VisionKit.ImageAnalysis:2:20: note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
1 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
2 | final public class ImageAnalysis {
  |                    `- note: class 'ImageAnalysis' does not conform to the 'Sendable' protocol
3 |     final public var transcript: String { get }
4 |     final public func hasResults(for analysisTypes: ImageAnalyzer.AnalysisTypes) -> Bool
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/SwiftUI/LiveTextImage.swift:10:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
 8 | import SwiftUI
 9 | #if canImport(VisionKit)
10 | import VisionKit
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'VisionKit'
11 |
12 | @available(iOS 16.0, macOS 13.0, macCatalyst 17.0, *)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/SubtitleDataSouce.swift:23:22: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 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 task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 24 |                     try? await parse(url: downloadURL, userAgent: userAgent)
    |                                `- note: closure captures 'self' which is accessible to code in the current task
 25 |                 }
 26 |             }
[87/91] Compiling KSPlayer PlayerFullScreenViewController.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
11 | #endif
12 | public protocol SeekViewProtocol {
13 |     func set(text: String, isAdd: Bool)
   |          `- note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
14 | }
15 |
   :
64 | }
65 |
66 | extension SeekView: SeekViewProtocol {
   |                     `- note: add '@preconcurrency' to the 'SeekViewProtocol' conformance to defer isolation checking to run time
67 |     public func set(text: String, isAdd: Bool) {
   |                 |- warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
   |                 `- note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
68 |         seekToLabel.text = text
69 |         if !isAdd {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: warning: static property 'normal' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
356 |         public var rawValue: UInt
357 |         public init(rawValue: UInt) { self.rawValue = rawValue }
358 |         public static var normal = State(rawValue: 1 << 0)
    |                           |- warning: static property 'normal' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'normal' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'normal' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
359 |         public static var highlighted = State(rawValue: 1 << 1)
360 |         public static var disabled = State(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 952 | public extension KSOptions {
 953 |     /// 顶部返回、标题、AirPlay按钮 显示选项,默认.Always,可选.HorizantalOnly、.None
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
     |                |- warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'topBarShowInCase' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'topBarShowInCase' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
     |                |- warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'animateDelayTimeInterval' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'animateDelayTimeInterval' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:958:16: warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
     |                |- warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableBrightnessGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enableBrightnessGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:960:16: warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 958 |     static var enableBrightnessGestures = true
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
     |                |- warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableVolumeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enableVolumeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 960 |     static var enableVolumeGestures = true
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
     |                |- warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enablePlaytimeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enablePlaytimeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:965:16: warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
 965 |     static var canBackgroundPlay = false
     |                |- warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'canBackgroundPlay' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'canBackgroundPlay' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 966 | }
 967 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: warning: static property 'selected' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
359 |         public static var highlighted = State(rawValue: 1 << 1)
360 |         public static var disabled = State(rawValue: 1 << 2)
361 |         public static var selected = State(rawValue: 1 << 3)
    |                           |- warning: static property 'selected' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'selected' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'selected' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
362 |         public static var focused = State(rawValue: 1 << 4)
363 |         public static var application = State(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:280:23: warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 |     }
279 |
280 |     public static var textColor: Color = .white
    |                       |- warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |     public static var textBackgroundColor: Color = .clear
282 |     public static var textFont: UIFont {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
279 |
280 |     public static var textColor: Color = .white
281 |     public static var textBackgroundColor: Color = .clear
    |                       |- warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textBackgroundColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
282 |     public static var textFont: UIFont {
283 |         textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:359:27: warning: static property 'highlighted' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 |         public init(rawValue: UInt) { self.rawValue = rawValue }
358 |         public static var normal = State(rawValue: 1 << 0)
359 |         public static var highlighted = State(rawValue: 1 << 1)
    |                           |- warning: static property 'highlighted' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'highlighted' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'highlighted' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 |         public static var disabled = State(rawValue: 1 << 2)
361 |         public static var selected = State(rawValue: 1 << 3)
[88/91] Compiling KSPlayer PlayerTransitionAnimator.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
11 | #endif
12 | public protocol SeekViewProtocol {
13 |     func set(text: String, isAdd: Bool)
   |          `- note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
14 | }
15 |
   :
64 | }
65 |
66 | extension SeekView: SeekViewProtocol {
   |                     `- note: add '@preconcurrency' to the 'SeekViewProtocol' conformance to defer isolation checking to run time
67 |     public func set(text: String, isAdd: Bool) {
   |                 |- warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
   |                 `- note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
68 |         seekToLabel.text = text
69 |         if !isAdd {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: warning: static property 'normal' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
356 |         public var rawValue: UInt
357 |         public init(rawValue: UInt) { self.rawValue = rawValue }
358 |         public static var normal = State(rawValue: 1 << 0)
    |                           |- warning: static property 'normal' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'normal' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'normal' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
359 |         public static var highlighted = State(rawValue: 1 << 1)
360 |         public static var disabled = State(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 952 | public extension KSOptions {
 953 |     /// 顶部返回、标题、AirPlay按钮 显示选项,默认.Always,可选.HorizantalOnly、.None
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
     |                |- warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'topBarShowInCase' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'topBarShowInCase' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
     |                |- warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'animateDelayTimeInterval' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'animateDelayTimeInterval' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:958:16: warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
     |                |- warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableBrightnessGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enableBrightnessGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:960:16: warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 958 |     static var enableBrightnessGestures = true
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
     |                |- warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableVolumeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enableVolumeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 960 |     static var enableVolumeGestures = true
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
     |                |- warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enablePlaytimeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enablePlaytimeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:965:16: warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
 965 |     static var canBackgroundPlay = false
     |                |- warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'canBackgroundPlay' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'canBackgroundPlay' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 966 | }
 967 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: warning: static property 'selected' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
359 |         public static var highlighted = State(rawValue: 1 << 1)
360 |         public static var disabled = State(rawValue: 1 << 2)
361 |         public static var selected = State(rawValue: 1 << 3)
    |                           |- warning: static property 'selected' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'selected' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'selected' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
362 |         public static var focused = State(rawValue: 1 << 4)
363 |         public static var application = State(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:280:23: warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 |     }
279 |
280 |     public static var textColor: Color = .white
    |                       |- warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |     public static var textBackgroundColor: Color = .clear
282 |     public static var textFont: UIFont {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
279 |
280 |     public static var textColor: Color = .white
281 |     public static var textBackgroundColor: Color = .clear
    |                       |- warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textBackgroundColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
282 |     public static var textFont: UIFont {
283 |         textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:359:27: warning: static property 'highlighted' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 |         public init(rawValue: UInt) { self.rawValue = rawValue }
358 |         public static var normal = State(rawValue: 1 << 0)
359 |         public static var highlighted = State(rawValue: 1 << 1)
    |                           |- warning: static property 'highlighted' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'highlighted' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'highlighted' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 |         public static var disabled = State(rawValue: 1 << 2)
361 |         public static var selected = State(rawValue: 1 << 3)
[89/91] Compiling KSPlayer SeekView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
11 | #endif
12 | public protocol SeekViewProtocol {
13 |     func set(text: String, isAdd: Bool)
   |          `- note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
14 | }
15 |
   :
64 | }
65 |
66 | extension SeekView: SeekViewProtocol {
   |                     `- note: add '@preconcurrency' to the 'SeekViewProtocol' conformance to defer isolation checking to run time
67 |     public func set(text: String, isAdd: Bool) {
   |                 |- warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
   |                 `- note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
68 |         seekToLabel.text = text
69 |         if !isAdd {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: warning: static property 'normal' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
356 |         public var rawValue: UInt
357 |         public init(rawValue: UInt) { self.rawValue = rawValue }
358 |         public static var normal = State(rawValue: 1 << 0)
    |                           |- warning: static property 'normal' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'normal' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'normal' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
359 |         public static var highlighted = State(rawValue: 1 << 1)
360 |         public static var disabled = State(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 952 | public extension KSOptions {
 953 |     /// 顶部返回、标题、AirPlay按钮 显示选项,默认.Always,可选.HorizantalOnly、.None
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
     |                |- warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'topBarShowInCase' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'topBarShowInCase' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
     |                |- warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'animateDelayTimeInterval' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'animateDelayTimeInterval' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:958:16: warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
     |                |- warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableBrightnessGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enableBrightnessGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:960:16: warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 958 |     static var enableBrightnessGestures = true
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
     |                |- warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableVolumeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enableVolumeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 960 |     static var enableVolumeGestures = true
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
     |                |- warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enablePlaytimeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enablePlaytimeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:965:16: warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
 965 |     static var canBackgroundPlay = false
     |                |- warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'canBackgroundPlay' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'canBackgroundPlay' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 966 | }
 967 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: warning: static property 'selected' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
359 |         public static var highlighted = State(rawValue: 1 << 1)
360 |         public static var disabled = State(rawValue: 1 << 2)
361 |         public static var selected = State(rawValue: 1 << 3)
    |                           |- warning: static property 'selected' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'selected' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'selected' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
362 |         public static var focused = State(rawValue: 1 << 4)
363 |         public static var application = State(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:280:23: warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 |     }
279 |
280 |     public static var textColor: Color = .white
    |                       |- warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |     public static var textBackgroundColor: Color = .clear
282 |     public static var textFont: UIFont {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
279 |
280 |     public static var textColor: Color = .white
281 |     public static var textBackgroundColor: Color = .clear
    |                       |- warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textBackgroundColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
282 |     public static var textFont: UIFont {
283 |         textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:359:27: warning: static property 'highlighted' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 |         public init(rawValue: UInt) { self.rawValue = rawValue }
358 |         public static var normal = State(rawValue: 1 << 0)
359 |         public static var highlighted = State(rawValue: 1 << 1)
    |                           |- warning: static property 'highlighted' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'highlighted' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'highlighted' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 |         public static var disabled = State(rawValue: 1 << 2)
361 |         public static var selected = State(rawValue: 1 << 3)
[90/91] Compiling KSPlayer VideoPlayerView.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
11 | #endif
12 | public protocol SeekViewProtocol {
13 |     func set(text: String, isAdd: Bool)
   |          `- note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
14 | }
15 |
   :
64 | }
65 |
66 | extension SeekView: SeekViewProtocol {
   |                     `- note: add '@preconcurrency' to the 'SeekViewProtocol' conformance to defer isolation checking to run time
67 |     public func set(text: String, isAdd: Bool) {
   |                 |- warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
   |                 `- note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
68 |         seekToLabel.text = text
69 |         if !isAdd {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: warning: static property 'normal' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
356 |         public var rawValue: UInt
357 |         public init(rawValue: UInt) { self.rawValue = rawValue }
358 |         public static var normal = State(rawValue: 1 << 0)
    |                           |- warning: static property 'normal' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'normal' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'normal' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
359 |         public static var highlighted = State(rawValue: 1 << 1)
360 |         public static var disabled = State(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 952 | public extension KSOptions {
 953 |     /// 顶部返回、标题、AirPlay按钮 显示选项,默认.Always,可选.HorizantalOnly、.None
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
     |                |- warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'topBarShowInCase' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'topBarShowInCase' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
     |                |- warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'animateDelayTimeInterval' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'animateDelayTimeInterval' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:958:16: warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
     |                |- warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableBrightnessGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enableBrightnessGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:960:16: warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 958 |     static var enableBrightnessGestures = true
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
     |                |- warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableVolumeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enableVolumeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 960 |     static var enableVolumeGestures = true
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
     |                |- warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enablePlaytimeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enablePlaytimeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:965:16: warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
 965 |     static var canBackgroundPlay = false
     |                |- warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'canBackgroundPlay' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'canBackgroundPlay' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 966 | }
 967 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: warning: static property 'selected' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
359 |         public static var highlighted = State(rawValue: 1 << 1)
360 |         public static var disabled = State(rawValue: 1 << 2)
361 |         public static var selected = State(rawValue: 1 << 3)
    |                           |- warning: static property 'selected' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'selected' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'selected' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
362 |         public static var focused = State(rawValue: 1 << 4)
363 |         public static var application = State(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:280:23: warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 |     }
279 |
280 |     public static var textColor: Color = .white
    |                       |- warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |     public static var textBackgroundColor: Color = .clear
282 |     public static var textFont: UIFont {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
279 |
280 |     public static var textColor: Color = .white
281 |     public static var textBackgroundColor: Color = .clear
    |                       |- warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textBackgroundColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
282 |     public static var textFont: UIFont {
283 |         textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:359:27: warning: static property 'highlighted' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 |         public init(rawValue: UInt) { self.rawValue = rawValue }
358 |         public static var normal = State(rawValue: 1 << 0)
359 |         public static var highlighted = State(rawValue: 1 << 1)
    |                           |- warning: static property 'highlighted' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'highlighted' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'highlighted' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 |         public static var disabled = State(rawValue: 1 << 2)
361 |         public static var selected = State(rawValue: 1 << 3)
[91/91] Compiling KSPlayer resource_bundle_accessor.swift
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/SeekView.swift:67:17: warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
11 | #endif
12 | public protocol SeekViewProtocol {
13 |     func set(text: String, isAdd: Bool)
   |          `- note: mark the protocol requirement 'set(text:isAdd:)' 'async' to allow actor-isolated conformances
14 | }
15 |
   :
64 | }
65 |
66 | extension SeekView: SeekViewProtocol {
   |                     `- note: add '@preconcurrency' to the 'SeekViewProtocol' conformance to defer isolation checking to run time
67 |     public func set(text: String, isAdd: Bool) {
   |                 |- warning: main actor-isolated instance method 'set(text:isAdd:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
   |                 `- note: add 'nonisolated' to 'set(text:isAdd:)' to make this instance method not isolated to the actor
68 |         seekToLabel.text = text
69 |         if !isAdd {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:358:27: warning: static property 'normal' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
356 |         public var rawValue: UInt
357 |         public init(rawValue: UInt) { self.rawValue = rawValue }
358 |         public static var normal = State(rawValue: 1 << 0)
    |                           |- warning: static property 'normal' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'normal' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'normal' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
359 |         public static var highlighted = State(rawValue: 1 << 1)
360 |         public static var disabled = State(rawValue: 1 << 2)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:954:16: warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 952 | public extension KSOptions {
 953 |     /// 顶部返回、标题、AirPlay按钮 显示选项,默认.Always,可选.HorizantalOnly、.None
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
     |                |- warning: static property 'topBarShowInCase' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'topBarShowInCase' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'topBarShowInCase' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:956:16: warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 954 |     static var topBarShowInCase = KSPlayerTopBarShowCase.always
 955 |     /// 自动隐藏操作栏的时间间隔 默认5秒
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
     |                |- warning: static property 'animateDelayTimeInterval' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'animateDelayTimeInterval' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'animateDelayTimeInterval' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:958:16: warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 956 |     static var animateDelayTimeInterval = TimeInterval(5)
 957 |     /// 开启亮度手势 默认true
 958 |     static var enableBrightnessGestures = true
     |                |- warning: static property 'enableBrightnessGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableBrightnessGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enableBrightnessGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:960:16: warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 958 |     static var enableBrightnessGestures = true
 959 |     /// 开启音量手势 默认true
 960 |     static var enableVolumeGestures = true
     |                |- warning: static property 'enableVolumeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enableVolumeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enableVolumeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:962:16: warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 960 |     static var enableVolumeGestures = true
 961 |     /// 开启进度滑动手势 默认true
 962 |     static var enablePlaytimeGestures = true
     |                |- warning: static property 'enablePlaytimeGestures' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'enablePlaytimeGestures' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'enablePlaytimeGestures' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Video/VideoPlayerView.swift:965:16: warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 963 |     /// 播放内核选择策略 先使用firstPlayer,失败了自动切换到secondPlayer,播放内核有KSAVPlayer、KSMEPlayer两个选项
 964 |     /// 是否能后台播放视频
 965 |     static var canBackgroundPlay = false
     |                |- warning: static property 'canBackgroundPlay' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
     |                |- note: convert 'canBackgroundPlay' to a 'let' constant to make 'Sendable' shared state immutable
     |                |- note: annotate 'canBackgroundPlay' with '@MainActor' if property should only be accessed from the main actor
     |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 966 | }
 967 |
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:361:27: warning: static property 'selected' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
359 |         public static var highlighted = State(rawValue: 1 << 1)
360 |         public static var disabled = State(rawValue: 1 << 2)
361 |         public static var selected = State(rawValue: 1 << 3)
    |                           |- warning: static property 'selected' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'selected' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'selected' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
362 |         public static var focused = State(rawValue: 1 << 4)
363 |         public static var application = State(rawValue: 1 << 5)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:280:23: warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
278 |     }
279 |
280 |     public static var textColor: Color = .white
    |                       |- warning: static property 'textColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
281 |     public static var textBackgroundColor: Color = .clear
282 |     public static var textFont: UIFont {
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Subtitle/KSSubtitle.swift:281:23: warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
279 |
280 |     public static var textColor: Color = .white
281 |     public static var textBackgroundColor: Color = .clear
    |                       |- warning: static property 'textBackgroundColor' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'textBackgroundColor' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: annotate 'textBackgroundColor' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
282 |     public static var textFont: UIFont {
283 |         textBold ? .boldSystemFont(ofSize: textFontSize) : .systemFont(ofSize: textFontSize)
/Users/admin/builder/spi-builder-workspace/Sources/KSPlayer/Core/AppKitExtend.swift:359:27: warning: static property 'highlighted' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
357 |         public init(rawValue: UInt) { self.rawValue = rawValue }
358 |         public static var normal = State(rawValue: 1 << 0)
359 |         public static var highlighted = State(rawValue: 1 << 1)
    |                           |- warning: static property 'highlighted' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                           |- note: convert 'highlighted' to a 'let' constant to make 'Sendable' shared state immutable
    |                           |- note: annotate 'highlighted' with '@MainActor' if property should only be accessed from the main actor
    |                           `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
360 |         public static var disabled = State(rawValue: 1 << 2)
361 |         public static var selected = State(rawValue: 1 << 3)
Build complete! (154.51s)
Fetching https://github.com/kingslay/FFmpegKit.git
[1/9921] Fetching ffmpegkit
Fetched https://github.com/kingslay/FFmpegKit.git from cache (132.17s)
Computing version for https://github.com/kingslay/FFmpegKit.git
Computed https://github.com/kingslay/FFmpegKit.git at 6.1.3 (0.70s)
Creating working copy for https://github.com/kingslay/FFmpegKit.git
Working copy of https://github.com/kingslay/FFmpegKit.git resolved at 6.1.3
warning: failed to retrieve search paths with pkg-config; maybe pkg-config is not installed
warning: you may be able to install sdl2 using your system-packager:
    brew install sdl2
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.