Build Information
Failed to build OpenImmersive, reference main (cd33fd), with Swift 6.2 for macOS (SPM) on 4 Feb 2026 09:16:08 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-26.0.0.app xcrun swift build --arch arm64Build Log
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
| `- note: add '@available' attribute to enclosing struct
168 | /// The singleton video player control interface.
169 | var videoPlayer: VideoPlayer
:
176 | }
177 |
178 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
179 | let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 | .opacity(0.8)
181 |
182 | let specifier = videoPlayer.bitrate >= 10_000_000 ? "%.0f" : "%.1f"
183 | Text("\(videoPlayer.bitrate/1_000_000, specifier: specifier) Mbps")
| |- error: conformance of 'Double' to '_FormatSpecifiable' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
184 | .frame(width: 50)
185 | .font(.system(size: 8).monospacedDigit())
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:184:14: error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
| `- note: add '@available' attribute to enclosing struct
168 | /// The singleton video player control interface.
169 | var videoPlayer: VideoPlayer
:
176 | }
177 |
178 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
179 | let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 | .opacity(0.8)
:
182 | let specifier = videoPlayer.bitrate >= 10_000_000 ? "%.0f" : "%.1f"
183 | Text("\(videoPlayer.bitrate/1_000_000, specifier: specifier) Mbps")
184 | .frame(width: 50)
| |- error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
185 | .font(.system(size: 8).monospacedDigit())
186 | .foregroundStyle(textColor)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:185:14: error: 'font' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
| `- note: add '@available' attribute to enclosing struct
168 | /// The singleton video player control interface.
169 | var videoPlayer: VideoPlayer
:
176 | }
177 |
178 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
179 | let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 | .opacity(0.8)
:
183 | Text("\(videoPlayer.bitrate/1_000_000, specifier: specifier) Mbps")
184 | .frame(width: 50)
185 | .font(.system(size: 8).monospacedDigit())
| |- error: 'font' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
186 | .foregroundStyle(textColor)
187 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:185:20: error: 'system(size:weight:design:)' is only available in macOS 13.0 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
| `- note: add '@available' attribute to enclosing struct
168 | /// The singleton video player control interface.
169 | var videoPlayer: VideoPlayer
:
176 | }
177 |
178 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
179 | let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 | .opacity(0.8)
:
183 | Text("\(videoPlayer.bitrate/1_000_000, specifier: specifier) Mbps")
184 | .frame(width: 50)
185 | .font(.system(size: 8).monospacedDigit())
| |- error: 'system(size:weight:design:)' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
186 | .foregroundStyle(textColor)
187 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:185:36: error: 'monospacedDigit()' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
| `- note: add '@available' attribute to enclosing struct
168 | /// The singleton video player control interface.
169 | var videoPlayer: VideoPlayer
:
176 | }
177 |
178 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
179 | let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 | .opacity(0.8)
:
183 | Text("\(videoPlayer.bitrate/1_000_000, specifier: specifier) Mbps")
184 | .frame(width: 50)
185 | .font(.system(size: 8).monospacedDigit())
| |- error: 'monospacedDigit()' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
186 | .foregroundStyle(textColor)
187 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:186:14: error: 'foregroundStyle' is only available in macOS 12.0 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
| `- note: add '@available' attribute to enclosing struct
168 | /// The singleton video player control interface.
169 | var videoPlayer: VideoPlayer
:
176 | }
177 |
178 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
179 | let textColor = color(for: videoPlayer.bitrate, ladder: videoPlayer.bitrateLadder)
180 | .opacity(0.8)
:
184 | .frame(width: 50)
185 | .font(.system(size: 8).monospacedDigit())
186 | .foregroundStyle(textColor)
| |- error: 'foregroundStyle' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
187 | }
188 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:197:14: error: 'red' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
| `- note: add '@available' attribute to enclosing struct
168 | /// The singleton video player control interface.
169 | var videoPlayer: VideoPlayer
:
193 | /// - tolerance: the tolerance for color threshold (default 1.2Mbps)
194 | /// - Returns: White if top bitrate for the HLS stream, yellow if second best, orange if third best, red otherwise.
195 | private func color(for bitrate: Double, ladder options: [BitrateRung], tolerance: Int = 1_200_000) -> Color {
| `- note: add '@available' attribute to enclosing instance method
196 | if options.count > 3 && bitrate < Double(options[2].bitrate - tolerance) {
197 | .red
| |- error: 'red' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
198 | } else if options.count > 2 && bitrate < Double(options[1].bitrate - tolerance) {
199 | .orange
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:199:14: error: 'orange' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
| `- note: add '@available' attribute to enclosing struct
168 | /// The singleton video player control interface.
169 | var videoPlayer: VideoPlayer
:
193 | /// - tolerance: the tolerance for color threshold (default 1.2Mbps)
194 | /// - Returns: White if top bitrate for the HLS stream, yellow if second best, orange if third best, red otherwise.
195 | private func color(for bitrate: Double, ladder options: [BitrateRung], tolerance: Int = 1_200_000) -> Color {
| `- note: add '@available' attribute to enclosing instance method
196 | if options.count > 3 && bitrate < Double(options[2].bitrate - tolerance) {
197 | .red
198 | } else if options.count > 2 && bitrate < Double(options[1].bitrate - tolerance) {
199 | .orange
| |- error: 'orange' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
200 | } else if options.count > 1 && bitrate < Double(options[0].bitrate - tolerance) {
201 | .yellow
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:201:14: error: 'yellow' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
| `- note: add '@available' attribute to enclosing struct
168 | /// The singleton video player control interface.
169 | var videoPlayer: VideoPlayer
:
193 | /// - tolerance: the tolerance for color threshold (default 1.2Mbps)
194 | /// - Returns: White if top bitrate for the HLS stream, yellow if second best, orange if third best, red otherwise.
195 | private func color(for bitrate: Double, ladder options: [BitrateRung], tolerance: Int = 1_200_000) -> Color {
| `- note: add '@available' attribute to enclosing instance method
196 | if options.count > 3 && bitrate < Double(options[2].bitrate - tolerance) {
197 | .red
:
199 | .orange
200 | } else if options.count > 1 && bitrate < Double(options[0].bitrate - tolerance) {
201 | .yellow
| |- error: 'yellow' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
202 | } else {
203 | .white
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:203:14: error: 'white' is only available in macOS 10.15 or newer
165 |
166 | /// A colored text view presenting the user with the current video's HLS stream bitrate.
167 | public struct BitrateReadout: View {
| `- note: add '@available' attribute to enclosing struct
168 | /// The singleton video player control interface.
169 | var videoPlayer: VideoPlayer
:
193 | /// - tolerance: the tolerance for color threshold (default 1.2Mbps)
194 | /// - Returns: White if top bitrate for the HLS stream, yellow if second best, orange if third best, red otherwise.
195 | private func color(for bitrate: Double, ladder options: [BitrateRung], tolerance: Int = 1_200_000) -> Color {
| `- note: add '@available' attribute to enclosing instance method
196 | if options.count > 3 && bitrate < Double(options[2].bitrate - tolerance) {
197 | .red
:
201 | .yellow
202 | } else {
203 | .white
| |- error: 'white' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
204 | }
205 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:259:31: error: extraneous argument label 'uiColor:' in call
257 | .background {
258 | if showingSlider {
259 | Color.init(uiColor: #colorLiteral(red: 0.6354077483, green: 0.6147486437, blue: 0.6041808543, alpha: 1))
| `- error: extraneous argument label 'uiColor:' in call
260 | .clipShape(RoundedRectangle(cornerRadius: 30))
261 | }
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:43:5: note: expanded code originates here
11 |
12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
13 | @Observable
| `- note: in expansion of macro 'Observable' on property 'paused' here
14 | public class VideoPlayer: Sendable {
| `- note: add '@available' attribute to enclosing class
15 | //MARK: Video Player and Video Renderer
16 | /// The video player.
:
41 | private(set) public var duration: Double = 0
42 | /// `true` if playback is currently paused, or if playback has completed.
43 | private(set) public var paused: Bool = false
+--- macro expansion @Observable -----------------------------------
|1 | @ObservationTracked
| | `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
+-------------------------------------------------------------------
44 | /// `true` if playback is waiting to load the media.
45 | private(set) public var loading: Bool = false
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:289:9: error: 'HStack' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
| |- error: 'HStack' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
290 | Button {
291 | videoPlayer.minus15()
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:289:28: error: 'center' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
| |- error: 'center' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
290 | Button {
291 | videoPlayer.minus15()
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:290:13: error: 'Button' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
| |- error: 'Button' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
291 | videoPlayer.minus15()
292 | } label: {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:293:17: error: 'Image' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
291 | videoPlayer.minus15()
292 | } label: {
293 | Image(systemName: "gobackward.15")
| |- error: 'Image' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
294 | .offset(y: -1)
295 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:293:17: error: 'init(systemName:)' is only available in macOS 11.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
291 | videoPlayer.minus15()
292 | } label: {
293 | Image(systemName: "gobackward.15")
| |- error: 'init(systemName:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
294 | .offset(y: -1)
295 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:294:22: error: 'offset(x:y:)' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
292 | } label: {
293 | Image(systemName: "gobackward.15")
294 | .offset(y: -1)
| |- error: 'offset(x:y:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
295 | }
296 | .buttonBorderShape(.circle)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:296:14: error: 'buttonBorderShape' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
294 | .offset(y: -1)
295 | }
296 | .buttonBorderShape(.circle)
| |- error: 'buttonBorderShape' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
297 | .controlSize(.large)
298 | .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:296:33: error: 'circle' is only available in macOS 14.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
294 | .offset(y: -1)
295 | }
296 | .buttonBorderShape(.circle)
| |- error: 'circle' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
297 | .controlSize(.large)
298 | .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:297:14: error: 'controlSize' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
295 | }
296 | .buttonBorderShape(.circle)
297 | .controlSize(.large)
| |- error: 'controlSize' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
298 | .tint(.clear)
299 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:297:27: error: 'large' is only available in macOS 11.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
295 | }
296 | .buttonBorderShape(.circle)
297 | .controlSize(.large)
| |- error: 'large' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
298 | .tint(.clear)
299 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:298:14: error: 'tint' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
296 | .buttonBorderShape(.circle)
297 | .controlSize(.large)
298 | .tint(.clear)
| |- error: 'tint' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
299 |
300 | Button {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:298:20: error: 'clear' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
296 | .buttonBorderShape(.circle)
297 | .controlSize(.large)
298 | .tint(.clear)
| |- error: 'clear' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
299 |
300 | Button {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:300:13: error: 'Button' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
298 | .tint(.clear)
299 |
300 | Button {
| |- error: 'Button' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
301 | if videoPlayer.paused {
302 | videoPlayer.play()
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:307:17: error: 'Image' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
305 | }
306 | } label: {
307 | Image(systemName: videoPlayer.paused ? "play.fill" : "pause.fill")
| |- error: 'Image' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
308 | .padding(10)
309 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:307:17: error: 'init(systemName:)' is only available in macOS 11.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
305 | }
306 | } label: {
307 | Image(systemName: videoPlayer.paused ? "play.fill" : "pause.fill")
| |- error: 'init(systemName:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
308 | .padding(10)
309 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:308:22: error: 'padding' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
306 | } label: {
307 | Image(systemName: videoPlayer.paused ? "play.fill" : "pause.fill")
308 | .padding(10)
| |- error: 'padding' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
309 | }
310 | .buttonBorderShape(.circle)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:310:14: error: 'buttonBorderShape' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
308 | .padding(10)
309 | }
310 | .buttonBorderShape(.circle)
| |- error: 'buttonBorderShape' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
311 | .controlSize(.extraLarge)
312 | .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:310:33: error: 'circle' is only available in macOS 14.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
308 | .padding(10)
309 | }
310 | .buttonBorderShape(.circle)
| |- error: 'circle' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
311 | .controlSize(.extraLarge)
312 | .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:311:14: error: 'controlSize' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
309 | }
310 | .buttonBorderShape(.circle)
311 | .controlSize(.extraLarge)
| |- error: 'controlSize' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
312 | .tint(.clear)
313 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:311:27: error: 'extraLarge' is only available in macOS 14.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
309 | }
310 | .buttonBorderShape(.circle)
311 | .controlSize(.extraLarge)
| |- error: 'extraLarge' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
312 | .tint(.clear)
313 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:312:14: error: 'tint' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
310 | .buttonBorderShape(.circle)
311 | .controlSize(.extraLarge)
312 | .tint(.clear)
| |- error: 'tint' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
313 |
314 | Button {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:312:20: error: 'clear' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
310 | .buttonBorderShape(.circle)
311 | .controlSize(.extraLarge)
312 | .tint(.clear)
| |- error: 'clear' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
313 |
314 | Button {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:314:13: error: 'Button' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
312 | .tint(.clear)
313 |
314 | Button {
| |- error: 'Button' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
315 | videoPlayer.plus15()
316 | } label: {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:317:17: error: 'Image' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
315 | videoPlayer.plus15()
316 | } label: {
317 | Image(systemName: "goforward.15")
| |- error: 'Image' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
318 | .offset(y: -1)
319 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:317:17: error: 'init(systemName:)' is only available in macOS 11.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
315 | videoPlayer.plus15()
316 | } label: {
317 | Image(systemName: "goforward.15")
| |- error: 'init(systemName:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
318 | .offset(y: -1)
319 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:318:22: error: 'offset(x:y:)' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
316 | } label: {
317 | Image(systemName: "goforward.15")
318 | .offset(y: -1)
| |- error: 'offset(x:y:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
319 | }
320 | .buttonBorderShape(.circle)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:320:14: error: 'buttonBorderShape' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
318 | .offset(y: -1)
319 | }
320 | .buttonBorderShape(.circle)
| |- error: 'buttonBorderShape' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
321 | .controlSize(.large)
322 | .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:320:33: error: 'circle' is only available in macOS 14.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
318 | .offset(y: -1)
319 | }
320 | .buttonBorderShape(.circle)
| |- error: 'circle' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
321 | .controlSize(.large)
322 | .tint(.clear)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:321:14: error: 'controlSize' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
319 | }
320 | .buttonBorderShape(.circle)
321 | .controlSize(.large)
| |- error: 'controlSize' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
322 | .tint(.clear)
323 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:321:27: error: 'large' is only available in macOS 11.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
319 | }
320 | .buttonBorderShape(.circle)
321 | .controlSize(.large)
| |- error: 'large' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
322 | .tint(.clear)
323 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:322:14: error: 'tint' is only available in macOS 12.0 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
320 | .buttonBorderShape(.circle)
321 | .controlSize(.large)
322 | .tint(.clear)
| |- error: 'tint' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
323 | }
324 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:322:20: error: 'clear' is only available in macOS 10.15 or newer
275 |
276 | /// A simple horizontal view presenting the user with video playback control buttons.
277 | public struct PlaybackButtons: View {
| `- note: add '@available' attribute to enclosing struct
278 | /// The singleton video player control interface.
279 | var videoPlayer: VideoPlayer
:
286 | }
287 |
288 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
289 | HStack(alignment: .center) {
290 | Button {
:
320 | .buttonBorderShape(.circle)
321 | .controlSize(.large)
322 | .tint(.clear)
| |- error: 'clear' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
323 | }
324 | }
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:99:5: note: expanded code originates here
11 |
12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
13 | @Observable
| `- note: in expansion of macro 'Observable' on property 'currentTime' here
14 | public class VideoPlayer: Sendable {
| `- note: add '@available' attribute to enclosing class
15 | //MARK: Video Player and Video Renderer
16 | /// The video player.
:
97 | ///
98 | /// This variable is updated by video playback but can be overwritten by a scrubber, in conjunction with `scrubState`.
99 | public var currentTime: Double = 0
+--- macro expansion @Observable -----------------------------------
|1 | @ObservationTracked
| | `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
+-------------------------------------------------------------------
100 | public enum ScrubState {
101 | /// The scrubber is not active and reflects the video's current playback time.
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:41:5: note: expanded code originates here
11 |
12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
13 | @Observable
| `- note: in expansion of macro 'Observable' on property 'duration' here
14 | public class VideoPlayer: Sendable {
| `- note: add '@available' attribute to enclosing class
15 | //MARK: Video Player and Video Renderer
16 | /// The video player.
:
39 | private(set) public var error: Error?
40 | /// The duration in seconds of the current video (0 if none).
41 | private(set) public var duration: Double = 0
+--- macro expansion @Observable -----------------------------------
|1 | @ObservationTracked
| | `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
+-------------------------------------------------------------------
42 | /// `true` if playback is currently paused, or if playback has completed.
43 | private(set) public var paused: Bool = false
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:109:5: note: expanded code originates here
11 |
12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
13 | @Observable
| `- note: in expansion of macro 'Observable' on property 'scrubState' here
14 | public class VideoPlayer: Sendable {
| `- note: add '@available' attribute to enclosing class
15 | //MARK: Video Player and Video Renderer
16 | /// The video player.
:
107 | }
108 | /// The current state of the scrubber.
109 | public var scrubState: ScrubState = .notScrubbing {
+--- macro expansion @Observable -----------------------------------
|1 | @ObservationTracked
| | `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
+-------------------------------------------------------------------
110 | didSet {
111 | switch scrubState {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:343:9: error: 'Slider' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
| `- note: add '@available' attribute to enclosing struct
330 | /// The singleton video player control interface.
331 | @Binding var videoPlayer: VideoPlayer
:
340 | }
341 |
342 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
343 | Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
| |- error: 'Slider' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
344 | if scrubbing {
345 | videoPlayer.scrubState = .scrubStarted
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:343:9: error: 'init(value:in:onEditingChanged:)' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
| `- note: add '@available' attribute to enclosing struct
330 | /// The singleton video player control interface.
331 | @Binding var videoPlayer: VideoPlayer
:
340 | }
341 |
342 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
343 | Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
| |- error: 'init(value:in:onEditingChanged:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
344 | if scrubbing {
345 | videoPlayer.scrubState = .scrubStarted
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:350:10: error: 'controlSize' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
| `- note: add '@available' attribute to enclosing struct
330 | /// The singleton video player control interface.
331 | @Binding var videoPlayer: VideoPlayer
:
340 | }
341 |
342 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
343 | Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 | if scrubbing {
:
348 | }
349 | }
350 | .controlSize(.regular)
| |- error: 'controlSize' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
351 | .tint(config.controlPanelScrubberTint)
352 | .background(Color.white.opacity(0.5), in: .capsule)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:351:10: error: 'tint' is only available in macOS 12.0 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
| `- note: add '@available' attribute to enclosing struct
330 | /// The singleton video player control interface.
331 | @Binding var videoPlayer: VideoPlayer
:
340 | }
341 |
342 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
343 | Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 | if scrubbing {
:
349 | }
350 | .controlSize(.regular)
351 | .tint(config.controlPanelScrubberTint)
| |- error: 'tint' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
352 | .background(Color.white.opacity(0.5), in: .capsule)
353 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:352:10: error: 'background(_:in:fillStyle:)' is only available in macOS 12.0 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
| `- note: add '@available' attribute to enclosing struct
330 | /// The singleton video player control interface.
331 | @Binding var videoPlayer: VideoPlayer
:
340 | }
341 |
342 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
343 | Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 | if scrubbing {
:
350 | .controlSize(.regular)
351 | .tint(config.controlPanelScrubberTint)
352 | .background(Color.white.opacity(0.5), in: .capsule)
| |- error: 'background(_:in:fillStyle:)' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
353 | }
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:352:21: error: 'Color' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
| `- note: add '@available' attribute to enclosing struct
330 | /// The singleton video player control interface.
331 | @Binding var videoPlayer: VideoPlayer
:
340 | }
341 |
342 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
343 | Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 | if scrubbing {
:
350 | .controlSize(.regular)
351 | .tint(config.controlPanelScrubberTint)
352 | .background(Color.white.opacity(0.5), in: .capsule)
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
353 | }
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:352:27: error: 'white' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
| `- note: add '@available' attribute to enclosing struct
330 | /// The singleton video player control interface.
331 | @Binding var videoPlayer: VideoPlayer
:
340 | }
341 |
342 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
343 | Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 | if scrubbing {
:
350 | .controlSize(.regular)
351 | .tint(config.controlPanelScrubberTint)
352 | .background(Color.white.opacity(0.5), in: .capsule)
| |- error: 'white' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
353 | }
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:352:33: error: 'opacity' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
| `- note: add '@available' attribute to enclosing struct
330 | /// The singleton video player control interface.
331 | @Binding var videoPlayer: VideoPlayer
:
340 | }
341 |
342 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
343 | Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 | if scrubbing {
:
350 | .controlSize(.regular)
351 | .tint(config.controlPanelScrubberTint)
352 | .background(Color.white.opacity(0.5), in: .capsule)
| |- error: 'opacity' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
353 | }
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:352:52: error: 'capsule' is only available in macOS 10.15 or newer
327 | /// A video scrubber made of a slider, which uses a simple state machine contained in `videoPlayer`.
328 | /// Allows users to set the video to a specific time, while otherwise reflecting the current position in playback.
329 | public struct Scrubber: View {
| `- note: add '@available' attribute to enclosing struct
330 | /// The singleton video player control interface.
331 | @Binding var videoPlayer: VideoPlayer
:
340 | }
341 |
342 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
343 | Slider(value: $videoPlayer.currentTime, in: 0...videoPlayer.duration) { scrubbing in
344 | if scrubbing {
:
350 | .controlSize(.regular)
351 | .tint(config.controlPanelScrubberTint)
352 | .background(Color.white.opacity(0.5), in: .capsule)
| |- error: 'capsule' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
353 | }
354 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:369:9: error: 'Text' is only available in macOS 10.15 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
366 | }
367 |
368 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
369 | Text(timeString)
| |- error: 'Text' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
370 | .font(.caption).monospacedDigit()
371 | .frame(width: frameWidth, alignment: .trailing)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:370:14: error: 'font' is only available in macOS 10.15 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
366 | }
367 |
368 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
369 | Text(timeString)
370 | .font(.caption).monospacedDigit()
| |- error: 'font' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
371 | .frame(width: frameWidth, alignment: .trailing)
372 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:370:20: error: 'caption' is only available in macOS 10.15 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
366 | }
367 |
368 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
369 | Text(timeString)
370 | .font(.caption).monospacedDigit()
| |- error: 'caption' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
371 | .frame(width: frameWidth, alignment: .trailing)
372 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:370:29: error: 'monospacedDigit()' is only available in macOS 12.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
366 | }
367 |
368 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
369 | Text(timeString)
370 | .font(.caption).monospacedDigit()
| |- error: 'monospacedDigit()' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
371 | .frame(width: frameWidth, alignment: .trailing)
372 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:371:14: error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
366 | }
367 |
368 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
369 | Text(timeString)
370 | .font(.caption).monospacedDigit()
371 | .frame(width: frameWidth, alignment: .trailing)
| |- error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
372 | }
373 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:371:51: error: 'trailing' is only available in macOS 10.15 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
366 | }
367 |
368 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
369 | Text(timeString)
370 | .font(.caption).monospacedDigit()
371 | .frame(width: frameWidth, alignment: .trailing)
| |- error: 'trailing' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
372 | }
373 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:381:25: error: 'Duration' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
375 | ///
376 | /// If the duration is greater than one hour, the string representation shows hours.
377 | var timeString: String {
| `- note: add '@available' attribute to enclosing property
378 | guard videoPlayer.duration > 0 else {
379 | return "--:-- / --:--"
380 | }
381 | let timeFormat: Duration.TimeFormatStyle = videoPlayer.duration >= 3600 ? .time(pattern: .hourMinuteSecond) : .time(pattern: .minuteSecond)
| |- error: 'Duration' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
382 |
383 | let currentTime = Duration
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:381:84: error: 'time(pattern:)' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
375 | ///
376 | /// If the duration is greater than one hour, the string representation shows hours.
377 | var timeString: String {
| `- note: add '@available' attribute to enclosing property
378 | guard videoPlayer.duration > 0 else {
379 | return "--:-- / --:--"
380 | }
381 | let timeFormat: Duration.TimeFormatStyle = videoPlayer.duration >= 3600 ? .time(pattern: .hourMinuteSecond) : .time(pattern: .minuteSecond)
| |- error: 'time(pattern:)' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
382 |
383 | let currentTime = Duration
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:381:120: error: 'time(pattern:)' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
375 | ///
376 | /// If the duration is greater than one hour, the string representation shows hours.
377 | var timeString: String {
| `- note: add '@available' attribute to enclosing property
378 | guard videoPlayer.duration > 0 else {
379 | return "--:-- / --:--"
380 | }
381 | let timeFormat: Duration.TimeFormatStyle = videoPlayer.duration >= 3600 ? .time(pattern: .hourMinuteSecond) : .time(pattern: .minuteSecond)
| |- error: 'time(pattern:)' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
382 |
383 | let currentTime = Duration
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:383:27: error: 'Duration' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
375 | ///
376 | /// If the duration is greater than one hour, the string representation shows hours.
377 | var timeString: String {
| `- note: add '@available' attribute to enclosing property
378 | guard videoPlayer.duration > 0 else {
379 | return "--:-- / --:--"
:
381 | let timeFormat: Duration.TimeFormatStyle = videoPlayer.duration >= 3600 ? .time(pattern: .hourMinuteSecond) : .time(pattern: .minuteSecond)
382 |
383 | let currentTime = Duration
| |- error: 'Duration' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
384 | .seconds(videoPlayer.currentTime)
385 | .formatted(timeFormat)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:384:14: error: 'seconds' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
375 | ///
376 | /// If the duration is greater than one hour, the string representation shows hours.
377 | var timeString: String {
| `- note: add '@available' attribute to enclosing property
378 | guard videoPlayer.duration > 0 else {
379 | return "--:-- / --:--"
:
382 |
383 | let currentTime = Duration
384 | .seconds(videoPlayer.currentTime)
| |- error: 'seconds' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
385 | .formatted(timeFormat)
386 | let duration = Duration
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:385:14: error: 'formatted' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
375 | ///
376 | /// If the duration is greater than one hour, the string representation shows hours.
377 | var timeString: String {
| `- note: add '@available' attribute to enclosing property
378 | guard videoPlayer.duration > 0 else {
379 | return "--:-- / --:--"
:
383 | let currentTime = Duration
384 | .seconds(videoPlayer.currentTime)
385 | .formatted(timeFormat)
| |- error: 'formatted' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
386 | let duration = Duration
387 | .seconds(videoPlayer.duration)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:386:24: error: 'Duration' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
375 | ///
376 | /// If the duration is greater than one hour, the string representation shows hours.
377 | var timeString: String {
| `- note: add '@available' attribute to enclosing property
378 | guard videoPlayer.duration > 0 else {
379 | return "--:-- / --:--"
:
384 | .seconds(videoPlayer.currentTime)
385 | .formatted(timeFormat)
386 | let duration = Duration
| |- error: 'Duration' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
387 | .seconds(videoPlayer.duration)
388 | .formatted(timeFormat)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:387:14: error: 'seconds' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
375 | ///
376 | /// If the duration is greater than one hour, the string representation shows hours.
377 | var timeString: String {
| `- note: add '@available' attribute to enclosing property
378 | guard videoPlayer.duration > 0 else {
379 | return "--:-- / --:--"
:
385 | .formatted(timeFormat)
386 | let duration = Duration
387 | .seconds(videoPlayer.duration)
| |- error: 'seconds' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
388 | .formatted(timeFormat)
389 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:388:14: error: 'formatted' is only available in macOS 13.0 or newer
355 |
356 | /// A label view printing the current time and total duration of a video.
357 | public struct TimeText: View {
| `- note: add '@available' attribute to enclosing struct
358 | /// The singleton video player control interface.
359 | var videoPlayer: VideoPlayer
:
375 | ///
376 | /// If the duration is greater than one hour, the string representation shows hours.
377 | var timeString: String {
| `- note: add '@available' attribute to enclosing property
378 | guard videoPlayer.duration > 0 else {
379 | return "--:-- / --:--"
:
386 | let duration = Duration
387 | .seconds(videoPlayer.duration)
388 | .formatted(timeFormat)
| |- error: 'formatted' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
389 |
390 | return "\(currentTime) / \(duration)"
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:72:5: note: expanded code originates here
11 |
12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
13 | @Observable
| `- note: in expansion of macro 'Observable' on property 'audioOptions' here
14 | public class VideoPlayer: Sendable {
| `- note: add '@available' attribute to enclosing class
15 | //MARK: Video Player and Video Renderer
16 | /// The video player.
:
70 | private(set) public var selectedBitrateRungIndex: Int = -1
71 | /// Audio options available for the video stream, only available if streaming from a HLS server (m3u8) and with separate audio playlists.
72 | private(set) public var audioOptions: [AudioOption] = []
+--- macro expansion @Observable -----------------------------------
|1 | @ObservationTracked
| | `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
+-------------------------------------------------------------------
73 | /// The currently selected audio index, if any. Only available if streaming from a HLS server (m3u8).
74 | private(set) public var selectedAudioIndex: Int = -1
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:74:5: note: expanded code originates here
11 |
12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
13 | @Observable
| `- note: in expansion of macro 'Observable' on property 'selectedAudioIndex' here
14 | public class VideoPlayer: Sendable {
| `- note: add '@available' attribute to enclosing class
15 | //MARK: Video Player and Video Renderer
16 | /// The video player.
:
72 | private(set) public var audioOptions: [AudioOption] = []
73 | /// The currently selected audio index, if any. Only available if streaming from a HLS server (m3u8).
74 | private(set) public var selectedAudioIndex: Int = -1
+--- macro expansion @Observable -----------------------------------
|1 | @ObservationTracked
| | `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
+-------------------------------------------------------------------
75 | /// `true` if the control panel should be visible to the user.
76 | private(set) public var shouldShowControlPanel: Bool = true
macro expansion @Observable:1:2: error: 'ObservationTracked()' is only available in macOS 14.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Controllers/VideoPlayer.swift:70:5: note: expanded code originates here
11 |
12 | /// Video Player Controller interfacing the underlying `AVPlayer`, exposing states and controls to the UI.
13 | @Observable
| `- note: in expansion of macro 'Observable' on property 'selectedBitrateRungIndex' here
14 | public class VideoPlayer: Sendable {
| `- note: add '@available' attribute to enclosing class
15 | //MARK: Video Player and Video Renderer
16 | /// The video player.
:
68 | private(set) public var bitrateLadder: [BitrateRung] = []
69 | /// The currently selected bitrate rung index, if any. Only available if streaming from a HLS server (m3u8).
70 | private(set) public var selectedBitrateRungIndex: Int = -1
+--- macro expansion @Observable -----------------------------------
|1 | @ObservationTracked
| | `- error: 'ObservationTracked()' is only available in macOS 14.0 or newer
+-------------------------------------------------------------------
71 | /// Audio options available for the video stream, only available if streaming from a HLS server (m3u8) and with separate audio playlists.
72 | private(set) public var audioOptions: [AudioOption] = []
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:417:36: error: 'Binding' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
415 | let options = videoPlayer.audioOptions
416 | let zippedOptions = Array(zip(options.indices, options))
417 | let isOn: (Int) -> Binding<Bool> = { index in
| |- error: 'Binding' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
418 | Binding {
419 | videoPlayer.selectedAudioIndex == index
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:454:36: error: 'Binding' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
452 | let options = videoPlayer.bitrateLadder
453 | let zippedOptions = Array(zip(options.indices, options))
454 | let isOn: (Int) -> Binding<Bool> = { index in
| |- error: 'Binding' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
455 | Binding {
456 | videoPlayer.selectedBitrateRungIndex == index
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:9: error: 'VStack' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
| |- error: 'VStack' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
414 | if videoPlayer.canChooseAudio {
415 | let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:28: error: 'trailing' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
| |- error: 'trailing' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
414 | if videoPlayer.canChooseAudio {
415 | let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:38: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
414 | if videoPlayer.canChooseAudio {
415 | let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:38: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
414 | if videoPlayer.canChooseAudio {
415 | let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:418:21: error: 'Binding' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
416 | let zippedOptions = Array(zip(options.indices, options))
417 | let isOn: (Int) -> Binding<Bool> = { index in
418 | Binding {
| |- error: 'Binding' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
419 | videoPlayer.selectedAudioIndex == index
420 | } set: { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:425:17: error: 'HStack' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
423 | }
424 |
425 | HStack {
| |- error: 'HStack' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
426 | Toggle(isOn: isOn(-1)) {
427 | Text("Default")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:425:24: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
423 | }
424 |
425 | HStack {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
426 | Toggle(isOn: isOn(-1)) {
427 | Text("Default")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:426:21: error: 'Toggle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
424 |
425 | HStack {
426 | Toggle(isOn: isOn(-1)) {
| |- error: 'Toggle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
427 | Text("Default")
428 | .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:426:21: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
424 |
425 | HStack {
426 | Toggle(isOn: isOn(-1)) {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
427 | Text("Default")
428 | .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:427:25: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
425 | HStack {
426 | Toggle(isOn: isOn(-1)) {
427 | Text("Default")
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
428 | .font(.subheadline)
429 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:427:25: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
425 | HStack {
426 | Toggle(isOn: isOn(-1)) {
427 | Text("Default")
| |- error: 'Text' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
428 | .font(.subheadline)
429 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:428:30: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
426 | Toggle(isOn: isOn(-1)) {
427 | Text("Default")
428 | .font(.subheadline)
| |- error: 'font' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
429 | }
430 | .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:428:36: error: 'subheadline' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
426 | Toggle(isOn: isOn(-1)) {
427 | Text("Default")
428 | .font(.subheadline)
| |- error: 'subheadline' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
429 | }
430 | .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:426:44: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
424 |
425 | HStack {
426 | Toggle(isOn: isOn(-1)) {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
427 | Text("Default")
428 | .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:430:22: error: 'toggleStyle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
428 | .font(.subheadline)
429 | }
430 | .toggleStyle(.button)
| |- error: 'toggleStyle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
431 | .controlSize(.small)
432 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:430:35: error: 'button' is only available in macOS 12.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
428 | .font(.subheadline)
429 | }
430 | .toggleStyle(.button)
| |- error: 'button' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
431 | .controlSize(.small)
432 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:431:22: error: 'controlSize' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
429 | }
430 | .toggleStyle(.button)
431 | .controlSize(.small)
| |- error: 'controlSize' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
432 |
433 | ForEach(zippedOptions, id: \.0) { index, option in
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:433:21: error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
431 | .controlSize(.small)
432 |
433 | ForEach(zippedOptions, id: \.0) { index, option in
| |- error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
434 | Toggle(isOn: isOn(index)) {
435 | VStack(spacing: -3) {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:433:21: error: 'ForEach' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
431 | .controlSize(.small)
432 |
433 | ForEach(zippedOptions, id: \.0) { index, option in
| |- error: 'ForEach' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
434 | Toggle(isOn: isOn(index)) {
435 | VStack(spacing: -3) {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:433:21: error: 'init(_:id:content:)' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
431 | .controlSize(.small)
432 |
433 | ForEach(zippedOptions, id: \.0) { index, option in
| |- error: 'init(_:id:content:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
434 | Toggle(isOn: isOn(index)) {
435 | VStack(spacing: -3) {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:434:25: error: 'Toggle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
432 |
433 | ForEach(zippedOptions, id: \.0) { index, option in
434 | Toggle(isOn: isOn(index)) {
| |- error: 'Toggle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
435 | VStack(spacing: -3) {
436 | Text(option.description)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:435:29: error: 'VStack' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
433 | ForEach(zippedOptions, id: \.0) { index, option in
434 | Toggle(isOn: isOn(index)) {
435 | VStack(spacing: -3) {
| |- error: 'VStack' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
436 | Text(option.description)
437 | .font(.caption)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:436:33: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
434 | Toggle(isOn: isOn(index)) {
435 | VStack(spacing: -3) {
436 | Text(option.description)
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
437 | .font(.caption)
438 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:436:33: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
434 | Toggle(isOn: isOn(index)) {
435 | VStack(spacing: -3) {
436 | Text(option.description)
| |- error: 'Text' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
437 | .font(.caption)
438 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:437:38: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
435 | VStack(spacing: -3) {
436 | Text(option.description)
437 | .font(.caption)
| |- error: 'font' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
438 |
439 | Text(option.groupId.capitalized)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:437:44: error: 'caption' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
435 | VStack(spacing: -3) {
436 | Text(option.description)
437 | .font(.caption)
| |- error: 'caption' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
438 |
439 | Text(option.groupId.capitalized)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:439:33: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
437 | .font(.caption)
438 |
439 | Text(option.groupId.capitalized)
| |- error: 'Text' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
440 | .font(.caption2)
441 | .opacity(0.8)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:440:38: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
438 |
439 | Text(option.groupId.capitalized)
440 | .font(.caption2)
| |- error: 'font' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
441 | .opacity(0.8)
442 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:440:44: error: 'caption2' is only available in macOS 11.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
438 |
439 | Text(option.groupId.capitalized)
440 | .font(.caption2)
| |- error: 'caption2' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
441 | .opacity(0.8)
442 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:441:38: error: 'opacity' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
439 | Text(option.groupId.capitalized)
440 | .font(.caption2)
441 | .opacity(0.8)
| |- error: 'opacity' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
442 | }
443 | .padding(.vertical, -5)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:435:49: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
433 | ForEach(zippedOptions, id: \.0) { index, option in
434 | Toggle(isOn: isOn(index)) {
435 | VStack(spacing: -3) {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
436 | Text(option.description)
437 | .font(.caption)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:443:30: error: 'padding' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
441 | .opacity(0.8)
442 | }
443 | .padding(.vertical, -5)
| |- error: 'padding' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
444 | }
445 | .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:445:26: error: 'toggleStyle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
443 | .padding(.vertical, -5)
444 | }
445 | .toggleStyle(.button)
| |- error: 'toggleStyle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
446 | .controlSize(.small)
447 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:445:39: error: 'button' is only available in macOS 12.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
443 | .padding(.vertical, -5)
444 | }
445 | .toggleStyle(.button)
| |- error: 'button' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
446 | .controlSize(.small)
447 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:446:26: error: 'controlSize' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
444 | }
445 | .toggleStyle(.button)
446 | .controlSize(.small)
| |- error: 'controlSize' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
447 | }
448 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:425:24: error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
423 | }
424 |
425 | HStack {
| |- error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
426 | Toggle(isOn: isOn(-1)) {
427 | Text("Default")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:414:43: error: 'buildIf' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
| |- error: 'buildIf' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
415 | let options = videoPlayer.audioOptions
416 | let zippedOptions = Array(zip(options.indices, options))
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:449:13: error: 'buildIf' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
447 | }
448 | }
449 | }
| |- error: 'buildIf' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
450 |
451 | if videoPlayer.canChooseResolution {
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:455:21: error: 'Binding' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
453 | let zippedOptions = Array(zip(options.indices, options))
454 | let isOn: (Int) -> Binding<Bool> = { index in
455 | Binding {
| |- error: 'Binding' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
456 | videoPlayer.selectedBitrateRungIndex == index
457 | } set: { _ in
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:462:17: error: 'HStack' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
460 | }
461 |
462 | HStack {
| |- error: 'HStack' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
463 | Toggle(isOn: isOn(-1)) {
464 | Text("Auto")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:462:24: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
460 | }
461 |
462 | HStack {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
463 | Toggle(isOn: isOn(-1)) {
464 | Text("Auto")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:463:21: error: 'Toggle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
461 |
462 | HStack {
463 | Toggle(isOn: isOn(-1)) {
| |- error: 'Toggle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
464 | Text("Auto")
465 | .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:463:21: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
461 |
462 | HStack {
463 | Toggle(isOn: isOn(-1)) {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
464 | Text("Auto")
465 | .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:464:25: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
462 | HStack {
463 | Toggle(isOn: isOn(-1)) {
464 | Text("Auto")
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
465 | .font(.subheadline)
466 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:464:25: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
462 | HStack {
463 | Toggle(isOn: isOn(-1)) {
464 | Text("Auto")
| |- error: 'Text' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
465 | .font(.subheadline)
466 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:465:30: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
463 | Toggle(isOn: isOn(-1)) {
464 | Text("Auto")
465 | .font(.subheadline)
| |- error: 'font' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
466 | }
467 | .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:465:36: error: 'subheadline' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
463 | Toggle(isOn: isOn(-1)) {
464 | Text("Auto")
465 | .font(.subheadline)
| |- error: 'subheadline' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
466 | }
467 | .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:463:44: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
461 |
462 | HStack {
463 | Toggle(isOn: isOn(-1)) {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
464 | Text("Auto")
465 | .font(.subheadline)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:467:22: error: 'toggleStyle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
465 | .font(.subheadline)
466 | }
467 | .toggleStyle(.button)
| |- error: 'toggleStyle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
468 | .controlSize(.small)
469 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:467:35: error: 'button' is only available in macOS 12.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
465 | .font(.subheadline)
466 | }
467 | .toggleStyle(.button)
| |- error: 'button' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
468 | .controlSize(.small)
469 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:468:22: error: 'controlSize' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
466 | }
467 | .toggleStyle(.button)
468 | .controlSize(.small)
| |- error: 'controlSize' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
469 |
470 | ForEach(zippedOptions, id: \.0) { index, option in
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:470:21: error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
468 | .controlSize(.small)
469 |
470 | ForEach(zippedOptions, id: \.0) { index, option in
| |- error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
471 | Toggle(isOn: isOn(index)) {
472 | Text(option.resolutionString)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:470:21: error: 'ForEach' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
468 | .controlSize(.small)
469 |
470 | ForEach(zippedOptions, id: \.0) { index, option in
| |- error: 'ForEach' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
471 | Toggle(isOn: isOn(index)) {
472 | Text(option.resolutionString)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:470:21: error: 'init(_:id:content:)' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
468 | .controlSize(.small)
469 |
470 | ForEach(zippedOptions, id: \.0) { index, option in
| |- error: 'init(_:id:content:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
471 | Toggle(isOn: isOn(index)) {
472 | Text(option.resolutionString)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:471:25: error: 'Toggle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
469 |
470 | ForEach(zippedOptions, id: \.0) { index, option in
471 | Toggle(isOn: isOn(index)) {
| |- error: 'Toggle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
472 | Text(option.resolutionString)
473 | .font(.caption)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:472:29: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
470 | ForEach(zippedOptions, id: \.0) { index, option in
471 | Toggle(isOn: isOn(index)) {
472 | Text(option.resolutionString)
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
473 | .font(.caption)
474 | Text(option.bitrateString)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:472:29: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
470 | ForEach(zippedOptions, id: \.0) { index, option in
471 | Toggle(isOn: isOn(index)) {
472 | Text(option.resolutionString)
| |- error: 'Text' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
473 | .font(.caption)
474 | Text(option.bitrateString)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:473:34: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
471 | Toggle(isOn: isOn(index)) {
472 | Text(option.resolutionString)
473 | .font(.caption)
| |- error: 'font' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
474 | Text(option.bitrateString)
475 | .font(.caption2)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:473:40: error: 'caption' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
471 | Toggle(isOn: isOn(index)) {
472 | Text(option.resolutionString)
473 | .font(.caption)
| |- error: 'caption' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
474 | Text(option.bitrateString)
475 | .font(.caption2)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:474:29: error: 'Text' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
472 | Text(option.resolutionString)
473 | .font(.caption)
474 | Text(option.bitrateString)
| |- error: 'Text' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
475 | .font(.caption2)
476 | .opacity(0.8)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:475:34: error: 'font' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
473 | .font(.caption)
474 | Text(option.bitrateString)
475 | .font(.caption2)
| |- error: 'font' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
476 | .opacity(0.8)
477 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:475:40: error: 'caption2' is only available in macOS 11.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
473 | .font(.caption)
474 | Text(option.bitrateString)
475 | .font(.caption2)
| |- error: 'caption2' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
476 | .opacity(0.8)
477 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:476:34: error: 'opacity' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
474 | Text(option.bitrateString)
475 | .font(.caption2)
476 | .opacity(0.8)
| |- error: 'opacity' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
477 | }
478 | .toggleStyle(.button)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:471:51: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
469 |
470 | ForEach(zippedOptions, id: \.0) { index, option in
471 | Toggle(isOn: isOn(index)) {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
472 | Text(option.resolutionString)
473 | .font(.caption)
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:478:26: error: 'toggleStyle' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
476 | .opacity(0.8)
477 | }
478 | .toggleStyle(.button)
| |- error: 'toggleStyle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
479 | .controlSize(.small)
480 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:478:39: error: 'button' is only available in macOS 12.0 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
476 | .opacity(0.8)
477 | }
478 | .toggleStyle(.button)
| |- error: 'button' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
479 | .controlSize(.small)
480 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:479:26: error: 'controlSize' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
477 | }
478 | .toggleStyle(.button)
479 | .controlSize(.small)
| |- error: 'controlSize' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
480 | }
481 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:462:24: error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
460 | }
461 |
462 | HStack {
| |- error: conformance of 'ForEach<Data, ID, Content>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
463 | Toggle(isOn: isOn(-1)) {
464 | Text("Auto")
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:451:48: error: 'buildIf' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
449 | }
450 |
451 | if videoPlayer.canChooseResolution {
| |- error: 'buildIf' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
452 | let options = videoPlayer.bitrateLadder
453 | let zippedOptions = Array(zip(options.indices, options))
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:482:13: error: 'buildIf' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
414 | if videoPlayer.canChooseAudio {
:
480 | }
481 | }
482 | }
| |- error: 'buildIf' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
483 | }
484 |
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:38: error: conformance of 'Optional<Wrapped>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
| |- error: conformance of 'Optional<Wrapped>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
414 | if videoPlayer.canChooseAudio {
415 | let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/ControlPanel.swift:413:38: error: conformance of 'Optional<Wrapped>' to 'View' is only available in macOS 10.15 or newer
399 |
400 | /// A row of buttons to select the resolution / quality of the video's HLS stream.
401 | public struct VariantSelector: View {
| `- note: add '@available' attribute to enclosing struct
402 | /// The singleton video player control interface.
403 | @Binding var videoPlayer: VideoPlayer
:
410 | }
411 |
412 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
413 | VStack(alignment: .trailing) {
| |- error: conformance of 'Optional<Wrapped>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
414 | if videoPlayer.canChooseAudio {
415 | let options = videoPlayer.audioOptions
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:13:6: error: 'State' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
| `- error: 'State' is only available in macOS 10.15 or newer
14 |
15 | /// The nested view.
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:25:18: error: 'ViewBuilder' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
23 | /// - content: the view builder for the view to nest.
24 | /// - loadItemAction: the callback to execute after a file has been picked.
25 | public init(@ViewBuilder content: @escaping () -> Content, loadItemAction: @escaping VideoItemAction) {
| | `- error: 'ViewBuilder' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing initializer
26 | self.content = content
27 | self.loadItemAction = loadItemAction
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:30:27: error: 'View' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:11:35: error: 'View' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:74:9: error: extraneous argument label 'windowStyle:' in macro expansion
72 | }
73 |
74 | #Preview(windowStyle: .automatic) {
| `- error: extraneous argument label 'windowStyle:' in macro expansion
75 | DropTarget() {
76 | Color.clear
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:74:24: error: type 'String?' has no member 'automatic'
72 | }
73 |
74 | #Preview(windowStyle: .automatic) {
| `- error: type 'String?' has no member 'automatic'
75 | DropTarget() {
76 | Color.clear
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:9: error: 'Group' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
| |- error: 'Group' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
32 | if isTargeted {
33 | ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:9: error: 'init(content:)' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
| |- error: 'init(content:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
32 | if isTargeted {
33 | ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:15: error: conformance of 'RoundedRectangle' to 'InsettableShape' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
| |- error: conformance of 'RoundedRectangle' to 'InsettableShape' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
32 | if isTargeted {
33 | ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:15: error: conformance of 'Color' to 'ShapeStyle' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
| |- error: conformance of 'Color' to 'ShapeStyle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
32 | if isTargeted {
33 | ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:15: error: conformance of 'Color' to 'ShapeStyle' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
| |- error: conformance of 'Color' to 'ShapeStyle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
32 | if isTargeted {
33 | ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:33:17: error: 'ZStack' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
33 | ZStack {
| |- error: 'ZStack' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
34 | Color.clear
35 | VStack(spacing: 20) {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:34:21: error: conformance of 'Color' to 'View' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
33 | ZStack {
34 | Color.clear
| |- error: conformance of 'Color' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
35 | VStack(spacing: 20) {
36 | Image(systemName: "photo.badge.arrow.down")
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:34:21: error: 'Color' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
33 | ZStack {
34 | Color.clear
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
35 | VStack(spacing: 20) {
36 | Image(systemName: "photo.badge.arrow.down")
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:34:27: error: 'clear' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
33 | ZStack {
34 | Color.clear
| |- error: 'clear' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
35 | VStack(spacing: 20) {
36 | Image(systemName: "photo.badge.arrow.down")
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:35:21: error: 'VStack' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
33 | ZStack {
34 | Color.clear
35 | VStack(spacing: 20) {
| |- error: 'VStack' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
36 | Image(systemName: "photo.badge.arrow.down")
37 | .resizable()
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:36:25: error: 'Image' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
34 | Color.clear
35 | VStack(spacing: 20) {
36 | Image(systemName: "photo.badge.arrow.down")
| |- error: 'Image' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
37 | .resizable()
38 | .aspectRatio(contentMode: .fit)
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:36:25: error: 'init(systemName:)' is only available in macOS 11.0 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
34 | Color.clear
35 | VStack(spacing: 20) {
36 | Image(systemName: "photo.badge.arrow.down")
| |- error: 'init(systemName:)' is only available in macOS 11.0 or newer
| `- note: add 'if #available' version check
37 | .resizable()
38 | .aspectRatio(contentMode: .fit)
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:37:30: error: 'resizable(capInsets:resizingMode:)' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
35 | VStack(spacing: 20) {
36 | Image(systemName: "photo.badge.arrow.down")
37 | .resizable()
| |- error: 'resizable(capInsets:resizingMode:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
38 | .aspectRatio(contentMode: .fit)
39 | .frame(width: 50, height: 50)
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:38:30: error: 'aspectRatio(_:contentMode:)' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
36 | Image(systemName: "photo.badge.arrow.down")
37 | .resizable()
38 | .aspectRatio(contentMode: .fit)
| |- error: 'aspectRatio(_:contentMode:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
39 | .frame(width: 50, height: 50)
40 | Text("Drop your video here")
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:39:30: error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
37 | .resizable()
38 | .aspectRatio(contentMode: .fit)
39 | .frame(width: 50, height: 50)
| |- error: 'frame(width:height:alignment:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
40 | Text("Drop your video here")
41 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:40:25: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
38 | .aspectRatio(contentMode: .fit)
39 | .frame(width: 50, height: 50)
40 | Text("Drop your video here")
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
41 | }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:40:25: error: 'Text' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
38 | .aspectRatio(contentMode: .fit)
39 | .frame(width: 50, height: 50)
40 | Text("Drop your video here")
| |- error: 'Text' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
41 | }
42 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:35:41: error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
33 | ZStack {
34 | Color.clear
35 | VStack(spacing: 20) {
| |- error: conformance of 'Text' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
36 | Image(systemName: "photo.badge.arrow.down")
37 | .resizable()
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:33:24: error: conformance of 'Color' to 'View' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
33 | ZStack {
| |- error: conformance of 'Color' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
34 | Color.clear
35 | VStack(spacing: 20) {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:43:18: error: 'background(_:alignment:)' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
41 | }
42 | }
43 | .background(
| |- error: 'background(_:alignment:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
44 | // Espouse the boundaries of the app window
45 | RoundedRectangle(cornerRadius: 50)
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:45:21: error: 'RoundedRectangle' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
43 | .background(
44 | // Espouse the boundaries of the app window
45 | RoundedRectangle(cornerRadius: 50)
| |- error: 'RoundedRectangle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
46 | .fill(.clear)
47 | .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:46:26: error: 'fill(_:style:)' is only available in macOS 14.0 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
44 | // Espouse the boundaries of the app window
45 | RoundedRectangle(cornerRadius: 50)
46 | .fill(.clear)
| |- error: 'fill(_:style:)' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
47 | .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
48 | )
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:46:32: error: 'clear' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
44 | // Espouse the boundaries of the app window
45 | RoundedRectangle(cornerRadius: 50)
46 | .fill(.clear)
| |- error: 'clear' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
47 | .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
48 | )
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:47:26: error: 'strokeBorder(_:style:antialiased:)' is only available in macOS 14.0 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
45 | RoundedRectangle(cornerRadius: 50)
46 | .fill(.clear)
47 | .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
| |- error: 'strokeBorder(_:style:antialiased:)' is only available in macOS 14.0 or newer
| `- note: add 'if #available' version check
48 | )
49 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:47:46: error: 'StrokeStyle' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
45 | RoundedRectangle(cornerRadius: 50)
46 | .fill(.clear)
47 | .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
| |- error: 'StrokeStyle' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
48 | )
49 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:32:27: error: 'buildEither(first:)' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
| |- error: 'buildEither(first:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
33 | ZStack {
34 | Color.clear
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:49:20: error: 'buildEither(second:)' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
47 | .strokeBorder(style: StrokeStyle(lineWidth: 4, dash: [10]))
48 | )
49 | } else {
| |- error: 'buildEither(second:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
50 | content()
51 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:31:15: error: conformance of '_ConditionalContent<TrueContent, FalseContent>' to 'View' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
| |- error: conformance of '_ConditionalContent<TrueContent, FalseContent>' to 'View' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
32 | if isTargeted {
33 | ZStack {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:53:10: error: 'contentShape(_:eoFill:)' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
51 | }
52 | }
53 | .contentShape(.rect)
| |- error: 'contentShape(_:eoFill:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
54 | .dropDestination(for: SpatialVideo.self) { videos, _ in
55 | guard let video = videos.first else {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:53:24: error: 'rect' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
51 | }
52 | }
53 | .contentShape(.rect)
| |- error: 'rect' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
54 | .dropDestination(for: SpatialVideo.self) { videos, _ in
55 | guard let video = videos.first else {
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:54:10: error: 'dropDestination(for:action:isTargeted:)' is only available in macOS 13.0 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
52 | }
53 | .contentShape(.rect)
54 | .dropDestination(for: SpatialVideo.self) { videos, _ in
| |- error: 'dropDestination(for:action:isTargeted:)' is only available in macOS 13.0 or newer
| `- note: add 'if #available' version check
55 | guard let video = videos.first else {
56 | return false
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:70:32: error: 'withAnimation' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
68 | loadItemAction(item)
69 | return true
70 | } isTargeted: { val in withAnimation { isTargeted = val } }
| |- error: 'withAnimation' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
71 | }
72 | }
/Users/admin/builder/spi-builder-workspace/Sources/Views/DropTarget.swift:70:48: error: setter for 'isTargeted' is only available in macOS 10.15 or newer
9 |
10 | /// A view capable of receiving of showing videos dragged from other apps.
11 | public struct DropTarget<Content: View>: View {
| `- note: add '@available' attribute to enclosing generic struct
12 | /// Whether a dragged video is hovering the view at the moment.
13 | @State var isTargeted: Bool = false
:
28 | }
29 |
30 | public var body: some View {
| `- note: add '@available' attribute to enclosing property
31 | Group {
32 | if isTargeted {
:
68 | loadItemAction(item)
69 | return true
70 | } isTargeted: { val in withAnimation { isTargeted = val } }
| |- error: setter for 'isTargeted' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
71 | }
72 | }
BUILD FAILURE 6.2 macosSpm