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.