Build Information
Failed to build PianoKeyboard, reference 1.2.4 (c21b38
), with Swift 6.0 for macOS (SPM) on 4 May 2025 02:24:09 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64
Build Log
========================================
RunAll
========================================
Builder version: 4.61.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/garynewby/PianoKeyboard.git
Reference: 1.2.4
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/garynewby/PianoKeyboard
* tag 1.2.4 -> FETCH_HEAD
HEAD is now at c21b387 Screen images
Cloned https://github.com/garynewby/PianoKeyboard.git
Revision (git rev-parse @):
c21b387b8e8d843144f7b221257d14a5bb99ae27
SUCCESS checkout https://github.com/garynewby/PianoKeyboard.git at 1.2.4
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.0
Building package at path: $PWD
https://github.com/garynewby/PianoKeyboard.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.0.app xcrun swift build --arch arm64
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-5BDAB9E9C0126B9D.txt
[3/12] Compiling PianoKeyboard TouchesView.swift
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:13:30: error: cannot find type 'Context' in scope
11 | var viewModel: PianoKeyboardViewModel
12 |
13 | func makeUIView(context: Context) -> TouchesUIView {
| `- error: cannot find type 'Context' in scope
14 | let touchesUIView = TouchesUIView()
15 | touchesUIView.isMultipleTouchEnabled = true
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:20:57: error: cannot find type 'Context' in scope
18 | }
19 |
20 | func updateUIView(_ uiView: TouchesUIView, context: Context) {}
| `- error: cannot find type 'Context' in scope
21 |
22 | func makeCoordinator() -> Coordinator {
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:10:21: error: cannot find type 'UIViewRepresentable' in scope
8 | import SwiftUI
9 |
10 | struct TouchesView: UIViewRepresentable {
| `- error: cannot find type 'UIViewRepresentable' in scope
11 | var viewModel: PianoKeyboardViewModel
12 |
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:44:22: error: cannot find type 'UIView' in scope
42 | }
43 |
44 | class TouchesUIView: UIView {
| `- error: cannot find type 'UIView' in scope
45 | static var minNumberOfKeys: Int = 12
46 | static var maxNumberOfKeys: Int = 61
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:58:54: error: cannot find type 'UITouch' in scope
56 | }
57 |
58 | public override func touchesBegan(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UITouch' in scope
59 | for touch in touches {
60 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:58:72: error: cannot find type 'UIEvent' in scope
56 | }
57 |
58 | public override func touchesBegan(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UIEvent' in scope
59 | for touch in touches {
60 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:58:26: error: method does not override any method from its superclass
56 | }
57 |
58 | public override func touchesBegan(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: method does not override any method from its superclass
59 | for touch in touches {
60 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:65:54: error: cannot find type 'UITouch' in scope
63 | }
64 |
65 | public override func touchesMoved(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UITouch' in scope
66 | for touch in touches {
67 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:65:72: error: cannot find type 'UIEvent' in scope
63 | }
64 |
65 | public override func touchesMoved(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UIEvent' in scope
66 | for touch in touches {
67 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:65:26: error: method does not override any method from its superclass
63 | }
64 |
65 | public override func touchesMoved(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: method does not override any method from its superclass
66 | for touch in touches {
67 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:72:54: error: cannot find type 'UITouch' in scope
70 | }
71 |
72 | public override func touchesEnded(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UITouch' in scope
73 | for touch in touches {
74 | currentTouches.remove(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:72:72: error: cannot find type 'UIEvent' in scope
70 | }
71 |
72 | public override func touchesEnded(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UIEvent' in scope
73 | for touch in touches {
74 | currentTouches.remove(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:72:26: error: method does not override any method from its superclass
70 | }
71 |
72 | public override func touchesEnded(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: method does not override any method from its superclass
73 | for touch in touches {
74 | currentTouches.remove(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:79:58: error: cannot find type 'UITouch' in scope
77 | }
78 |
79 | public override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
| `- error: cannot find type 'UITouch' in scope
80 | for touch in touches {
81 | currentTouches.remove(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:79:80: error: cannot find type 'UIEvent' in scope
77 | }
78 |
79 | public override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
| `- error: cannot find type 'UIEvent' in scope
80 | for touch in touches {
81 | currentTouches.remove(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:79:26: error: method does not override any method from its superclass
77 | }
78 |
79 | public override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
| `- error: method does not override any method from its superclass
80 | for touch in touches {
81 | currentTouches.remove(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:15:23: error: value of type 'TouchesUIView' has no member 'isMultipleTouchEnabled'
13 | func makeUIView(context: Context) -> TouchesUIView {
14 | let touchesUIView = TouchesUIView()
15 | touchesUIView.isMultipleTouchEnabled = true
| `- error: value of type 'TouchesUIView' has no member 'isMultipleTouchEnabled'
16 | touchesUIView.delegate = context.coordinator
17 | return touchesUIView
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:52:57: error: cannot find type 'UITouch' in scope
50 |
51 | func updateKeys() {
52 | if let touches = currentTouches.allObjects as? [UITouch] {
| `- error: cannot find type 'UITouch' in scope
53 | let points = touches.map { $0.location(in: nil) }
54 | delegate?.touches = points
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:53:56: error: 'nil' requires a contextual type
51 | func updateKeys() {
52 | if let touches = currentTouches.allObjects as? [UITouch] {
53 | let points = touches.map { $0.location(in: nil) }
| `- error: 'nil' requires a contextual type
54 | delegate?.touches = points
55 | }
[4/12] Compiling PianoKeyboard RoundedCornersShape.swift
/Users/admin/builder/spi-builder-workspace/Source/RoundedCornersShape.swift:11:18: error: cannot find type 'UIRectCorner' in scope
9 |
10 | public struct RoundedCornersShape: Shape {
11 | let corners: UIRectCorner
| `- error: cannot find type 'UIRectCorner' in scope
12 | let radius: CGFloat
13 |
/Users/admin/builder/spi-builder-workspace/Source/RoundedCornersShape.swift:14:26: error: cannot find type 'UIRectCorner' in scope
12 | let radius: CGFloat
13 |
14 | public init(corners: UIRectCorner, radius: CGFloat) {
| `- error: cannot find type 'UIRectCorner' in scope
15 | self.corners = corners
16 | self.radius = radius
/Users/admin/builder/spi-builder-workspace/Source/RoundedCornersShape.swift:19:42: error: 'Path' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct RoundedCornersShape: Shape {
| `- note: add @available attribute to enclosing struct
11 | let corners: UIRectCorner
12 | let radius: CGFloat
:
17 | }
18 |
19 | public func path(in rect: CGRect) -> Path {
| | `- error: 'Path' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
20 | let path = UIBezierPath(
21 | roundedRect: rect,
/Users/admin/builder/spi-builder-workspace/Source/RoundedCornersShape.swift:20:20: error: cannot find 'UIBezierPath' in scope
18 |
19 | public func path(in rect: CGRect) -> Path {
20 | let path = UIBezierPath(
| `- error: cannot find 'UIBezierPath' in scope
21 | roundedRect: rect,
22 | byRoundingCorners: corners,
[5/12] Compiling PianoKeyboard ClassicStyle.swift
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:15:20: error: 'Font' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
13 | let sfKeyInsetMultiplier: CGFloat
14 | let cornerRadiusMultiplier: CGFloat
15 | let labelFont: Font
| `- error: 'Font' is only available in macOS 10.15 or newer
16 | let labelColor: Color
17 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:16:21: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
14 | let cornerRadiusMultiplier: CGFloat
15 | let labelFont: Font
16 | let labelColor: Color
| `- error: 'Color' is only available in macOS 10.15 or newer
17 |
18 | public let showLabels: Bool
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:27:20: error: 'Font' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
25 | cornerRadiusMultiplier: CGFloat = 0.008,
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
| `- error: 'Font' is only available in macOS 10.15 or newer
28 | labelColor: Color = .gray,
29 | showLabels: Bool = true
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:28:21: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
28 | labelColor: Color = .gray,
| `- error: 'Color' is only available in macOS 10.15 or newer
29 | showLabels: Bool = true
30 | ) {
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:27:28: error: 'title3' is only available in macOS 11.0 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
25 | cornerRadiusMultiplier: CGFloat = 0.008,
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
| `- error: 'title3' is only available in macOS 11.0 or newer
28 | labelColor: Color = .gray,
29 | showLabels: Bool = true
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:27:35: error: 'bold()' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
25 | cornerRadiusMultiplier: CGFloat = 0.008,
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
| `- error: 'bold()' is only available in macOS 10.15 or newer
28 | labelColor: Color = .gray,
29 | showLabels: Bool = true
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:28:30: error: 'gray' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
28 | labelColor: Color = .gray,
| `- error: 'gray' is only available in macOS 10.15 or newer
29 | showLabels: Bool = true
30 | ) {
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:41:47: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
39 | }
40 |
41 | public func naturalColor(_ down: Bool) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
42 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
43 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:45:49: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
43 | }
44 |
45 | public func sharpFlatColor(_ down: Bool) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
46 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.5, green: 0.5, blue: 0.5)
47 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:49:50: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
47 | }
48 |
49 | public func labelColor(_ noteNumber: Int) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
50 | Color(hue: Double(noteNumber) / 127.0, saturation: 1, brightness: 0.6)
51 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:57:69: error: 'GeometryProxy' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
55 | }
56 |
57 | public func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> some View {
| | `- error: 'GeometryProxy' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
58 | Canvas { context, size in
59 | let width = size.width
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:57:92: error: 'View' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
55 | }
56 |
57 | public func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
58 | Canvas { context, size in
59 | let width = size.width
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:42:16: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
39 | }
40 |
41 | public func naturalColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
42 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
43 | }
44 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:42:16: error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
39 | }
40 |
41 | public func naturalColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
42 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
| |- error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
43 | }
44 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:42:57: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
39 | }
40 |
41 | public func naturalColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
42 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
43 | }
44 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:42:57: error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
39 | }
40 |
41 | public func naturalColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
42 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
| |- error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
43 | }
44 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:46:16: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
43 | }
44 |
45 | public func sharpFlatColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
46 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.5, green: 0.5, blue: 0.5)
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
47 | }
48 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:46:16: error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
43 | }
44 |
45 | public func sharpFlatColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
46 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.5, green: 0.5, blue: 0.5)
| |- error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
47 | }
48 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:46:57: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
43 | }
44 |
45 | public func sharpFlatColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
46 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.5, green: 0.5, blue: 0.5)
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
47 | }
48 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:46:57: error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
43 | }
44 |
45 | public func sharpFlatColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
46 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.5, green: 0.5, blue: 0.5)
| |- error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
47 | }
48 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:50:9: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
47 | }
48 |
49 | public func labelColor(_ noteNumber: Int) -> Color {
| `- note: add @available attribute to enclosing instance method
50 | Color(hue: Double(noteNumber) / 127.0, saturation: 1, brightness: 0.6)
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
51 | }
52 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:50:9: error: 'init(hue:saturation:brightness:opacity:)' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
47 | }
48 |
49 | public func labelColor(_ noteNumber: Int) -> Color {
| `- note: add @available attribute to enclosing instance method
50 | Color(hue: Double(noteNumber) / 127.0, saturation: 1, brightness: 0.6)
| |- error: 'init(hue:saturation:brightness:opacity:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
51 | }
52 |
/Users/admin/builder/spi-builder-workspace/Source/RoundedCornersShape.swift:14:26: error: cannot find type 'UIRectCorner' in scope
12 | let radius: CGFloat
13 |
14 | public init(corners: UIRectCorner, radius: CGFloat) {
| `- error: cannot find type 'UIRectCorner' in scope
15 | self.corners = corners
16 | self.radius = radius
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:78:59: error: reference to member 'bottomLeft' cannot be resolved without a contextual type
76 | )
77 |
78 | let path = RoundedCornersShape(corners: [.bottomLeft, .bottomRight], radius: cornerRadius)
| `- error: reference to member 'bottomLeft' cannot be resolved without a contextual type
79 | .path(in: rect)
80 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:78:72: error: reference to member 'bottomRight' cannot be resolved without a contextual type
76 | )
77 |
78 | let path = RoundedCornersShape(corners: [.bottomLeft, .bottomRight], radius: cornerRadius)
| `- error: reference to member 'bottomRight' cannot be resolved without a contextual type
79 | .path(in: rect)
80 |
[6/12] Compiling PianoKeyboard ModernStyle.swift
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:18:47: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
16 | }
17 |
18 | public func naturalColor(_ down: Bool) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
19 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
20 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:22:49: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
20 | }
21 |
22 | public func sharpFlatColor(_ down: Bool) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
23 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.2, green: 0.2, blue: 0.2)
24 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:26:50: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
24 | }
25 |
26 | public func labelColor(_ noteNumber: Int) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
27 | Color(hue: Double(noteNumber) / 127.0, saturation: 1, brightness: 0.6)
28 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:34:69: error: 'GeometryProxy' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
32 | }
33 |
34 | public func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> some View {
| | `- error: 'GeometryProxy' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
35 | Canvas { context, size in
36 | let width = size.width
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:34:92: error: 'View' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
32 | }
33 |
34 | public func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
35 | Canvas { context, size in
36 | let width = size.width
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:19:16: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
16 | }
17 |
18 | public func naturalColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
19 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:19:16: error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
16 | }
17 |
18 | public func naturalColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
19 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
| |- error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:19:57: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
16 | }
17 |
18 | public func naturalColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
19 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:19:57: error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
16 | }
17 |
18 | public func naturalColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
19 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
| |- error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:23:16: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
20 | }
21 |
22 | public func sharpFlatColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
23 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.2, green: 0.2, blue: 0.2)
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
24 | }
25 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:23:16: error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
20 | }
21 |
22 | public func sharpFlatColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
23 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.2, green: 0.2, blue: 0.2)
| |- error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
24 | }
25 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:23:57: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
20 | }
21 |
22 | public func sharpFlatColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
23 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.2, green: 0.2, blue: 0.2)
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
24 | }
25 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:23:57: error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
20 | }
21 |
22 | public func sharpFlatColor(_ down: Bool) -> Color {
| `- note: add @available attribute to enclosing instance method
23 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.2, green: 0.2, blue: 0.2)
| |- error: 'init(_:red:green:blue:opacity:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
24 | }
25 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:27:9: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
24 | }
25 |
26 | public func labelColor(_ noteNumber: Int) -> Color {
| `- note: add @available attribute to enclosing instance method
27 | Color(hue: Double(noteNumber) / 127.0, saturation: 1, brightness: 0.6)
| |- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
28 | }
29 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:27:9: error: 'init(hue:saturation:brightness:opacity:)' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
24 | }
25 |
26 | public func labelColor(_ noteNumber: Int) -> Color {
| `- note: add @available attribute to enclosing instance method
27 | Color(hue: Double(noteNumber) / 127.0, saturation: 1, brightness: 0.6)
| |- error: 'init(hue:saturation:brightness:opacity:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
28 | }
29 |
/Users/admin/builder/spi-builder-workspace/Source/RoundedCornersShape.swift:14:26: error: cannot find type 'UIRectCorner' in scope
12 | let radius: CGFloat
13 |
14 | public init(corners: UIRectCorner, radius: CGFloat) {
| `- error: cannot find type 'UIRectCorner' in scope
15 | self.corners = corners
16 | self.radius = radius
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:53:59: error: reference to member 'bottomLeft' cannot be resolved without a contextual type
51 | )
52 |
53 | let path = RoundedCornersShape(corners: [.bottomLeft, .bottomRight], radius: cornerRadius)
| `- error: reference to member 'bottomLeft' cannot be resolved without a contextual type
54 | .path(in: rect)
55 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:53:72: error: reference to member 'bottomRight' cannot be resolved without a contextual type
51 | )
52 |
53 | let path = RoundedCornersShape(corners: [.bottomLeft, .bottomRight], radius: cornerRadius)
| `- error: reference to member 'bottomRight' cannot be resolved without a contextual type
54 | .path(in: rect)
55 |
[7/12] Compiling PianoKeyboard Note.swift
[8/12] Compiling PianoKeyboard PianoKeyViewModel.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[9/12] Emitting module PianoKeyboard
/Users/admin/builder/spi-builder-workspace/Source/KeyboardStyle.swift:11:28: error: 'View' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public protocol KeyboardStyle {
| `- note: add @available attribute to enclosing protocol
11 | associatedtype Layout: View
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing associated type
12 |
13 | var naturalKeySpace: CGFloat { get }
/Users/admin/builder/spi-builder-workspace/Source/KeyboardStyle.swift:15:40: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public protocol KeyboardStyle {
| `- note: add @available attribute to enclosing protocol
11 | associatedtype Layout: View
12 |
13 | var naturalKeySpace: CGFloat { get }
14 | var showLabels: Bool { get }
15 | func naturalColor(_ down: Bool) -> Color
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
16 | func sharpFlatColor(_ down: Bool) -> Color
17 | func labelColor(_ noteNumber: Int) -> Color
/Users/admin/builder/spi-builder-workspace/Source/KeyboardStyle.swift:16:42: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public protocol KeyboardStyle {
| `- note: add @available attribute to enclosing protocol
11 | associatedtype Layout: View
12 |
:
14 | var showLabels: Bool { get }
15 | func naturalColor(_ down: Bool) -> Color
16 | func sharpFlatColor(_ down: Bool) -> Color
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
17 | func labelColor(_ noteNumber: Int) -> Color
18 | func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> Layout
/Users/admin/builder/spi-builder-workspace/Source/KeyboardStyle.swift:17:43: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public protocol KeyboardStyle {
| `- note: add @available attribute to enclosing protocol
11 | associatedtype Layout: View
12 |
:
15 | func naturalColor(_ down: Bool) -> Color
16 | func sharpFlatColor(_ down: Bool) -> Color
17 | func labelColor(_ noteNumber: Int) -> Color
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
18 | func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> Layout
19 | }
/Users/admin/builder/spi-builder-workspace/Source/KeyboardStyle.swift:18:62: error: 'GeometryProxy' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public protocol KeyboardStyle {
| `- note: add @available attribute to enclosing protocol
11 | associatedtype Layout: View
12 |
:
16 | func sharpFlatColor(_ down: Bool) -> Color
17 | func labelColor(_ noteNumber: Int) -> Color
18 | func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> Layout
| | `- error: 'GeometryProxy' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
19 | }
20 |
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:11:6: error: 'ObservedObject' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct PianoKeyboardView<T: KeyboardStyle>: View {
| `- note: add @available attribute to enclosing generic struct
11 | @ObservedObject private var viewModel: PianoKeyboardViewModel
| `- error: 'ObservedObject' is only available in macOS 10.15 or newer
12 | var style: T
13 |
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:22:27: error: 'View' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct PianoKeyboardView<T: KeyboardStyle>: View {
| `- note: add @available attribute to enclosing generic struct
11 | @ObservedObject private var viewModel: PianoKeyboardViewModel
12 | var style: T
:
20 | }
21 |
22 | public var body: some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing property
23 | GeometryReader { geometry in
24 | ZStack(alignment: .top) {
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:33:2: error: 'Preview(_:body:)' is only available in macOS 10.15 or newer
31 | }
32 |
33 | #Preview {
| `- error: 'Preview(_:body:)' is only available in macOS 10.15 or newer
34 | VStack {
35 | PianoKeyboardView(style: ClassicStyle())
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:34:5: error: 'VStack' is only available in macOS 10.15 or newer
32 |
33 | #Preview {
34 | VStack {
| |- error: 'VStack' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
35 | PianoKeyboardView(style: ClassicStyle())
36 | PianoKeyboardView(style: ModernStyle())
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:38:6: error: 'frame(minWidth:idealWidth:maxWidth:minHeight:idealHeight:maxHeight:alignment:)' is only available in macOS 10.15 or newer
36 | PianoKeyboardView(style: ModernStyle())
37 | }
38 | .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
| |- error: 'frame(minWidth:idealWidth:maxWidth:minHeight:idealHeight:maxHeight:alignment:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
39 | .background(.black)
40 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:38:67: error: 'top' is only available in macOS 10.15 or newer
36 | PianoKeyboardView(style: ModernStyle())
37 | }
38 | .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
| |- error: 'top' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
39 | .background(.black)
40 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:39:6: error: 'background(_:ignoresSafeAreaEdges:)' is only available in macOS 12.0 or newer
37 | }
38 | .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
39 | .background(.black)
| |- error: 'background(_:ignoresSafeAreaEdges:)' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
40 | }
41 |
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:39:18: error: 'black' is only available in macOS 10.15 or newer
37 | }
38 | .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
39 | .background(.black)
| |- error: 'black' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
40 | }
41 |
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:17:6: error: 'Published' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
| `- error: 'Published' is only available in macOS 10.15 or newer
18 | @Published public var keysPressed: [String] = []
19 | @Published public var latch = false {
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:18:6: error: 'Published' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
18 | @Published public var keysPressed: [String] = []
| `- error: 'Published' is only available in macOS 10.15 or newer
19 | @Published public var latch = false {
20 | didSet { reset() }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:19:6: error: 'Published' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
18 | @Published public var keysPressed: [String] = []
19 | @Published public var latch = false {
| `- error: 'Published' is only available in macOS 10.15 or newer
20 | didSet { reset() }
21 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:15:38: error: 'ObservableObject' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| | `- error: 'ObservableObject' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
/Users/admin/builder/spi-builder-workspace/Source/RoundedCornersShape.swift:11:18: error: cannot find type 'UIRectCorner' in scope
9 |
10 | public struct RoundedCornersShape: Shape {
11 | let corners: UIRectCorner
| `- error: cannot find type 'UIRectCorner' in scope
12 | let radius: CGFloat
13 |
/Users/admin/builder/spi-builder-workspace/Source/RoundedCornersShape.swift:14:26: error: cannot find type 'UIRectCorner' in scope
12 | let radius: CGFloat
13 |
14 | public init(corners: UIRectCorner, radius: CGFloat) {
| `- error: cannot find type 'UIRectCorner' in scope
15 | self.corners = corners
16 | self.radius = radius
/Users/admin/builder/spi-builder-workspace/Source/RoundedCornersShape.swift:19:42: error: 'Path' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct RoundedCornersShape: Shape {
| `- note: add @available attribute to enclosing struct
11 | let corners: UIRectCorner
12 | let radius: CGFloat
:
17 | }
18 |
19 | public func path(in rect: CGRect) -> Path {
| | `- error: 'Path' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
20 | let path = UIBezierPath(
21 | roundedRect: rect,
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:15:20: error: 'Font' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
13 | let sfKeyInsetMultiplier: CGFloat
14 | let cornerRadiusMultiplier: CGFloat
15 | let labelFont: Font
| `- error: 'Font' is only available in macOS 10.15 or newer
16 | let labelColor: Color
17 |
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:16:21: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
14 | let cornerRadiusMultiplier: CGFloat
15 | let labelFont: Font
16 | let labelColor: Color
| `- error: 'Color' is only available in macOS 10.15 or newer
17 |
18 | public let showLabels: Bool
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:27:20: error: 'Font' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
25 | cornerRadiusMultiplier: CGFloat = 0.008,
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
| `- error: 'Font' is only available in macOS 10.15 or newer
28 | labelColor: Color = .gray,
29 | showLabels: Bool = true
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:28:21: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
28 | labelColor: Color = .gray,
| `- error: 'Color' is only available in macOS 10.15 or newer
29 | showLabels: Bool = true
30 | ) {
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:27:28: error: 'title3' is only available in macOS 11.0 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
25 | cornerRadiusMultiplier: CGFloat = 0.008,
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
| `- error: 'title3' is only available in macOS 11.0 or newer
28 | labelColor: Color = .gray,
29 | showLabels: Bool = true
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:27:35: error: 'bold()' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
25 | cornerRadiusMultiplier: CGFloat = 0.008,
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
| `- error: 'bold()' is only available in macOS 10.15 or newer
28 | labelColor: Color = .gray,
29 | showLabels: Bool = true
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:28:30: error: 'gray' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
28 | labelColor: Color = .gray,
| `- error: 'gray' is only available in macOS 10.15 or newer
29 | showLabels: Bool = true
30 | ) {
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:41:47: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
39 | }
40 |
41 | public func naturalColor(_ down: Bool) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
42 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
43 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:45:49: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
43 | }
44 |
45 | public func sharpFlatColor(_ down: Bool) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
46 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.5, green: 0.5, blue: 0.5)
47 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:49:50: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
47 | }
48 |
49 | public func labelColor(_ noteNumber: Int) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
50 | Color(hue: Double(noteNumber) / 127.0, saturation: 1, brightness: 0.6)
51 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:57:69: error: 'GeometryProxy' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
55 | }
56 |
57 | public func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> some View {
| | `- error: 'GeometryProxy' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
58 | Canvas { context, size in
59 | let width = size.width
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:57:92: error: 'View' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
55 | }
56 |
57 | public func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
58 | Canvas { context, size in
59 | let width = size.width
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:18:47: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
16 | }
17 |
18 | public func naturalColor(_ down: Bool) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
19 | down ? Color(red: 0.6, green: 0.6, blue: 0.6) : Color(red: 0.9, green: 0.9, blue: 0.9)
20 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:22:49: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
20 | }
21 |
22 | public func sharpFlatColor(_ down: Bool) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
23 | down ? Color(red: 0.4, green: 0.4, blue: 0.4) : Color(red: 0.2, green: 0.2, blue: 0.2)
24 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:26:50: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
24 | }
25 |
26 | public func labelColor(_ noteNumber: Int) -> Color {
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
27 | Color(hue: Double(noteNumber) / 127.0, saturation: 1, brightness: 0.6)
28 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:34:69: error: 'GeometryProxy' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
32 | }
33 |
34 | public func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> some View {
| | `- error: 'GeometryProxy' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
35 | Canvas { context, size in
36 | let width = size.width
/Users/admin/builder/spi-builder-workspace/Source/Styles/ModernStyle.swift:34:92: error: 'View' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ModernStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | public let showLabels: Bool
12 | public let naturalKeySpace: CGFloat = 2
:
32 | }
33 |
34 | public func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
35 | Canvas { context, size in
36 | let width = size.width
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:13:30: error: cannot find type 'Context' in scope
11 | var viewModel: PianoKeyboardViewModel
12 |
13 | func makeUIView(context: Context) -> TouchesUIView {
| `- error: cannot find type 'Context' in scope
14 | let touchesUIView = TouchesUIView()
15 | touchesUIView.isMultipleTouchEnabled = true
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:20:57: error: cannot find type 'Context' in scope
18 | }
19 |
20 | func updateUIView(_ uiView: TouchesUIView, context: Context) {}
| `- error: cannot find type 'Context' in scope
21 |
22 | func makeCoordinator() -> Coordinator {
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:10:21: error: cannot find type 'UIViewRepresentable' in scope
8 | import SwiftUI
9 |
10 | struct TouchesView: UIViewRepresentable {
| `- error: cannot find type 'UIViewRepresentable' in scope
11 | var viewModel: PianoKeyboardViewModel
12 |
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:44:22: error: cannot find type 'UIView' in scope
42 | }
43 |
44 | class TouchesUIView: UIView {
| `- error: cannot find type 'UIView' in scope
45 | static var minNumberOfKeys: Int = 12
46 | static var maxNumberOfKeys: Int = 61
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:58:54: error: cannot find type 'UITouch' in scope
56 | }
57 |
58 | public override func touchesBegan(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UITouch' in scope
59 | for touch in touches {
60 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:58:72: error: cannot find type 'UIEvent' in scope
56 | }
57 |
58 | public override func touchesBegan(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UIEvent' in scope
59 | for touch in touches {
60 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:58:26: error: method does not override any method from its superclass
56 | }
57 |
58 | public override func touchesBegan(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: method does not override any method from its superclass
59 | for touch in touches {
60 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:65:54: error: cannot find type 'UITouch' in scope
63 | }
64 |
65 | public override func touchesMoved(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UITouch' in scope
66 | for touch in touches {
67 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:65:72: error: cannot find type 'UIEvent' in scope
63 | }
64 |
65 | public override func touchesMoved(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UIEvent' in scope
66 | for touch in touches {
67 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:65:26: error: method does not override any method from its superclass
63 | }
64 |
65 | public override func touchesMoved(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: method does not override any method from its superclass
66 | for touch in touches {
67 | currentTouches.add(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:72:54: error: cannot find type 'UITouch' in scope
70 | }
71 |
72 | public override func touchesEnded(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UITouch' in scope
73 | for touch in touches {
74 | currentTouches.remove(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:72:72: error: cannot find type 'UIEvent' in scope
70 | }
71 |
72 | public override func touchesEnded(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: cannot find type 'UIEvent' in scope
73 | for touch in touches {
74 | currentTouches.remove(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:72:26: error: method does not override any method from its superclass
70 | }
71 |
72 | public override func touchesEnded(_ touches: Set<UITouch>, with _: UIEvent?) {
| `- error: method does not override any method from its superclass
73 | for touch in touches {
74 | currentTouches.remove(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:79:58: error: cannot find type 'UITouch' in scope
77 | }
78 |
79 | public override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
| `- error: cannot find type 'UITouch' in scope
80 | for touch in touches {
81 | currentTouches.remove(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:79:80: error: cannot find type 'UIEvent' in scope
77 | }
78 |
79 | public override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
| `- error: cannot find type 'UIEvent' in scope
80 | for touch in touches {
81 | currentTouches.remove(touch)
/Users/admin/builder/spi-builder-workspace/Source/TouchesView.swift:79:26: error: method does not override any method from its superclass
77 | }
78 |
79 | public override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
| `- error: method does not override any method from its superclass
80 | for touch in touches {
81 | currentTouches.remove(touch)
[10/12] Compiling PianoKeyboard PianoKeyboardView.swift
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:11:6: error: 'ObservedObject' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct PianoKeyboardView<T: KeyboardStyle>: View {
| `- note: add @available attribute to enclosing generic struct
11 | @ObservedObject private var viewModel: PianoKeyboardViewModel
| `- error: 'ObservedObject' is only available in macOS 10.15 or newer
12 | var style: T
13 |
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:22:27: error: 'View' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct PianoKeyboardView<T: KeyboardStyle>: View {
| `- note: add @available attribute to enclosing generic struct
11 | @ObservedObject private var viewModel: PianoKeyboardViewModel
12 | var style: T
:
20 | }
21 |
22 | public var body: some View {
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing property
23 | GeometryReader { geometry in
24 | ZStack(alignment: .top) {
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:33:2: error: 'Preview(_:body:)' is only available in macOS 10.15 or newer
31 | }
32 |
33 | #Preview {
| `- error: 'Preview(_:body:)' is only available in macOS 10.15 or newer
34 | VStack {
35 | PianoKeyboardView(style: ClassicStyle())
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:34:5: error: 'VStack' is only available in macOS 10.15 or newer
32 |
33 | #Preview {
34 | VStack {
| |- error: 'VStack' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
35 | PianoKeyboardView(style: ClassicStyle())
36 | PianoKeyboardView(style: ModernStyle())
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:38:6: error: 'frame(minWidth:idealWidth:maxWidth:minHeight:idealHeight:maxHeight:alignment:)' is only available in macOS 10.15 or newer
36 | PianoKeyboardView(style: ModernStyle())
37 | }
38 | .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
| |- error: 'frame(minWidth:idealWidth:maxWidth:minHeight:idealHeight:maxHeight:alignment:)' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
39 | .background(.black)
40 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:38:67: error: 'top' is only available in macOS 10.15 or newer
36 | PianoKeyboardView(style: ModernStyle())
37 | }
38 | .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
| |- error: 'top' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
39 | .background(.black)
40 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:39:6: error: 'background(_:ignoresSafeAreaEdges:)' is only available in macOS 12.0 or newer
37 | }
38 | .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
39 | .background(.black)
| |- error: 'background(_:ignoresSafeAreaEdges:)' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
40 | }
41 |
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:39:18: error: 'black' is only available in macOS 10.15 or newer
37 | }
38 | .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
39 | .background(.black)
| |- error: 'black' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
40 | }
41 |
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:18:9: error: setter for 'viewModel' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct PianoKeyboardView<T: KeyboardStyle>: View {
| `- note: add @available attribute to enclosing generic struct
11 | @ObservedObject private var viewModel: PianoKeyboardViewModel
12 | var style: T
13 |
14 | public init(
| `- note: add @available attribute to enclosing initializer
15 | viewModel: PianoKeyboardViewModel = PianoKeyboardViewModel(),
16 | style: T
17 | ) {
18 | self.viewModel = viewModel
| |- error: setter for 'viewModel' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
19 | self.style = style
20 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:23:9: error: 'GeometryReader' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct PianoKeyboardView<T: KeyboardStyle>: View {
| `- note: add @available attribute to enclosing generic struct
11 | @ObservedObject private var viewModel: PianoKeyboardViewModel
12 | var style: T
:
20 | }
21 |
22 | public var body: some View {
| `- note: add @available attribute to enclosing property
23 | GeometryReader { geometry in
| |- error: 'GeometryReader' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
24 | ZStack(alignment: .top) {
25 | style.layout(viewModel: viewModel, geometry: geometry)
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:24:13: error: 'ZStack' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct PianoKeyboardView<T: KeyboardStyle>: View {
| `- note: add @available attribute to enclosing generic struct
11 | @ObservedObject private var viewModel: PianoKeyboardViewModel
12 | var style: T
:
20 | }
21 |
22 | public var body: some View {
| `- note: add @available attribute to enclosing property
23 | GeometryReader { geometry in
24 | ZStack(alignment: .top) {
| |- error: 'ZStack' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
25 | style.layout(viewModel: viewModel, geometry: geometry)
26 | TouchesView(viewModel: viewModel)
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:24:32: error: 'top' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct PianoKeyboardView<T: KeyboardStyle>: View {
| `- note: add @available attribute to enclosing generic struct
11 | @ObservedObject private var viewModel: PianoKeyboardViewModel
12 | var style: T
:
20 | }
21 |
22 | public var body: some View {
| `- note: add @available attribute to enclosing property
23 | GeometryReader { geometry in
24 | ZStack(alignment: .top) {
| |- error: 'top' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
25 | style.layout(viewModel: viewModel, geometry: geometry)
26 | TouchesView(viewModel: viewModel)
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:26:17: error: 'buildExpression' is unavailable: this expression does not conform to 'View'
24 | ZStack(alignment: .top) {
25 | style.layout(viewModel: viewModel, geometry: geometry)
26 | TouchesView(viewModel: viewModel)
| `- error: 'buildExpression' is unavailable: this expression does not conform to 'View'
27 | }
28 | .background(.black)
SwiftUICore.ViewBuilder:5:24: note: 'buildExpression' has been explicitly marked unavailable here
3 | public static func buildExpression<Content>(_ content: Content) -> Content where Content : View
4 | @available(*, unavailable, message: "this expression does not conform to 'View'")
5 | public static func buildExpression(_ invalid: Any) -> some View
| `- note: 'buildExpression' has been explicitly marked unavailable here
6 |
7 | public static func buildBlock() -> EmptyView
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:28:14: error: 'background(_:ignoresSafeAreaEdges:)' is only available in macOS 12.0 or newer
8 | import SwiftUI
9 |
10 | public struct PianoKeyboardView<T: KeyboardStyle>: View {
| `- note: add @available attribute to enclosing generic struct
11 | @ObservedObject private var viewModel: PianoKeyboardViewModel
12 | var style: T
:
20 | }
21 |
22 | public var body: some View {
| `- note: add @available attribute to enclosing property
23 | GeometryReader { geometry in
24 | ZStack(alignment: .top) {
:
26 | TouchesView(viewModel: viewModel)
27 | }
28 | .background(.black)
| |- error: 'background(_:ignoresSafeAreaEdges:)' is only available in macOS 12.0 or newer
| `- note: add 'if #available' version check
29 | }
30 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardView.swift:28:26: error: 'black' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct PianoKeyboardView<T: KeyboardStyle>: View {
| `- note: add @available attribute to enclosing generic struct
11 | @ObservedObject private var viewModel: PianoKeyboardViewModel
12 | var style: T
:
20 | }
21 |
22 | public var body: some View {
| `- note: add @available attribute to enclosing property
23 | GeometryReader { geometry in
24 | ZStack(alignment: .top) {
:
26 | TouchesView(viewModel: viewModel)
27 | }
28 | .background(.black)
| |- error: 'black' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
29 | }
30 | }
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:27:28: error: 'title3' is only available in macOS 11.0 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
25 | cornerRadiusMultiplier: CGFloat = 0.008,
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
| `- error: 'title3' is only available in macOS 11.0 or newer
28 | labelColor: Color = .gray,
29 | showLabels: Bool = true
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:27:35: error: 'bold()' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
25 | cornerRadiusMultiplier: CGFloat = 0.008,
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
| `- error: 'bold()' is only available in macOS 10.15 or newer
28 | labelColor: Color = .gray,
29 | showLabels: Bool = true
/Users/admin/builder/spi-builder-workspace/Source/Styles/ClassicStyle.swift:28:30: error: 'gray' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public struct ClassicStyle: KeyboardStyle {
| `- note: add @available attribute to enclosing struct
11 | let sfKeyWidthMultiplier: CGFloat
12 | let sfKeyHeightMultiplier: CGFloat
:
19 | public let naturalKeySpace: CGFloat
20 |
21 | public init(
| `- note: add @available attribute to enclosing initializer
22 | sfKeyWidthMultiplier: CGFloat = 0.65,
23 | sfKeyHeightMultiplier: CGFloat = 0.60,
:
26 | naturalKeySpace: CGFloat = 3,
27 | labelFont: Font = .title3.bold(),
28 | labelColor: Color = .gray,
| `- error: 'gray' is only available in macOS 10.15 or newer
29 | showLabels: Bool = true
30 | ) {
[11/12] Compiling PianoKeyboard PianoKeyboardViewModel.swift
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:17:6: error: 'Published' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
| `- error: 'Published' is only available in macOS 10.15 or newer
18 | @Published public var keysPressed: [String] = []
19 | @Published public var latch = false {
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:18:6: error: 'Published' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
18 | @Published public var keysPressed: [String] = []
| `- error: 'Published' is only available in macOS 10.15 or newer
19 | @Published public var latch = false {
20 | didSet { reset() }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:19:6: error: 'Published' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
18 | @Published public var keysPressed: [String] = []
19 | @Published public var latch = false {
| `- error: 'Published' is only available in macOS 10.15 or newer
20 | didSet { reset() }
21 | }
<unknown>:0: error: cannot convert value of type 'KeyPath<PianoKeyboardViewModel, [PianoKeyViewModel]>' to expected argument type 'ReferenceWritableKeyPath<PianoKeyboardViewModel, [PianoKeyViewModel]>'
<unknown>:0: error: cannot convert value of type 'KeyPath<PianoKeyboardViewModel, [String]>' to expected argument type 'ReferenceWritableKeyPath<PianoKeyboardViewModel, [String]>'
<unknown>:0: error: cannot convert value of type 'KeyPath<PianoKeyboardViewModel, Bool>' to expected argument type 'ReferenceWritableKeyPath<PianoKeyboardViewModel, Bool>'
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:15:38: error: 'ObservableObject' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| | `- error: 'ObservableObject' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:47:9: error: setter for 'keys' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
44 | }
45 |
46 | private func configureKeys() {
| `- note: add @available attribute to enclosing instance method
47 | keys = Array(repeating: PianoKeyViewModel(keyIndex: 0, noteOffset: noteOffset), count: numberOfKeys)
| |- error: setter for 'keys' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
48 | keyRects = Array(repeating: .zero, count: numberOfKeys)
49 |
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:51:13: error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
44 | }
45 |
46 | private func configureKeys() {
| `- note: add @available attribute to enclosing instance method
47 | keys = Array(repeating: PianoKeyViewModel(keyIndex: 0, noteOffset: noteOffset), count: numberOfKeys)
48 | keyRects = Array(repeating: .zero, count: numberOfKeys)
49 |
50 | for i in 0..<numberOfKeys {
51 | keys[i] = PianoKeyViewModel(keyIndex: i, noteOffset: noteOffset)
| |- error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
52 | }
53 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:73:29: error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
53 | }
54 |
55 | private func updateKeys() {
| `- note: add @available attribute to enclosing instance method
56 | var keyDownAt = Array(repeating: false, count: numberOfKeys)
57 |
:
71 | if keyLatched {
72 | keyUp(noteNumber)
73 | keys[index].latched = false
| |- error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
74 | keys[index].touchDown = false
75 | } else {
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:74:29: error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
53 | }
54 |
55 | private func updateKeys() {
| `- note: add @available attribute to enclosing instance method
56 | var keyDownAt = Array(repeating: false, count: numberOfKeys)
57 |
:
72 | keyUp(noteNumber)
73 | keys[index].latched = false
74 | keys[index].touchDown = false
| |- error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
75 | } else {
76 | keyDown(noteNumber)
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:77:29: error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
53 | }
54 |
55 | private func updateKeys() {
| `- note: add @available attribute to enclosing instance method
56 | var keyDownAt = Array(repeating: false, count: numberOfKeys)
57 |
:
75 | } else {
76 | keyDown(noteNumber)
77 | keys[index].latched = true
| |- error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
78 | keys[index].touchDown = true
79 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:78:29: error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
53 | }
54 |
55 | private func updateKeys() {
| `- note: add @available attribute to enclosing instance method
56 | var keyDownAt = Array(repeating: false, count: numberOfKeys)
57 |
:
76 | keyDown(noteNumber)
77 | keys[index].latched = true
78 | keys[index].touchDown = true
| |- error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
79 | }
80 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:88:21: error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
53 | }
54 |
55 | private func updateKeys() {
| `- note: add @available attribute to enclosing instance method
56 | var keyDownAt = Array(repeating: false, count: numberOfKeys)
57 |
:
86 | keyUp(noteNumber)
87 | }
88 | keys[index].touchDown = keyDownAt[index]
| |- error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
89 | }
90 | } else {
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:93:21: error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
53 | }
54 |
55 | private func updateKeys() {
| `- note: add @available attribute to enclosing instance method
56 | var keyDownAt = Array(repeating: false, count: numberOfKeys)
57 |
:
91 | if keys[index].touchDown && keyDownAt[index] && keys[index].latched {
92 | keyUp(noteNumber)
93 | keys[index].latched = false
| |- error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
94 | keys[index].touchDown = false
95 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:94:21: error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
53 | }
54 |
55 | private func updateKeys() {
| `- note: add @available attribute to enclosing instance method
56 | var keyDownAt = Array(repeating: false, count: numberOfKeys)
57 |
:
92 | keyUp(noteNumber)
93 | keys[index].latched = false
94 | keys[index].touchDown = false
| |- error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
95 | }
96 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:101:9: error: cannot pass as inout because setter for 'keysPressed' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
98 | }
99 |
100 | private func keyDown(_ number: Int) {
| `- note: add @available attribute to enclosing instance method
101 | keysPressed.append(Note.name(for: number))
| |- error: cannot pass as inout because setter for 'keysPressed' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
102 | delegate?.pianoKeyDown(number)
103 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:110:9: error: cannot pass as inout because setter for 'keysPressed' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
103 | }
104 |
105 | private func keyUp(_ number: Int) {
| `- note: add @available attribute to enclosing instance method
106 | let note = Note.name(for: number)
107 | guard let index = keysPressed.firstIndex(of: note) else {
108 | return
109 | }
110 | keysPressed.remove(at: index)
| |- error: cannot pass as inout because setter for 'keysPressed' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
111 | delegate?.pianoKeyUp(number)
112 | }
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:129:13: error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
125 | }
126 |
127 | private func reset() {
| `- note: add @available attribute to enclosing instance method
128 | for i in 0..<numberOfKeys {
129 | keys[i].touchDown = false
| |- error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
130 | keys[i].latched = false
131 | keyUp(keys[i].noteNumber)
/Users/admin/builder/spi-builder-workspace/Source/PianoKeyboardViewModel.swift:130:13: error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
13 | }
14 |
15 | public class PianoKeyboardViewModel: ObservableObject {
| `- note: add @available attribute to enclosing class
16 |
17 | @Published public var keys: [PianoKeyViewModel] = []
:
125 | }
126 |
127 | private func reset() {
| `- note: add @available attribute to enclosing instance method
128 | for i in 0..<numberOfKeys {
129 | keys[i].touchDown = false
130 | keys[i].latched = false
| |- error: cannot pass as inout because setter for 'keys' is only available in macOS 10.15 or newer
| `- note: add 'if #available' version check
131 | keyUp(keys[i].noteNumber)
132 | }
[12/12] Compiling PianoKeyboard KeyboardStyle.swift
/Users/admin/builder/spi-builder-workspace/Source/KeyboardStyle.swift:11:28: error: 'View' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public protocol KeyboardStyle {
| `- note: add @available attribute to enclosing protocol
11 | associatedtype Layout: View
| | `- error: 'View' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing associated type
12 |
13 | var naturalKeySpace: CGFloat { get }
/Users/admin/builder/spi-builder-workspace/Source/KeyboardStyle.swift:15:40: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public protocol KeyboardStyle {
| `- note: add @available attribute to enclosing protocol
11 | associatedtype Layout: View
12 |
13 | var naturalKeySpace: CGFloat { get }
14 | var showLabels: Bool { get }
15 | func naturalColor(_ down: Bool) -> Color
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
16 | func sharpFlatColor(_ down: Bool) -> Color
17 | func labelColor(_ noteNumber: Int) -> Color
/Users/admin/builder/spi-builder-workspace/Source/KeyboardStyle.swift:16:42: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public protocol KeyboardStyle {
| `- note: add @available attribute to enclosing protocol
11 | associatedtype Layout: View
12 |
:
14 | var showLabels: Bool { get }
15 | func naturalColor(_ down: Bool) -> Color
16 | func sharpFlatColor(_ down: Bool) -> Color
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
17 | func labelColor(_ noteNumber: Int) -> Color
18 | func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> Layout
/Users/admin/builder/spi-builder-workspace/Source/KeyboardStyle.swift:17:43: error: 'Color' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public protocol KeyboardStyle {
| `- note: add @available attribute to enclosing protocol
11 | associatedtype Layout: View
12 |
:
15 | func naturalColor(_ down: Bool) -> Color
16 | func sharpFlatColor(_ down: Bool) -> Color
17 | func labelColor(_ noteNumber: Int) -> Color
| | `- error: 'Color' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
18 | func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> Layout
19 | }
/Users/admin/builder/spi-builder-workspace/Source/KeyboardStyle.swift:18:62: error: 'GeometryProxy' is only available in macOS 10.15 or newer
8 | import SwiftUI
9 |
10 | public protocol KeyboardStyle {
| `- note: add @available attribute to enclosing protocol
11 | associatedtype Layout: View
12 |
:
16 | func sharpFlatColor(_ down: Bool) -> Color
17 | func labelColor(_ noteNumber: Int) -> Color
18 | func layout(viewModel: PianoKeyboardViewModel, geometry: GeometryProxy) -> Layout
| | `- error: 'GeometryProxy' is only available in macOS 10.15 or newer
| `- note: add @available attribute to enclosing instance method
19 | }
20 |
BUILD FAILURE 6.0 macosSpm