Build Information
Failed to build RealityUI, reference main (b359cb), with Swift 6.4 for tvOS using Xcode 27.0 on 20 Sep 2026 00:28:53 UTC.
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun xcodebuild -IDEClonedSourcePackagesDirPathOverride=$PWD/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath $PWD/.derivedData build -scheme RealityUI -destination generic/platform=tvOSBuild Log
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
225 | var onColor: Material.Color { self.switchness.onColor }
226 | /// Color of the inner capsule when the switch is set to on. Default `Material.Color.lightGray`
227 | var offColor: Material.Color { self.switchness.offColor }
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
228 | internal var togglePos: SIMD3<Float> {
229 | [(isOn ? -1 : 1) * self.toggleXSpan, 0, 0]
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:232:29: error: 'Material' is only available in tvOS 26.0 or newer
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
230 | }
231 | fileprivate var toggleXSpan: Float { (self.switchness.length - 1) / 2 }
232 | private var thumbColor: Material.Color {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
233 | self.switchness.thumbColor
234 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:236:64: error: 'ModelEntity' is only available in tvOS 26.0 or newer
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
234 | }
235 |
236 | fileprivate func getModel(part: SwitchComponent.UIPart) -> ModelEntity? {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
237 | return (self as HasRUI).getModel(part: part.rawValue)
238 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:239:60: error: 'ModelEntity' is only available in tvOS 26.0 or newer
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
237 | return (self as HasRUI).getModel(part: part.rawValue)
238 | }
239 | private func addModel(part: SwitchComponent.UIPart) -> ModelEntity {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
240 | return (self as HasRUI).addModel(part: part.rawValue)
241 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:289:11: error: 'Material' is only available in tvOS 26.0 or newer
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
285 | }
286 |
287 | internal func getMaterials(
| `- note: add '@available' attribute to enclosing instance method
288 | for part: SwitchComponent.UIPart
289 | ) -> [Material] {
| `- error: 'Material' is only available in tvOS 26.0 or newer
290 | switch part {
291 | case .background: [self.getMaterial(with: self.isOn ? switchness.onColor : switchness.offColor)]
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:25:38: error: 'scale' is only available in tvOS 26.0 or newer
20 |
21 | /// A RealityUI Switch to be added to a RealityKit scene.
22 | public class RUISwitch: Entity, HasSwitch {
| `- note: add '@available' attribute to enclosing class
23 | var thumbCompressed = false
24 | func compressThumb() {
| `- note: add '@available' attribute to enclosing instance method
25 | self.getModel(part: .thumb)?.scale = .one * 0.95
| |- error: 'scale' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
26 | thumbCompressed = true
27 | }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift (in target 'RealityUI' from project 'RealityUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile RUIStepper.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift (in target 'RealityUI' from project 'RealityUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile RUISwitch.swift
SwiftCompile normal arm64 Compiling\ RUITapComponent.swift,\ RUIText.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITapComponent.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift (in target 'RealityUI' from project 'RealityUI')
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITapComponent.swift:13:35: error: 'HasCollision' is only available in tvOS 26.0 or newer
11 | /// An interface used for entities which have actions upon being clicked
12 | @available(*, deprecated, message: "Please use RUITapComponent instead.")
13 | public protocol HasClick: HasRUI, HasCollision {
| | `- error: 'HasCollision' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing protocol
14 | /// Action to be applied on successfully tapping an Entity.
15 | var tapAction: ((HasClick, SIMD3<Float>?) -> Void)? {get set}
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITapComponent.swift:43:26: error: 'Entity' is only available in tvOS 26.0 or newer
35 | /// })
36 | /// ```
37 | public struct RUITapComponent: Component {
| `- note: add '@available' attribute to enclosing struct
38 | /// The action to be triggered when the entity is tapped.
39 | ///
:
41 | /// - Entity: The entity that was tapped.
42 | /// - SIMD3<Float>?: The world position where the entity was tapped, or `nil` if not available.
43 | public var action: ((Entity, SIMD3<Float>?) -> Void)
| `- error: 'Entity' is only available in tvOS 26.0 or newer
44 |
45 | /// Create a new TapActionComponent object.
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITapComponent.swift:47:37: error: 'Entity' is only available in tvOS 26.0 or newer
35 | /// })
36 | /// ```
37 | public struct RUITapComponent: Component {
| `- note: add '@available' attribute to enclosing struct
38 | /// The action to be triggered when the entity is tapped.
39 | ///
:
45 | /// Create a new TapActionComponent object.
46 | /// - Parameter action: The action to be triggered when the entity is tapped.
47 | public init(action: @escaping ((Entity, SIMD3<Float>?) -> Void)) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing initializer
48 | self.action = action
49 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:29:15: error: 'MeshResource' is only available in tvOS 26.0 or newer
16 |
17 | /// A RealityUI Text object to be added to a RealityKit scene.
18 | open class RUIText: Entity, HasText {
| `- note: add '@available' attribute to enclosing class
19 | /// Create a new RUIText object, adding text to your RealityKit scene.
20 | /// - Parameters:
:
25 | /// - extrusion: The extent, in meters, of the extruded text in the z-axis direction.
26 | /// - color: The color applied to the text mesh's material.
27 | public convenience init(
| `- note: add '@available' attribute to enclosing initializer
28 | with text: String, width: CGFloat = 0, height: CGFloat = 0,
29 | font: MeshResource.Font = RUIText.mediumFont, extrusion: Float = 0.1,
| `- error: 'MeshResource' is only available in tvOS 26.0 or newer
30 | color: Material.Color = .green
31 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:30:16: error: 'Material' is only available in tvOS 26.0 or newer
16 |
17 | /// A RealityUI Text object to be added to a RealityKit scene.
18 | open class RUIText: Entity, HasText {
| `- note: add '@available' attribute to enclosing class
19 | /// Create a new RUIText object, adding text to your RealityKit scene.
20 | /// - Parameters:
:
25 | /// - extrusion: The extent, in meters, of the extruded text in the z-axis direction.
26 | /// - color: The color applied to the text mesh's material.
27 | public convenience init(
| `- note: add '@available' attribute to enclosing initializer
28 | with text: String, width: CGFloat = 0, height: CGFloat = 0,
29 | font: MeshResource.Font = RUIText.mediumFont, extrusion: Float = 0.1,
30 | color: Material.Color = .green
| `- error: 'Material' is only available in tvOS 26.0 or newer
31 | ) {
32 | let textComponent = TextComponent(
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:29:43: error: type 'RUIText' has no member 'mediumFont'
27 | public convenience init(
28 | with text: String, width: CGFloat = 0, height: CGFloat = 0,
29 | font: MeshResource.Font = RUIText.mediumFont, extrusion: Float = 0.1,
| `- error: type 'RUIText' has no member 'mediumFont'
30 | color: Material.Color = .green
31 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:47:22: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A RealityUI Text object to be added to a RealityKit scene.
18 | open class RUIText: Entity, HasText {
| `- note: add '@available' attribute to enclosing class
19 | /// Create a new RUIText object, adding text to your RealityKit scene.
20 | /// - Parameters:
:
43 | /// - rui: Details about the RealityUI Entity.
44 | /// - tapAction: callback function to receive updates touchUpInside the RealityUI Text.
45 | required public init(
| `- note: add '@available' attribute to enclosing initializer
46 | textComponent: TextComponent? = nil, rui: RUIComponent? = nil,
47 | tapAction: ((Entity, SIMD3<Float>?) -> Void)? = nil
| `- error: 'Entity' is only available in tvOS 26.0 or newer
48 | ) {
49 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:18:21: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A RealityUI Text object to be added to a RealityKit scene.
18 | open class RUIText: Entity, HasText {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing class
19 | /// Create a new RUIText object, adding text to your RealityKit scene.
20 | /// - Parameters:
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:76:22: error: 'MeshResource' is only available in tvOS 26.0 or newer
70 |
71 | /// Component containing all the data for the text to be rendered.
72 | public struct TextComponent: Component {
| `- note: add '@available' attribute to enclosing struct
73 | /// The text to render.
74 | public var text: String?
75 | /// The font to use.
76 | public var font: MeshResource.Font = .systemFont(ofSize: 0.1)
| `- error: 'MeshResource' is only available in tvOS 26.0 or newer
77 | /// The maximum width, in meters, of the text frame in the local coordinate system.
78 | /// Set to `0` (default) for unbounded.
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:112:36: error: 'MeshResource' is only available in tvOS 26.0 or newer
70 |
71 | /// Component containing all the data for the text to be rendered.
72 | public struct TextComponent: Component {
| `- note: add '@available' attribute to enclosing struct
73 | /// The text to render.
74 | public var text: String?
:
109 | /// - extrusion: The extent, in meters, of the extruded text in the z-axis direction.
110 | /// - lineBreakMode: How the text should wrap when reaching a frame boundary.
111 | public init(
| `- note: add '@available' attribute to enclosing initializer
112 | text: String? = nil, font: MeshResource.Font? = nil,
| `- error: 'MeshResource' is only available in tvOS 26.0 or newer
113 | width: CGFloat? = nil, height: CGFloat? = nil, color: Material.Color? = nil,
114 | alignment: CTTextAlignment? = nil, extrusion: Float? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:113:63: error: 'Material' is only available in tvOS 26.0 or newer
70 |
71 | /// Component containing all the data for the text to be rendered.
72 | public struct TextComponent: Component {
| `- note: add '@available' attribute to enclosing struct
73 | /// The text to render.
74 | public var text: String?
:
109 | /// - extrusion: The extent, in meters, of the extruded text in the z-axis direction.
110 | /// - lineBreakMode: How the text should wrap when reaching a frame boundary.
111 | public init(
| `- note: add '@available' attribute to enclosing initializer
112 | text: String? = nil, font: MeshResource.Font? = nil,
113 | width: CGFloat? = nil, height: CGFloat? = nil, color: Material.Color? = nil,
| `- error: 'Material' is only available in tvOS 26.0 or newer
114 | alignment: CTTextAlignment? = nil, extrusion: Float? = nil,
115 | lineBreakMode: CTLineBreakMode? = nil
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:149:29: error: 'ModelComponent' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
147 |
148 | /// ModelComponent containig the visual text
149 | internal var textModel: ModelComponent? {
| | `- error: 'ModelComponent' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
150 | get { self.getModel(part: .textEntity)?.model }
151 | set { self.addModel(part: .textEntity).model = newValue }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:155:15: error: 'MeshResource' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
153 |
154 | /// The font to use.
155 | var font: MeshResource.Font {
| | `- error: 'MeshResource' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
156 | self.textComponent.font
157 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:159:16: error: 'Material' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
157 | }
158 | /// The color of the text material.
159 | var color: Material.Color {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
160 | self.textComponent.color
161 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:163:58: error: 'ModelEntity' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
161 | }
162 |
163 | private func getModel(part: TextComponent.UIPart) -> ModelEntity? {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
164 | return (self as HasRUI).getModel(part: part.rawValue)
165 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:167:59: error: 'ModelEntity' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
165 | }
166 |
167 | internal func addModel(part: TextComponent.UIPart) -> ModelEntity {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
168 | self.addModel(part: part.rawValue)
169 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:173:11: error: 'Material' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
169 | }
170 |
171 | internal func getMaterials(
| `- note: add '@available' attribute to enclosing instance method
172 | for part: TextComponent.UIPart
173 | ) -> [Material] {
| `- error: 'Material' is only available in tvOS 26.0 or newer
174 | switch part {
175 | case .textEntity: [self.getMaterial(with: self.textComponent.color)]
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:61:14: error: 'look(at:from:upVector:relativeTo:)' is only available in tvOS 26.0 or newer
16 |
17 | /// A RealityUI Text object to be added to a RealityKit scene.
18 | open class RUIText: Entity, HasText {
| `- note: add '@available' attribute to enclosing class
19 | /// Create a new RUIText object, adding text to your RealityKit scene.
20 | /// - Parameters:
:
57 | }
58 |
59 | internal func makeModels() {
| `- note: add '@available' attribute to enclosing instance method
60 | self.addModel(part: .textEntity)
61 | .look(at: [0, 0, 1], from: .zero, upVector: [0, 1, 0], relativeTo: self)
| |- error: 'look(at:from:upVector:relativeTo:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
62 | self.setText(self.text)
63 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:121:37: error: value of type 'TextComponent' has no member 'color'
119 | if let width = width { self.width = width }
120 | if let height = height { self.height = height }
121 | if let color = color { self.color = color }
| `- error: value of type 'TextComponent' has no member 'color'
122 | if let alignment = alignment { self.alignment = alignment }
123 | if let extrusion = extrusion { self.extrusion = extrusion }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:136:15: error: 'subscript(_:)' is only available in tvOS 27.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
| `- note: add '@available' attribute to enclosing property
136 | get { self.components[TextComponent.self] ?? TextComponent() }
| |- error: 'subscript(_:)' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
137 | set { self.components[TextComponent.self] = newValue }
138 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:150:49: error: 'model' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
147 |
148 | /// ModelComponent containig the visual text
149 | internal var textModel: ModelComponent? {
| `- note: add '@available' attribute to enclosing property
150 | get { self.getModel(part: .textEntity)?.model }
| |- error: 'model' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
151 | set { self.addModel(part: .textEntity).model = newValue }
152 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:151:48: error: 'model' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
147 |
148 | /// ModelComponent containig the visual text
149 | internal var textModel: ModelComponent? {
| `- note: add '@available' attribute to enclosing property
150 | get { self.getModel(part: .textEntity)?.model }
151 | set { self.addModel(part: .textEntity).model = newValue }
| |- error: 'model' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
152 | }
153 |
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:160:28: error: value of type 'TextComponent' has no member 'color'
158 | /// The color of the text material.
159 | var color: Material.Color {
160 | self.textComponent.color
| `- error: value of type 'TextComponent' has no member 'color'
161 | }
162 |
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:175:70: error: value of type 'TextComponent' has no member 'color'
173 | ) -> [Material] {
174 | switch part {
175 | case .textEntity: [self.getMaterial(with: self.textComponent.color)]
| `- error: value of type 'TextComponent' has no member 'color'
176 | }
177 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:181:43: error: 'model' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
178 |
179 | /// Update materials for all models in this RUIEntity
180 | func updateMaterials() {
| `- note: add '@available' attribute to enclosing instance method
181 | self.getModel(part: .textEntity)?.model?.materials = self.getMaterials(for: .textEntity)
| |- error: 'model' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
182 | }
183 |
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:188:47: error: 'model' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
184 | /// Change the text currently presented on the HasText Entity
185 | /// - Parameter text: New text to be rendered.
186 | internal func setText(_ text: String?) {
| `- note: add '@available' attribute to enclosing instance method
187 | guard let text = text else {
188 | self.getModel(part: .textEntity)?.model = nil
| |- error: 'model' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
189 | return
190 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:191:24: error: 'MeshResource' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
184 | /// Change the text currently presented on the HasText Entity
185 | /// - Parameter text: New text to be rendered.
186 | internal func setText(_ text: String?) {
| `- note: add '@available' attribute to enclosing instance method
187 | guard let text = text else {
188 | self.getModel(part: .textEntity)?.model = nil
189 | return
190 | }
191 | let textMesh = MeshResource.generateText(
| |- error: 'MeshResource' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
192 | text,
193 | extrusionDepth: self.textComponent.extrusion,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:191:37: error: 'generateText(_:extrusionDepth:font:containerFrame:alignment:lineBreakMode:)' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
184 | /// Change the text currently presented on the HasText Entity
185 | /// - Parameter text: New text to be rendered.
186 | internal func setText(_ text: String?) {
| `- note: add '@available' attribute to enclosing instance method
187 | guard let text = text else {
188 | self.getModel(part: .textEntity)?.model = nil
189 | return
190 | }
191 | let textMesh = MeshResource.generateText(
| |- error: 'generateText(_:extrusionDepth:font:containerFrame:alignment:lineBreakMode:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
192 | text,
193 | extrusionDepth: self.textComponent.extrusion,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:204:66: error: value of type 'TextComponent' has no member 'color'
202 | self.textModel = ModelComponent(
203 | mesh: textMesh,
204 | materials: [SimpleMaterial(color: self.textComponent.color, isMetallic: false)]
| `- error: value of type 'TextComponent' has no member 'color'
205 | )
206 | self.getModel(part: .textEntity)?.model = self.textModel
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:206:43: error: 'model' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
184 | /// Change the text currently presented on the HasText Entity
185 | /// - Parameter text: New text to be rendered.
186 | internal func setText(_ text: String?) {
| `- note: add '@available' attribute to enclosing instance method
187 | guard let text = text else {
188 | self.getModel(part: .textEntity)?.model = nil
:
204 | materials: [SimpleMaterial(color: self.textComponent.color, isMetallic: false)]
205 | )
206 | self.getModel(part: .textEntity)?.model = self.textModel
| |- error: 'model' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
207 | guard let textModel = self.textModel else {
208 | return
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:211:49: error: 'center' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
184 | /// Change the text currently presented on the HasText Entity
185 | /// - Parameter text: New text to be rendered.
186 | internal func setText(_ text: String?) {
| `- note: add '@available' attribute to enclosing instance method
187 | guard let text = text else {
188 | self.getModel(part: .textEntity)?.model = nil
:
209 | }
210 | // let textSize = textModel.mesh.bounds.extents
211 | let textOffset = -textModel.mesh.bounds.center
| |- error: 'center' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
212 | self.getModel(part: .textEntity)?.position = [
213 | -textOffset.x,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:212:43: error: 'position' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
184 | /// Change the text currently presented on the HasText Entity
185 | /// - Parameter text: New text to be rendered.
186 | internal func setText(_ text: String?) {
| `- note: add '@available' attribute to enclosing instance method
187 | guard let text = text else {
188 | self.getModel(part: .textEntity)?.model = nil
:
210 | // let textSize = textModel.mesh.bounds.extents
211 | let textOffset = -textModel.mesh.bounds.center
212 | self.getModel(part: .textEntity)?.position = [
| |- error: 'position' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
213 | -textOffset.x,
214 | textOffset.y,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:219:30: error: 'visualBounds(recursive:relativeTo:excludeInactive:)' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
216 | ]
217 | }
218 | func addCollision() {
| `- note: add '@available' attribute to enclosing instance method
219 | let visbounds = self.visualBounds(relativeTo: nil)
| |- error: 'visualBounds(recursive:relativeTo:excludeInactive:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
220 | self.components.set(CollisionComponent(
221 | shapes: [ShapeResource.generateBox(size: visbounds.extents)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:220:29: error: 'CollisionComponent' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
216 | ]
217 | }
218 | func addCollision() {
| `- note: add '@available' attribute to enclosing instance method
219 | let visbounds = self.visualBounds(relativeTo: nil)
220 | self.components.set(CollisionComponent(
| |- error: 'CollisionComponent' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
221 | shapes: [ShapeResource.generateBox(size: visbounds.extents)
222 | .offsetBy(translation: visbounds.center)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:221:22: error: 'ShapeResource' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
216 | ]
217 | }
218 | func addCollision() {
| `- note: add '@available' attribute to enclosing instance method
219 | let visbounds = self.visualBounds(relativeTo: nil)
220 | self.components.set(CollisionComponent(
221 | shapes: [ShapeResource.generateBox(size: visbounds.extents)
| |- error: 'ShapeResource' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
222 | .offsetBy(translation: visbounds.center)
223 | ]
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:221:36: error: 'generateBox(size:)' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
216 | ]
217 | }
218 | func addCollision() {
| `- note: add '@available' attribute to enclosing instance method
219 | let visbounds = self.visualBounds(relativeTo: nil)
220 | self.components.set(CollisionComponent(
221 | shapes: [ShapeResource.generateBox(size: visbounds.extents)
| |- error: 'generateBox(size:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
222 | .offsetBy(translation: visbounds.center)
223 | ]
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:221:64: error: 'extents' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
216 | ]
217 | }
218 | func addCollision() {
| `- note: add '@available' attribute to enclosing instance method
219 | let visbounds = self.visualBounds(relativeTo: nil)
220 | self.components.set(CollisionComponent(
221 | shapes: [ShapeResource.generateBox(size: visbounds.extents)
| |- error: 'extents' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
222 | .offsetBy(translation: visbounds.center)
223 | ]
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:222:18: error: 'offsetBy(translation:)' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
216 | ]
217 | }
218 | func addCollision() {
| `- note: add '@available' attribute to enclosing instance method
219 | let visbounds = self.visualBounds(relativeTo: nil)
220 | self.components.set(CollisionComponent(
221 | shapes: [ShapeResource.generateBox(size: visbounds.extents)
222 | .offsetBy(translation: visbounds.center)
| |- error: 'offsetBy(translation:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
223 | ]
224 | ))
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITapComponent.swift (in target 'RealityUI' from project 'RealityUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile RUITapComponent.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift (in target 'RealityUI' from project 'RealityUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile RUIText.swift
SwiftCompile normal arm64 Compiling\ RUIButton.swift,\ RUIDragComponent+DragEvents.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift (in target 'RealityUI' from project 'RealityUI')
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:17:25: error: 'Entity' is only available in tvOS 26.0 or newer
15 |
16 | /// A RealityUI Button to be added to a RealityKit scene.
17 | public class RUIButton: Entity, HasButton, HasModel, HasPhysics {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing class
18 |
19 | public internal(set) var collisionPlane: float4x4?
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:52:19: error: 'Entity' is only available in tvOS 26.0 or newer
48 | }
49 | }
50 | extension RUIButton: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
51 | public func ruiDrag(
| `- note: add '@available' attribute to enclosing instance method
52 | _ entity: Entity,
| `- error: 'Entity' is only available in tvOS 26.0 or newer
53 | selectedDidUpdate hasCollided: Bool
54 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:58:19: error: 'Entity' is only available in tvOS 26.0 or newer
48 | }
49 | }
50 | extension RUIButton: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
51 | public func ruiDrag(
52 | _ entity: Entity,
:
55 | if hasCollided { compressButton() } else { releaseButton() }
56 | }
57 | public func ruiDrag(
| `- note: add '@available' attribute to enclosing instance method
58 | _ entity: Entity,
| `- error: 'Entity' is only available in tvOS 26.0 or newer
59 | touchUpInsideDidComplete ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)
60 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:70:22: error: 'Material' is only available in tvOS 26.0 or newer
64 |
65 | /// A collection of properties for the entities that conform to ``HasButton``.
66 | public struct ButtonComponent: Component {
| `- note: add '@available' attribute to enclosing struct
67 | /// Size of the RUIButton base.
68 | let size: SIMD3<Float>
69 | /// Color of the button.
70 | var buttonColor: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
71 | /// Color of the button base.
72 | var baseColor: Material.Color
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:72:20: error: 'Material' is only available in tvOS 26.0 or newer
64 |
65 | /// A collection of properties for the entities that conform to ``HasButton``.
66 | public struct ButtonComponent: Component {
| `- note: add '@available' attribute to enclosing struct
67 | /// Size of the RUIButton base.
68 | let size: SIMD3<Float>
:
70 | var buttonColor: Material.Color
71 | /// Color of the button base.
72 | var baseColor: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
73 | /// Padding (in meters) between the base and the button.
74 | let padding: Float
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:114:22: error: 'Material' is only available in tvOS 26.0 or newer
64 |
65 | /// A collection of properties for the entities that conform to ``HasButton``.
66 | public struct ButtonComponent: Component {
| `- note: add '@available' attribute to enclosing struct
67 | /// Size of the RUIButton base.
68 | let size: SIMD3<Float>
:
110 | /// - cornerRadius: A corner radius applied to both the button and the button base.
111 | /// - style: Style of RUIButton
112 | public init(
| `- note: add '@available' attribute to enclosing initializer
113 | size: SIMD3<Float> = ButtonComponent.defaultSize,
114 | buttonColor: Material.Color = .systemBlue,
| `- error: 'Material' is only available in tvOS 26.0 or newer
115 | baseColor: Material.Color = .systemGray,
116 | padding: Float? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:115:20: error: 'Material' is only available in tvOS 26.0 or newer
64 |
65 | /// A collection of properties for the entities that conform to ``HasButton``.
66 | public struct ButtonComponent: Component {
| `- note: add '@available' attribute to enclosing struct
67 | /// Size of the RUIButton base.
68 | let size: SIMD3<Float>
:
110 | /// - cornerRadius: A corner radius applied to both the button and the button base.
111 | /// - style: Style of RUIButton
112 | public init(
| `- note: add '@available' attribute to enclosing initializer
113 | size: SIMD3<Float> = ButtonComponent.defaultSize,
114 | buttonColor: Material.Color = .systemBlue,
115 | baseColor: Material.Color = .systemGray,
| `- error: 'Material' is only available in tvOS 26.0 or newer
116 | padding: Float? = nil,
117 | extrude: Float = 0.5,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:154:28: error: 'HasCollision' is only available in tvOS 26.0 or newer
152 |
153 | /// An interface that provides a button component that defines the visual appearance.
154 | public protocol HasButton: HasCollision, HasRUIMaterials {
| | `- error: 'HasCollision' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing protocol
155 | /// Button has been clicked callback, similar to UIKit `.touchUpInside`
156 | var touchUpInside: ((HasButton) -> Void)? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:180:22: error: 'Material' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
178 | var compress: Float { self.button.compress }
179 | /// Color of the button
180 | var buttonColor: Material.Color {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
181 | get { self.button.buttonColor }
182 | set {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:188:20: error: 'Material' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
186 | }
187 | /// Color of the button base
188 | var baseColor: Material.Color {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
189 | get { self.button.baseColor }
190 | set {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:208:60: error: 'ModelEntity' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
206 | self.collision = CollisionComponent(shapes: [collShape])
207 | }
208 | private func getModel(part: ButtonComponent.UIPart) -> ModelEntity? {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
209 | return (self as HasRUI).getModel(part: part.rawValue)
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:211:60: error: 'ModelEntity' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
209 | return (self as HasRUI).getModel(part: part.rawValue)
210 | }
211 | private func addModel(part: ButtonComponent.UIPart) -> ModelEntity {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
212 | return (self as HasRUI).addModel(part: part.rawValue)
213 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:241:11: error: 'Material' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
237 | set { self.button.isCompressed = newValue}
238 | }
239 | func getMaterials(
| `- note: add '@available' attribute to enclosing instance method
240 | for part: ButtonComponent.UIPart
241 | ) -> [Material] {
| `- error: 'Material' is only available in tvOS 26.0 or newer
242 | switch part {
243 | case .button:
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:162:15: error: 'subscript(_:)' is only available in tvOS 27.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
| `- note: add '@available' attribute to enclosing property
162 | get { self.components[ButtonComponent.self] ?? ButtonComponent() }
| |- error: 'subscript(_:)' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
163 | set { self.components[ButtonComponent.self] = newValue }
164 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:197:37: error: 'model' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
194 | }
195 |
196 | func updateMaterials() {
| `- note: add '@available' attribute to enclosing instance method
197 | self.getModel(part: .base)?.model?.materials = self.getMaterials(for: .base)
| |- error: 'model' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
198 | self.getModel(part: .button)?.model?.materials = self.getMaterials(for: .button)
199 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:198:39: error: 'model' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
194 | }
195 |
196 | func updateMaterials() {
| `- note: add '@available' attribute to enclosing instance method
197 | self.getModel(part: .base)?.model?.materials = self.getMaterials(for: .base)
198 | self.getModel(part: .button)?.model?.materials = self.getMaterials(for: .button)
| |- error: 'model' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
199 | }
200 |
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:205:25: error: 'ShapeResource' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
199 | }
200 |
201 | private func updateCollision() {
| `- note: add '@available' attribute to enclosing instance method
202 | guard let buttonInner = self.getModel(part: .button) else {
203 | return
204 | }
205 | let collShape = ShapeResource.generateBox(size: self.innerBoxSize).offsetBy(translation: buttonInner.position)
| |- error: 'ShapeResource' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
206 | self.collision = CollisionComponent(shapes: [collShape])
207 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:205:39: error: 'generateBox(size:)' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
199 | }
200 |
201 | private func updateCollision() {
| `- note: add '@available' attribute to enclosing instance method
202 | guard let buttonInner = self.getModel(part: .button) else {
203 | return
204 | }
205 | let collShape = ShapeResource.generateBox(size: self.innerBoxSize).offsetBy(translation: buttonInner.position)
| |- error: 'generateBox(size:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
206 | self.collision = CollisionComponent(shapes: [collShape])
207 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:205:76: error: 'offsetBy(translation:)' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
199 | }
200 |
201 | private func updateCollision() {
| `- note: add '@available' attribute to enclosing instance method
202 | guard let buttonInner = self.getModel(part: .button) else {
203 | return
204 | }
205 | let collShape = ShapeResource.generateBox(size: self.innerBoxSize).offsetBy(translation: buttonInner.position)
| |- error: 'offsetBy(translation:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
206 | self.collision = CollisionComponent(shapes: [collShape])
207 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:205:110: error: 'position' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
199 | }
200 |
201 | private func updateCollision() {
| `- note: add '@available' attribute to enclosing instance method
202 | guard let buttonInner = self.getModel(part: .button) else {
203 | return
204 | }
205 | let collShape = ShapeResource.generateBox(size: self.innerBoxSize).offsetBy(translation: buttonInner.position)
| |- error: 'position' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
206 | self.collision = CollisionComponent(shapes: [collShape])
207 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:206:14: error: 'collision' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
199 | }
200 |
201 | private func updateCollision() {
| `- note: add '@available' attribute to enclosing instance method
202 | guard let buttonInner = self.getModel(part: .button) else {
203 | return
204 | }
205 | let collShape = ShapeResource.generateBox(size: self.innerBoxSize).offsetBy(translation: buttonInner.position)
206 | self.collision = CollisionComponent(shapes: [collShape])
| |- error: 'collision' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
207 | }
208 | private func getModel(part: ButtonComponent.UIPart) -> ModelEntity? {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:206:26: error: 'CollisionComponent' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
199 | }
200 |
201 | private func updateCollision() {
| `- note: add '@available' attribute to enclosing instance method
202 | guard let buttonInner = self.getModel(part: .button) else {
203 | return
204 | }
205 | let collShape = ShapeResource.generateBox(size: self.innerBoxSize).offsetBy(translation: buttonInner.position)
206 | self.collision = CollisionComponent(shapes: [collShape])
| |- error: 'CollisionComponent' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
207 | }
208 | private func getModel(part: ButtonComponent.UIPart) -> ModelEntity? {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:252:21: error: 'model' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
248 | }
249 |
250 | func makeModels() {
| `- note: add '@available' attribute to enclosing instance method
251 | let buttonOuter = self.addModel(part: .base)
252 | buttonOuter.model = ModelComponent(
| |- error: 'model' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
253 | mesh: .generateBox(
254 | size: self.size,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:252:29: error: 'ModelComponent' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
248 | }
249 |
250 | func makeModels() {
| `- note: add '@available' attribute to enclosing instance method
251 | let buttonOuter = self.addModel(part: .base)
252 | buttonOuter.model = ModelComponent(
| |- error: 'ModelComponent' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
253 | mesh: .generateBox(
254 | size: self.size,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:260:21: error: 'model' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
248 | }
249 |
250 | func makeModels() {
| `- note: add '@available' attribute to enclosing instance method
251 | let buttonOuter = self.addModel(part: .base)
252 | buttonOuter.model = ModelComponent(
:
258 | let buttonInner = self.addModel(part: .button)
259 | let innerBoxSize = self.innerBoxSize
260 | buttonInner.model = ModelComponent(
| |- error: 'model' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
261 | mesh: MeshResource.generateBox(
262 | size: innerBoxSize,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:260:29: error: 'ModelComponent' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
248 | }
249 |
250 | func makeModels() {
| `- note: add '@available' attribute to enclosing instance method
251 | let buttonOuter = self.addModel(part: .base)
252 | buttonOuter.model = ModelComponent(
:
258 | let buttonInner = self.addModel(part: .button)
259 | let innerBoxSize = self.innerBoxSize
260 | buttonInner.model = ModelComponent(
| |- error: 'ModelComponent' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
261 | mesh: MeshResource.generateBox(
262 | size: innerBoxSize,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:261:19: error: 'MeshResource' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
248 | }
249 |
250 | func makeModels() {
| `- note: add '@available' attribute to enclosing instance method
251 | let buttonOuter = self.addModel(part: .base)
252 | buttonOuter.model = ModelComponent(
:
259 | let innerBoxSize = self.innerBoxSize
260 | buttonInner.model = ModelComponent(
261 | mesh: MeshResource.generateBox(
| |- error: 'MeshResource' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
262 | size: innerBoxSize,
263 | cornerRadius: cornerRadius
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:266:21: error: 'position' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
248 | }
249 |
250 | func makeModels() {
| `- note: add '@available' attribute to enclosing instance method
251 | let buttonOuter = self.addModel(part: .base)
252 | buttonOuter.model = ModelComponent(
:
264 | ), materials: []
265 | )
266 | buttonInner.position = self.buttonOutPos
| |- error: 'position' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
267 | self.updateMaterials()
268 | self.updateCollision()
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:275:20: error: 'stopAllAnimations(recursive:)' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
268 | self.updateCollision()
269 | }
270 | func compressButton() {
| `- note: add '@available' attribute to enclosing instance method
271 | guard let innerModel = self.getModel(part: .button) else {
272 | return
273 | }
274 | self.isCompressed = true
275 | innerModel.stopAllAnimations()
| |- error: 'stopAllAnimations(recursive:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
276 | innerModel.move(
277 | to: Transform(scale: .one, rotation: .init(angle: 0, axis: [0, 1, 0]), translation: self.buttonInPos),
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:276:20: error: 'move(to:relativeTo:duration:timingFunction:)' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
268 | self.updateCollision()
269 | }
270 | func compressButton() {
| `- note: add '@available' attribute to enclosing instance method
271 | guard let innerModel = self.getModel(part: .button) else {
272 | return
:
274 | self.isCompressed = true
275 | innerModel.stopAllAnimations()
276 | innerModel.move(
| |- error: 'move(to:relativeTo:duration:timingFunction:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
277 | to: Transform(scale: .one, rotation: .init(angle: 0, axis: [0, 1, 0]), translation: self.buttonInPos),
278 | relativeTo: self, duration: 0.15
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:277:17: error: 'Transform' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
268 | self.updateCollision()
269 | }
270 | func compressButton() {
| `- note: add '@available' attribute to enclosing instance method
271 | guard let innerModel = self.getModel(part: .button) else {
272 | return
:
275 | innerModel.stopAllAnimations()
276 | innerModel.move(
277 | to: Transform(scale: .one, rotation: .init(angle: 0, axis: [0, 1, 0]), translation: self.buttonInPos),
| |- error: 'Transform' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
278 | relativeTo: self, duration: 0.15
279 | )
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:286:20: error: 'stopAllAnimations(recursive:)' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
279 | )
280 | }
281 | func releaseButton() {
| `- note: add '@available' attribute to enclosing instance method
282 | guard let innerModel = self.getModel(part: .button) else {
283 | return
284 | }
285 | self.isCompressed = false
286 | innerModel.stopAllAnimations()
| |- error: 'stopAllAnimations(recursive:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
287 | innerModel.move(
288 | to: Transform(scale: .one, rotation: .init(angle: 0, axis: [0, 1, 0]), translation: self.buttonOutPos),
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:287:20: error: 'move(to:relativeTo:duration:timingFunction:)' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
279 | )
280 | }
281 | func releaseButton() {
| `- note: add '@available' attribute to enclosing instance method
282 | guard let innerModel = self.getModel(part: .button) else {
283 | return
:
285 | self.isCompressed = false
286 | innerModel.stopAllAnimations()
287 | innerModel.move(
| |- error: 'move(to:relativeTo:duration:timingFunction:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
288 | to: Transform(scale: .one, rotation: .init(angle: 0, axis: [0, 1, 0]), translation: self.buttonOutPos),
289 | relativeTo: self, duration: 0.15
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:288:17: error: 'Transform' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
279 | )
280 | }
281 | func releaseButton() {
| `- note: add '@available' attribute to enclosing instance method
282 | guard let innerModel = self.getModel(part: .button) else {
283 | return
:
286 | innerModel.stopAllAnimations()
287 | innerModel.move(
288 | to: Transform(scale: .one, rotation: .init(angle: 0, axis: [0, 1, 0]), translation: self.buttonOutPos),
| |- error: 'Transform' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
289 | relativeTo: self, duration: 0.15
290 | )
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift:26:19: error: 'Entity' is only available in tvOS 26.0 or newer
15 | }
16 |
17 | extension RUIDragComponent {
| `- note: add '@available' attribute to enclosing extension
18 | /// Called when a drag interaction starts.
19 | ///
:
23 | /// - origin: The original position of the entity.
24 | @discardableResult
25 | public func dragStarted(
| `- note: add '@available' attribute to enclosing instance method
26 | _ entity: Entity, ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)
| `- error: 'Entity' is only available in tvOS 26.0 or newer
27 | ) -> Bool {
28 | let worldPos = ray.origin + ray.direction
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift:56:19: error: 'Entity' is only available in tvOS 26.0 or newer
15 | }
16 |
17 | extension RUIDragComponent {
| `- note: add '@available' attribute to enclosing extension
18 | /// Called when a drag interaction starts.
19 | ///
:
53 | /// - ray: A tuple containing the origin and direction of the ray used in the drag interaction.
54 | /// - hasCollided: A boolean indicating whether there has been a collision.
55 | public func dragUpdated(
| `- note: add '@available' attribute to enclosing instance method
56 | _ entity: Entity, ray: (origin: SIMD3<Float>, direction: SIMD3<Float>), hasCollided: Bool
| `- error: 'Entity' is only available in tvOS 26.0 or newer
57 | ) {
58 | let worldPos = RUIDragComponent.getCollisionPoints(with: ray, dragState: self.dragState)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift:90:37: error: 'Entity' is only available in tvOS 26.0 or newer
15 | }
16 |
17 | extension RUIDragComponent {
| `- note: add '@available' attribute to enclosing extension
18 | /// Called when a drag interaction starts.
19 | ///
:
88 | /// - entity: The entity involved in the drag interaction.
89 | /// - ray: A tuple containing the origin and direction of the ray used in the drag interaction.
90 | public func dragEnded(_ entity: Entity, ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
91 | var outputRay = ray
92 | switch self.dragState {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift:111:41: error: 'Entity' is only available in tvOS 26.0 or newer
15 | }
16 |
17 | extension RUIDragComponent {
| `- note: add '@available' attribute to enclosing extension
18 | /// Called when a drag interaction starts.
19 | ///
:
109 | ///
110 | /// - Parameter entity: The entity involved in the drag interaction.
111 | public func dragCancelled(_ entity: Entity) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
112 | dragState = nil
113 | self.delegate?.ruiDragCancelled(entity)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift:29:31: error: 'convert(position:from:)' is only available in tvOS 26.0 or newer
15 | }
16 |
17 | extension RUIDragComponent {
| `- note: add '@available' attribute to enclosing extension
18 | /// Called when a drag interaction starts.
19 | ///
:
23 | /// - origin: The original position of the entity.
24 | @discardableResult
25 | public func dragStarted(
| `- note: add '@available' attribute to enclosing instance method
26 | _ entity: Entity, ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)
27 | ) -> Bool {
28 | let worldPos = ray.origin + ray.direction
29 | let localPos = entity.convert(position: worldPos, from: nil)
| |- error: 'convert(position:from:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
30 | var dist = simd_length(ray.direction)
31 | switch self.type {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift:61:34: error: 'convert(position:from:)' is only available in tvOS 26.0 or newer
15 | }
16 |
17 | extension RUIDragComponent {
| `- note: add '@available' attribute to enclosing extension
18 | /// Called when a drag interaction starts.
19 | ///
:
53 | /// - ray: A tuple containing the origin and direction of the ray used in the drag interaction.
54 | /// - hasCollided: A boolean indicating whether there has been a collision.
55 | public func dragUpdated(
| `- note: add '@available' attribute to enclosing instance method
56 | _ entity: Entity, ray: (origin: SIMD3<Float>, direction: SIMD3<Float>), hasCollided: Bool
57 | ) {
:
59 | var newTouchPos: SIMD3<Float>?
60 | if let worldPos {
61 | newTouchPos = entity.convert(position: worldPos, from: nil)
| |- error: 'convert(position:from:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
62 | }
63 | var outputRay = ray
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift (in target 'RealityUI' from project 'RealityUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile RUIButton.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift (in target 'RealityUI' from project 'RealityUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile RUIDragComponent+DragEvents.swift
SwiftCompile normal arm64 Compiling\ RUITexture.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITexture.swift (in target 'RealityUI' from project 'RealityUI')
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITexture.swift:34:23: error: 'TextureResource' is only available in tvOS 26.0 or newer
17 | @available(iOS 15.0, macOS 12, *)
18 | /// Class for creating `TextureResources`. For now the main use-case is creating SF Symbol images.
19 | public struct RUITexture {
| `- note: add '@available' attribute to enclosing struct
20 | /// Erorr that can be thrown while generating a texture
21 | public enum TextureError: Error {
:
30 | /// - pointSize: Point size the symbol will be drawn with.
31 | /// - Returns: A new `TextureResource`.
32 | public static func generateTexture(
| `- note: add '@available' attribute to enclosing static method
33 | systemName: String, pointSize: CGFloat
34 | ) async throws -> TextureResource {
| `- error: 'TextureResource' is only available in tvOS 26.0 or newer
35 | #if canImport(AppKit)
36 | let config = NSImage.SymbolConfiguration(pointSize: pointSize, weight: .regular)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITexture.swift:72:23: error: 'TextureResource' is only available in tvOS 26.0 or newer
17 | @available(iOS 15.0, macOS 12, *)
18 | /// Class for creating `TextureResources`. For now the main use-case is creating SF Symbol images.
19 | public struct RUITexture {
| `- note: add '@available' attribute to enclosing struct
20 | /// Erorr that can be thrown while generating a texture
21 | public enum TextureError: Error {
:
68 | /// - config: Image SymbolConfiguration for the SF Symbol Image.
69 | /// - Returns: A new `TextureResource`.
70 | public static func generateTexture(
| `- note: add '@available' attribute to enclosing static method
71 | systemName: String, config: UIImage.SymbolConfiguration? = nil
72 | ) async throws -> TextureResource {
| `- error: 'TextureResource' is only available in tvOS 26.0 or newer
73 | let cgImage = try self.generateCGImage(systemName: systemName, config: config)
74 | return try await TextureResource.generate(
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITexture.swift:74:26: error: 'TextureResource' is only available in tvOS 26.0 or newer
17 | @available(iOS 15.0, macOS 12, *)
18 | /// Class for creating `TextureResources`. For now the main use-case is creating SF Symbol images.
19 | public struct RUITexture {
| `- note: add '@available' attribute to enclosing struct
20 | /// Erorr that can be thrown while generating a texture
21 | public enum TextureError: Error {
:
68 | /// - config: Image SymbolConfiguration for the SF Symbol Image.
69 | /// - Returns: A new `TextureResource`.
70 | public static func generateTexture(
| `- note: add '@available' attribute to enclosing static method
71 | systemName: String, config: UIImage.SymbolConfiguration? = nil
72 | ) async throws -> TextureResource {
73 | let cgImage = try self.generateCGImage(systemName: systemName, config: config)
74 | return try await TextureResource.generate(
| |- error: 'TextureResource' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
75 | from: cgImage, withName: nil,
76 | options: .init(semantic: nil, mipmapsMode: TextureResource.MipmapsMode.allocateAndGenerateAll)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITexture.swift:74:42: error: 'generate(from:withName:options:)' is unavailable in tvOS
72 | ) async throws -> TextureResource {
73 | let cgImage = try self.generateCGImage(systemName: systemName, config: config)
74 | return try await TextureResource.generate(
| `- error: 'generate(from:withName:options:)' is unavailable in tvOS
75 | from: cgImage, withName: nil,
76 | options: .init(semantic: nil, mipmapsMode: TextureResource.MipmapsMode.allocateAndGenerateAll)
RealityKit.TextureResource.generate:7:49: note: 'generate(from:withName:options:)' has been explicitly marked unavailable here
5 | @available(visionOS, introduced: 1.0, deprecated: 2.0, renamed: "init(image:withName:options:)")
6 | @available(tvOS, unavailable)
7 | @MainActor @preconcurrency public static func generate(from cgImage: CGImage, withName resourceName: String? = nil, options: TextureResource.CreateOptions) throws -> TextureResource}
| `- note: 'generate(from:withName:options:)' has been explicitly marked unavailable here
8 |
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITexture.swift (in target 'RealityUI' from project 'RealityUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile RUITexture.swift
SwiftCompile normal arm64 Compiling\ SwiftUI+RUIGestures.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/SwiftUI+RUIGestures.swift (in target 'RealityUI' from project 'RealityUI')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/SwiftUI+RUIGestures.swift (in target 'RealityUI' from project 'RealityUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile SwiftUI+RUIGestures.swift
SwiftEmitModule normal arm64 Emitting\ module\ for\ RealityUI (in target 'RealityUI' from project 'RealityUI')
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/HasRUI.swift:30:25: error: 'Entity' is only available in tvOS 26.0 or newer
28 |
29 | /// An interface used for all entities in the RealityUI package
30 | public protocol HasRUI: Entity {}
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing protocol
31 |
32 | public extension HasRUI {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/HasRUI.swift:69:36: error: 'ModelEntity' is only available in tvOS 26.0 or newer
66 | }
67 |
68 | internal extension HasRUI {
| `- note: add '@available' attribute to enclosing extension
69 | func getModel(part: String) -> ModelEntity? {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
70 | self.findEntity(named: part) as? ModelEntity
71 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/HasRUI.swift:77:36: error: 'ModelEntity' is only available in tvOS 26.0 or newer
66 | }
67 |
68 | internal extension HasRUI {
| `- note: add '@available' attribute to enclosing extension
69 | func getModel(part: String) -> ModelEntity? {
70 | self.findEntity(named: part) as? ModelEntity
:
75 | }
76 | }
77 | func addModel(part: String) -> ModelEntity {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
78 | if let modelPart = self.getModel(part: part) {
79 | return modelPart
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/HasRUI.swift:101:34: error: 'Material' is only available in tvOS 26.0 or newer
95 | }
96 |
97 | extension HasRUIMaterials {
| `- note: add '@available' attribute to enclosing extension
98 | fileprivate func materialsShouldChange() {
99 | self.updateMaterials()
100 | }
101 | func getMaterial(with color: Material.Color) -> Material {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
102 | var alpha: CGFloat = 0
103 | #if os(macOS)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/HasRUI.swift:101:53: error: 'Material' is only available in tvOS 26.0 or newer
95 | }
96 |
97 | extension HasRUIMaterials {
| `- note: add '@available' attribute to enclosing extension
98 | fileprivate func materialsShouldChange() {
99 | self.updateMaterials()
100 | }
101 | func getMaterial(with color: Material.Color) -> Material {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
102 | var alpha: CGFloat = 0
103 | #if os(macOS)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIAnimations.swift:59:82: error: 'Transform' is only available in tvOS 26.0 or newer
10 | import RealityKit
11 |
12 | public extension Entity {
| `- note: add '@available' attribute to enclosing extension
13 | /// Spin an Entity on an axis.
14 | /// - Parameters:
:
57 | }
58 |
59 | internal func transformAfterRotation(by axis: SIMD3<Float>, angle: Float) -> Transform {
| | `- error: 'Transform' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
60 | Transform(
61 | matrix: self.transform.matrix
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIAnimations.swift:12:18: error: 'Entity' is only available in tvOS 26.0 or newer
10 | import RealityKit
11 |
12 | public extension Entity {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing extension
13 | /// Spin an Entity on an axis.
14 | /// - Parameters:
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:17:25: error: 'Entity' is only available in tvOS 26.0 or newer
15 |
16 | /// A RealityUI Button to be added to a RealityKit scene.
17 | public class RUIButton: Entity, HasButton, HasModel, HasPhysics {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing class
18 |
19 | public internal(set) var collisionPlane: float4x4?
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:52:19: error: 'Entity' is only available in tvOS 26.0 or newer
48 | }
49 | }
50 | extension RUIButton: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
51 | public func ruiDrag(
| `- note: add '@available' attribute to enclosing instance method
52 | _ entity: Entity,
| `- error: 'Entity' is only available in tvOS 26.0 or newer
53 | selectedDidUpdate hasCollided: Bool
54 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:58:19: error: 'Entity' is only available in tvOS 26.0 or newer
48 | }
49 | }
50 | extension RUIButton: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
51 | public func ruiDrag(
52 | _ entity: Entity,
:
55 | if hasCollided { compressButton() } else { releaseButton() }
56 | }
57 | public func ruiDrag(
| `- note: add '@available' attribute to enclosing instance method
58 | _ entity: Entity,
| `- error: 'Entity' is only available in tvOS 26.0 or newer
59 | touchUpInsideDidComplete ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)
60 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:70:22: error: 'Material' is only available in tvOS 26.0 or newer
64 |
65 | /// A collection of properties for the entities that conform to ``HasButton``.
66 | public struct ButtonComponent: Component {
| `- note: add '@available' attribute to enclosing struct
67 | /// Size of the RUIButton base.
68 | let size: SIMD3<Float>
69 | /// Color of the button.
70 | var buttonColor: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
71 | /// Color of the button base.
72 | var baseColor: Material.Color
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:72:20: error: 'Material' is only available in tvOS 26.0 or newer
64 |
65 | /// A collection of properties for the entities that conform to ``HasButton``.
66 | public struct ButtonComponent: Component {
| `- note: add '@available' attribute to enclosing struct
67 | /// Size of the RUIButton base.
68 | let size: SIMD3<Float>
:
70 | var buttonColor: Material.Color
71 | /// Color of the button base.
72 | var baseColor: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
73 | /// Padding (in meters) between the base and the button.
74 | let padding: Float
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:114:22: error: 'Material' is only available in tvOS 26.0 or newer
64 |
65 | /// A collection of properties for the entities that conform to ``HasButton``.
66 | public struct ButtonComponent: Component {
| `- note: add '@available' attribute to enclosing struct
67 | /// Size of the RUIButton base.
68 | let size: SIMD3<Float>
:
110 | /// - cornerRadius: A corner radius applied to both the button and the button base.
111 | /// - style: Style of RUIButton
112 | public init(
| `- note: add '@available' attribute to enclosing initializer
113 | size: SIMD3<Float> = ButtonComponent.defaultSize,
114 | buttonColor: Material.Color = .systemBlue,
| `- error: 'Material' is only available in tvOS 26.0 or newer
115 | baseColor: Material.Color = .systemGray,
116 | padding: Float? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:115:20: error: 'Material' is only available in tvOS 26.0 or newer
64 |
65 | /// A collection of properties for the entities that conform to ``HasButton``.
66 | public struct ButtonComponent: Component {
| `- note: add '@available' attribute to enclosing struct
67 | /// Size of the RUIButton base.
68 | let size: SIMD3<Float>
:
110 | /// - cornerRadius: A corner radius applied to both the button and the button base.
111 | /// - style: Style of RUIButton
112 | public init(
| `- note: add '@available' attribute to enclosing initializer
113 | size: SIMD3<Float> = ButtonComponent.defaultSize,
114 | buttonColor: Material.Color = .systemBlue,
115 | baseColor: Material.Color = .systemGray,
| `- error: 'Material' is only available in tvOS 26.0 or newer
116 | padding: Float? = nil,
117 | extrude: Float = 0.5,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:154:28: error: 'HasCollision' is only available in tvOS 26.0 or newer
152 |
153 | /// An interface that provides a button component that defines the visual appearance.
154 | public protocol HasButton: HasCollision, HasRUIMaterials {
| | `- error: 'HasCollision' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing protocol
155 | /// Button has been clicked callback, similar to UIKit `.touchUpInside`
156 | var touchUpInside: ((HasButton) -> Void)? { get set }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:180:22: error: 'Material' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
178 | var compress: Float { self.button.compress }
179 | /// Color of the button
180 | var buttonColor: Material.Color {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
181 | get { self.button.buttonColor }
182 | set {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:188:20: error: 'Material' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
186 | }
187 | /// Color of the button base
188 | var baseColor: Material.Color {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
189 | get { self.button.baseColor }
190 | set {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:208:60: error: 'ModelEntity' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
206 | self.collision = CollisionComponent(shapes: [collShape])
207 | }
208 | private func getModel(part: ButtonComponent.UIPart) -> ModelEntity? {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
209 | return (self as HasRUI).getModel(part: part.rawValue)
210 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:211:60: error: 'ModelEntity' is only available in tvOS 26.0 or newer
157 | }
158 |
159 | public extension HasButton {
| `- note: add '@available' attribute to enclosing extension
160 | /// Properties of the button to be rendered
161 | internal(set) var button: ButtonComponent {
:
209 | return (self as HasRUI).getModel(part: part.rawValue)
210 | }
211 | private func addModel(part: ButtonComponent.UIPart) -> ModelEntity {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
212 | return (self as HasRUI).addModel(part: part.rawValue)
213 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift:241:11: error: 'Material' is only available in tvOS 26.0 or newer
214 | }
215 |
216 | internal extension HasButton {
| `- note: add '@available' attribute to enclosing extension
217 | var innerBoxSize: SIMD3<Float> {[
218 | self.size.x - self.padding * 2,
:
237 | set { self.button.isCompressed = newValue}
238 | }
239 | func getMaterials(
| `- note: add '@available' attribute to enclosing instance method
240 | for part: ButtonComponent.UIPart
241 | ) -> [Material] {
| `- error: 'Material' is only available in tvOS 26.0 or newer
242 | switch part {
243 | case .button:
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift:26:19: error: 'Entity' is only available in tvOS 26.0 or newer
15 | }
16 |
17 | extension RUIDragComponent {
| `- note: add '@available' attribute to enclosing extension
18 | /// Called when a drag interaction starts.
19 | ///
:
23 | /// - origin: The original position of the entity.
24 | @discardableResult
25 | public func dragStarted(
| `- note: add '@available' attribute to enclosing instance method
26 | _ entity: Entity, ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)
| `- error: 'Entity' is only available in tvOS 26.0 or newer
27 | ) -> Bool {
28 | let worldPos = ray.origin + ray.direction
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift:56:19: error: 'Entity' is only available in tvOS 26.0 or newer
15 | }
16 |
17 | extension RUIDragComponent {
| `- note: add '@available' attribute to enclosing extension
18 | /// Called when a drag interaction starts.
19 | ///
:
53 | /// - ray: A tuple containing the origin and direction of the ray used in the drag interaction.
54 | /// - hasCollided: A boolean indicating whether there has been a collision.
55 | public func dragUpdated(
| `- note: add '@available' attribute to enclosing instance method
56 | _ entity: Entity, ray: (origin: SIMD3<Float>, direction: SIMD3<Float>), hasCollided: Bool
| `- error: 'Entity' is only available in tvOS 26.0 or newer
57 | ) {
58 | let worldPos = RUIDragComponent.getCollisionPoints(with: ray, dragState: self.dragState)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift:90:37: error: 'Entity' is only available in tvOS 26.0 or newer
15 | }
16 |
17 | extension RUIDragComponent {
| `- note: add '@available' attribute to enclosing extension
18 | /// Called when a drag interaction starts.
19 | ///
:
88 | /// - entity: The entity involved in the drag interaction.
89 | /// - ray: A tuple containing the origin and direction of the ray used in the drag interaction.
90 | public func dragEnded(_ entity: Entity, ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
91 | var outputRay = ray
92 | switch self.dragState {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift:111:41: error: 'Entity' is only available in tvOS 26.0 or newer
15 | }
16 |
17 | extension RUIDragComponent {
| `- note: add '@available' attribute to enclosing extension
18 | /// Called when a drag interaction starts.
19 | ///
:
109 | ///
110 | /// - Parameter entity: The entity involved in the drag interaction.
111 | public func dragCancelled(_ entity: Entity) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
112 | dragState = nil
113 | self.delegate?.ruiDragCancelled(entity)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent.swift:38:18: error: 'BoundingBox' is only available in tvOS 26.0 or newer
24 | /// Examples of where `MoveConstraint` can be beneficial include scenarios like guiding an entity along a specific path,
25 | /// confining movement within a certain area, or applying complex, custom movement rules.
26 | public enum MoveConstraint {
| `- note: add '@available' attribute to enclosing enum
27 | /// Constrains movement within a bounding box.
28 | ///
:
36 | /// )
37 | /// ```
38 | case box(BoundingBox)
| `- error: 'BoundingBox' is only available in tvOS 26.0 or newer
39 | /// Constrains movement to a set of points.
40 | ///
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent.swift:208:19: error: 'Entity' is only available in tvOS 26.0 or newer
14 | /// `RUIDragComponent` is a component for managing drag interactions in an AR or VR context.
15 | /// It provides various constraints for dragging movements with constraints such as boxes, points and clamps.
16 | public class RUIDragComponent: Component {
| `- note: add '@available' attribute to enclosing class
17 | /// `MoveConstraint` defines the constraints that can be applied to the movement of entities in a 3D environment.
18 | ///
:
205 | }
206 |
207 | internal static func handleMoveState(
| `- note: add '@available' attribute to enclosing static method
208 | _ entity: Entity, _ newTouchPos: SIMD3<Float>?, _ poi: SIMD3<Float>
| `- error: 'Entity' is only available in tvOS 26.0 or newer
209 | ) -> SIMD3<Float>? {
210 | guard let newTouchPos else { return nil }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent.swift:219:19: error: 'Entity' is only available in tvOS 26.0 or newer
14 | /// `RUIDragComponent` is a component for managing drag interactions in an AR or VR context.
15 | /// It provides various constraints for dragging movements with constraints such as boxes, points and clamps.
16 | public class RUIDragComponent: Component {
| `- note: add '@available' attribute to enclosing class
17 | /// `MoveConstraint` defines the constraints that can be applied to the movement of entities in a 3D environment.
18 | ///
:
216 | }
217 |
218 | internal func handleTurnState(
| `- note: add '@available' attribute to enclosing instance method
219 | _ entity: Entity, _ plane: float4x4, _ lastPoint: SIMD3<Float>,
| `- error: 'Entity' is only available in tvOS 26.0 or newer
220 | _ ray: inout (origin: SIMD3<Float>, direction: SIMD3<Float>)
221 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent.swift:305:23: error: 'BoundingBox' is only available in tvOS 26.0 or newer
303 | #endif
304 |
305 | fileprivate extension BoundingBox {
| | `- error: 'BoundingBox' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing extension
306 | func clamp(_ position: SIMD3<Float>) -> SIMD3<Float> {
307 | [Swift.min(max.x, Swift.max(min.x, position.x)),
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:22:28: error: 'Entity' is only available in tvOS 26.0 or newer
11 | ///
12 | /// `RUIDragDelegate` provides methods to manage the lifecycle of a drag interaction with entities.
13 | public protocol RUIDragDelegate: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
14 | /// Called when a drag interaction begins on an entity.
15 | ///
:
20 | /// - entity: The `Entity` that the user starts dragging.
21 | /// - ray: A ray showing the origin and direction of the ray used to move the entity. The direction is not normalised.
22 | func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>))
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
23 | /// Called when there is an update to a drag interaction on an entity.
24 | ///
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:31:28: error: 'Entity' is only available in tvOS 26.0 or newer
11 | ///
12 | /// `RUIDragDelegate` provides methods to manage the lifecycle of a drag interaction with entities.
13 | public protocol RUIDragDelegate: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
14 | /// Called when a drag interaction begins on an entity.
15 | ///
:
29 | /// - entity: The `Entity` whose position or state is being updated due to the drag interaction.
30 | /// - ray: A ray showing the origin and direction of the ray used to move the entity. The direction is not normalised.
31 | func ruiDrag(_ entity: Entity, dragDidUpdate ray: (origin: SIMD3<Float>, direction: SIMD3<Float>))
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
32 | /// Called when a drag interaction on an AR entity ends.
33 | ///
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:40:28: error: 'Entity' is only available in tvOS 26.0 or newer
11 | ///
12 | /// `RUIDragDelegate` provides methods to manage the lifecycle of a drag interaction with entities.
13 | public protocol RUIDragDelegate: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
14 | /// Called when a drag interaction begins on an entity.
15 | ///
:
38 | /// - entity: The `Entity` that was being dragged and is now released.
39 | /// - ray: A ray showing the origin and direction of the ray used to move the entity. The direction is not normalised.
40 | func ruiDrag(_ entity: Entity, dragDidEnd ray: (origin: SIMD3<Float>, direction: SIMD3<Float>))
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
41 | /// Called when a drag interaction on an entity is cancelled.
42 | ///
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:47:37: error: 'Entity' is only available in tvOS 26.0 or newer
11 | ///
12 | /// `RUIDragDelegate` provides methods to manage the lifecycle of a drag interaction with entities.
13 | public protocol RUIDragDelegate: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
14 | /// Called when a drag interaction begins on an entity.
15 | ///
:
45 | ///
46 | /// - Parameter entity: The `Entity` that was being dragged before the interaction was cancelled.
47 | func ruiDragCancelled(_ entity: Entity)
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
48 |
49 | /// Called when the collision state of a dragged entity changes.
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:57:28: error: 'Entity' is only available in tvOS 26.0 or newer
11 | ///
12 | /// `RUIDragDelegate` provides methods to manage the lifecycle of a drag interaction with entities.
13 | public protocol RUIDragDelegate: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
14 | /// Called when a drag interaction begins on an entity.
15 | ///
:
55 | /// - entity: The `Entity` involved in the collision state change.
56 | /// - isSelected: A Boolean value indicating the 3D interaction is currently on the entity.
57 | func ruiDrag(_ entity: Entity, selectedDidUpdate isSelected: Bool)
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
58 |
59 | /// Called when a touch-up event is completed on entities with a ``RUIDragComponent`` of type ``RUIDragComponent/DragComponentType/click``.
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:67:28: error: 'Entity' is only available in tvOS 26.0 or newer
11 | ///
12 | /// `RUIDragDelegate` provides methods to manage the lifecycle of a drag interaction with entities.
13 | public protocol RUIDragDelegate: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
14 | /// Called when a drag interaction begins on an entity.
15 | ///
:
65 | /// - entity: The `Entity` on which the touch-up gesture is completed.
66 | /// - ray: A ray representing the origin and direction of the touch-up interaction. The direction vector is not normalized.
67 | func ruiDrag(_ entity: Entity, touchUpInsideDidComplete ray: (origin: SIMD3<Float>, direction: SIMD3<Float>))
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
68 |
69 | /// Called when a touch-up event fails on entities with a ``RUIDragComponent``
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:82:28: error: 'Entity' is only available in tvOS 26.0 or newer
11 | ///
12 | /// `RUIDragDelegate` provides methods to manage the lifecycle of a drag interaction with entities.
13 | public protocol RUIDragDelegate: AnyObject {
| `- note: add '@available' attribute to enclosing protocol
14 | /// Called when a drag interaction begins on an entity.
15 | ///
:
80 | /// - entity: The `Entity` on which the touch-up gesture failed.
81 | /// - ray: A ray representing the origin and direction of the failed touch-up interaction. The direction vector is not normalized.
82 | func ruiDrag(_ entity: Entity, touchUpInsideDidFail ray: (origin: SIMD3<Float>, direction: SIMD3<Float>))
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
83 | }
84 |
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:86:28: error: 'Entity' is only available in tvOS 26.0 or newer
83 | }
84 |
85 | public extension RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
86 | func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
87 | func ruiDrag(_ entity: Entity, dragDidUpdate ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
88 | func ruiDrag(_ entity: Entity, dragDidEnd ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:87:28: error: 'Entity' is only available in tvOS 26.0 or newer
83 | }
84 |
85 | public extension RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
86 | func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
87 | func ruiDrag(_ entity: Entity, dragDidUpdate ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
88 | func ruiDrag(_ entity: Entity, dragDidEnd ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
89 | func ruiDragCancelled(_ entity: Entity) {}
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:88:28: error: 'Entity' is only available in tvOS 26.0 or newer
83 | }
84 |
85 | public extension RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
86 | func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
87 | func ruiDrag(_ entity: Entity, dragDidUpdate ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
88 | func ruiDrag(_ entity: Entity, dragDidEnd ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
89 | func ruiDragCancelled(_ entity: Entity) {}
90 | func ruiDrag(_ entity: Entity, selectedDidUpdate isSelected: Bool) {}
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:89:37: error: 'Entity' is only available in tvOS 26.0 or newer
83 | }
84 |
85 | public extension RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
86 | func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
87 | func ruiDrag(_ entity: Entity, dragDidUpdate ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
88 | func ruiDrag(_ entity: Entity, dragDidEnd ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
89 | func ruiDragCancelled(_ entity: Entity) {}
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
90 | func ruiDrag(_ entity: Entity, selectedDidUpdate isSelected: Bool) {}
91 | func ruiDrag(_ entity: Entity, touchUpInsideDidComplete ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:90:28: error: 'Entity' is only available in tvOS 26.0 or newer
83 | }
84 |
85 | public extension RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
86 | func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
87 | func ruiDrag(_ entity: Entity, dragDidUpdate ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
88 | func ruiDrag(_ entity: Entity, dragDidEnd ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
89 | func ruiDragCancelled(_ entity: Entity) {}
90 | func ruiDrag(_ entity: Entity, selectedDidUpdate isSelected: Bool) {}
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
91 | func ruiDrag(_ entity: Entity, touchUpInsideDidComplete ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
92 | func ruiDrag(_ entity: Entity, touchUpInsideDidFail ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:91:28: error: 'Entity' is only available in tvOS 26.0 or newer
83 | }
84 |
85 | public extension RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
86 | func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
87 | func ruiDrag(_ entity: Entity, dragDidUpdate ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
:
89 | func ruiDragCancelled(_ entity: Entity) {}
90 | func ruiDrag(_ entity: Entity, selectedDidUpdate isSelected: Bool) {}
91 | func ruiDrag(_ entity: Entity, touchUpInsideDidComplete ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
92 | func ruiDrag(_ entity: Entity, touchUpInsideDidFail ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
93 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift:92:28: error: 'Entity' is only available in tvOS 26.0 or newer
83 | }
84 |
85 | public extension RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
86 | func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
87 | func ruiDrag(_ entity: Entity, dragDidUpdate ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
:
90 | func ruiDrag(_ entity: Entity, selectedDidUpdate isSelected: Bool) {}
91 | func ruiDrag(_ entity: Entity, touchUpInsideDidComplete ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
92 | func ruiDrag(_ entity: Entity, touchUpInsideDidFail ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {}
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
93 | }
94 |
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:18:25: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A RealityUI Slider to be added to a RealityKit scene.
18 | public class RUISlider: Entity, HasSlider, HasModel {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing class
19 |
20 | /// Called whenever the slider value updates.
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:82:35: error: 'Entity' is only available in tvOS 26.0 or newer
79 | }
80 |
81 | extension RUISlider: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
82 | public func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
83 | self.sliderUpdateCallback?(self, .started)
84 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:85:35: error: 'Entity' is only available in tvOS 26.0 or newer
79 | }
80 |
81 | extension RUISlider: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
82 | public func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
83 | self.sliderUpdateCallback?(self, .started)
84 | }
85 | public func ruiDrag(_ entity: Entity, dragDidUpdate ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
86 | var newPercent = 0.5 - entity.position.x / sliderLength
87 | self.clampSlideValue(&newPercent)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:93:35: error: 'Entity' is only available in tvOS 26.0 or newer
79 | }
80 |
81 | extension RUISlider: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
82 | public func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
83 | self.sliderUpdateCallback?(self, .started)
:
91 | if self.isContinuous { self.sliderUpdateCallback?(self, .updated) }
92 | }
93 | public func ruiDrag(_ entity: Entity, dragDidEnd ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
94 | self.sliderUpdateCallback?(self, .ended)
95 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:105:45: error: 'Material' is only available in tvOS 26.0 or newer
97 |
98 | /// A collection of resources that create the visual appearance a RealityUI Slider, ``RUISlider``.
99 | public struct SliderComponent: Component {
| `- note: add '@available' attribute to enclosing struct
100 | /// Length of the slider. The default is 10m.
101 | public internal(set) var length: Float
:
103 | public internal(set) var value: Float
104 | /// The color set to the material on the left side of the slider. Default `.systemBlue`
105 | public internal(set) var minTrackColor: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
106 | /// The color set to the material on the right side of the slider. Default `.systemGray`
107 | public internal(set) var maxTrackColor: Material.Color
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:107:45: error: 'Material' is only available in tvOS 26.0 or newer
97 |
98 | /// A collection of resources that create the visual appearance a RealityUI Slider, ``RUISlider``.
99 | public struct SliderComponent: Component {
| `- note: add '@available' attribute to enclosing struct
100 | /// Length of the slider. The default is 10m.
101 | public internal(set) var length: Float
:
105 | public internal(set) var minTrackColor: Material.Color
106 | /// The color set to the material on the right side of the slider. Default `.systemGray`
107 | public internal(set) var maxTrackColor: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
108 | /// The color set to the material of the thumb. Default `.white`
109 | public internal(set) var thumbColor: Material.Color
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:109:42: error: 'Material' is only available in tvOS 26.0 or newer
97 |
98 | /// A collection of resources that create the visual appearance a RealityUI Slider, ``RUISlider``.
99 | public struct SliderComponent: Component {
| `- note: add '@available' attribute to enclosing struct
100 | /// Length of the slider. The default is 10m.
101 | public internal(set) var length: Float
:
107 | public internal(set) var maxTrackColor: Material.Color
108 | /// The color set to the material of the thumb. Default `.white`
109 | public internal(set) var thumbColor: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
110 | /// A Boolean value indicating whether changes in the slider’s value generate continuous update events.
111 | /// If set to true, you can receive all changes to the value,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:156:24: error: 'Material' is only available in tvOS 26.0 or newer
97 |
98 | /// A collection of resources that create the visual appearance a RealityUI Slider, ``RUISlider``.
99 | public struct SliderComponent: Component {
| `- note: add '@available' attribute to enclosing struct
100 | /// Length of the slider. The default is 10m.
101 | public internal(set) var length: Float
:
151 | /// continuous update events. Default true.
152 | /// - steps: An Integer value indicating how many steps the slider should have.
153 | public init(
| `- note: add '@available' attribute to enclosing initializer
154 | length: Float = 10,
155 | startingValue: Float = 0,
156 | minTrackColor: Material.Color = .systemBlue,
| `- error: 'Material' is only available in tvOS 26.0 or newer
157 | maxTrackColor: Material.Color = .systemGray,
158 | thumbColor: Material.Color = .white,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:157:24: error: 'Material' is only available in tvOS 26.0 or newer
97 |
98 | /// A collection of resources that create the visual appearance a RealityUI Slider, ``RUISlider``.
99 | public struct SliderComponent: Component {
| `- note: add '@available' attribute to enclosing struct
100 | /// Length of the slider. The default is 10m.
101 | public internal(set) var length: Float
:
151 | /// continuous update events. Default true.
152 | /// - steps: An Integer value indicating how many steps the slider should have.
153 | public init(
| `- note: add '@available' attribute to enclosing initializer
154 | length: Float = 10,
155 | startingValue: Float = 0,
156 | minTrackColor: Material.Color = .systemBlue,
157 | maxTrackColor: Material.Color = .systemGray,
| `- error: 'Material' is only available in tvOS 26.0 or newer
158 | thumbColor: Material.Color = .white,
159 | thickness: Float = 0.2,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:158:21: error: 'Material' is only available in tvOS 26.0 or newer
97 |
98 | /// A collection of resources that create the visual appearance a RealityUI Slider, ``RUISlider``.
99 | public struct SliderComponent: Component {
| `- note: add '@available' attribute to enclosing struct
100 | /// Length of the slider. The default is 10m.
101 | public internal(set) var length: Float
:
151 | /// continuous update events. Default true.
152 | /// - steps: An Integer value indicating how many steps the slider should have.
153 | public init(
| `- note: add '@available' attribute to enclosing initializer
154 | length: Float = 10,
155 | startingValue: Float = 0,
156 | minTrackColor: Material.Color = .systemBlue,
157 | maxTrackColor: Material.Color = .systemGray,
158 | thumbColor: Material.Color = .white,
| `- error: 'Material' is only available in tvOS 26.0 or newer
159 | thickness: Float = 0.2,
160 | isContinuous: Bool = true,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:250:11: error: 'Material' is only available in tvOS 26.0 or newer
181 | }
182 |
183 | public extension HasSlider {
| `- note: add '@available' attribute to enclosing extension
184 |
185 | internal var slider: SliderComponent {
:
246 | }
247 |
248 | internal func getMaterials(
| `- note: add '@available' attribute to enclosing instance method
249 | for part: SliderComponent.UIPart
250 | ) -> [Material] {
| `- error: 'Material' is only available in tvOS 26.0 or newer
251 | switch part {
252 | case .empty:
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:269:60: error: 'ModelEntity' is only available in tvOS 26.0 or newer
181 | }
182 |
183 | public extension HasSlider {
| `- note: add '@available' attribute to enclosing extension
184 |
185 | internal var slider: SliderComponent {
:
267 | }
268 |
269 | private func getModel(part: SliderComponent.UIPart) -> ModelEntity? {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
270 | return (self as HasRUI).getModel(part: part.rawValue)
271 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift:272:60: error: 'ModelEntity' is only available in tvOS 26.0 or newer
181 | }
182 |
183 | public extension HasSlider {
| `- note: add '@available' attribute to enclosing extension
184 |
185 | internal var slider: SliderComponent {
:
270 | return (self as HasRUI).getModel(part: part.rawValue)
271 | }
272 | private func addModel(part: SliderComponent.UIPart) -> ModelEntity {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
273 | return (self as HasRUI).addModel(part: part.rawValue)
274 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:21:29: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A new RealityUI Stepper to be added to your RealityKit scene.
18 | public class RUIStepper: Entity, HasRUIMaterials, HasStepper {
| `- note: add '@available' attribute to enclosing class
19 |
20 | /// Stepper's positive button has been pressed
21 | public var upTrigger: ((Entity) -> Void)?
| `- error: 'Entity' is only available in tvOS 26.0 or newer
22 | /// Stepper's negative button has been pressed
23 | public var downTrigger: ((Entity) -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:23:31: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A new RealityUI Stepper to be added to your RealityKit scene.
18 | public class RUIStepper: Entity, HasRUIMaterials, HasStepper {
| `- note: add '@available' attribute to enclosing class
19 |
20 | /// Stepper's positive button has been pressed
21 | public var upTrigger: ((Entity) -> Void)?
22 | /// Stepper's negative button has been pressed
23 | public var downTrigger: ((Entity) -> Void)?
| `- error: 'Entity' is only available in tvOS 26.0 or newer
24 |
25 | /// Creates a RealityUI Stepper entity with optional ``StepperComponent``, ``RUIComponent``,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:35:22: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A new RealityUI Stepper to be added to your RealityKit scene.
18 | public class RUIStepper: Entity, HasRUIMaterials, HasStepper {
| `- note: add '@available' attribute to enclosing class
19 |
20 | /// Stepper's positive button has been pressed
:
30 | /// - upTrigger: Callback function to receive updates then the up button has been clicked.
31 | /// - downTrigger: Callback function to receive updates then the down button has been clicked.
32 | public init(
| `- note: add '@available' attribute to enclosing initializer
33 | stepper: StepperComponent? = nil,
34 | rui: RUIComponent? = nil,
35 | upTrigger: ((Entity) -> Void)? = nil,
| `- error: 'Entity' is only available in tvOS 26.0 or newer
36 | downTrigger: ((Entity) -> Void)? = nil
37 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:36:24: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A new RealityUI Stepper to be added to your RealityKit scene.
18 | public class RUIStepper: Entity, HasRUIMaterials, HasStepper {
| `- note: add '@available' attribute to enclosing class
19 |
20 | /// Stepper's positive button has been pressed
:
30 | /// - upTrigger: Callback function to receive updates then the up button has been clicked.
31 | /// - downTrigger: Callback function to receive updates then the down button has been clicked.
32 | public init(
| `- note: add '@available' attribute to enclosing initializer
33 | stepper: StepperComponent? = nil,
34 | rui: RUIComponent? = nil,
35 | upTrigger: ((Entity) -> Void)? = nil,
36 | downTrigger: ((Entity) -> Void)? = nil
| `- error: 'Entity' is only available in tvOS 26.0 or newer
37 | ) {
38 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:54:22: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A new RealityUI Stepper to be added to your RealityKit scene.
18 | public class RUIStepper: Entity, HasRUIMaterials, HasStepper {
| `- note: add '@available' attribute to enclosing class
19 |
20 | /// Stepper's positive button has been pressed
:
50 | /// - upTrigger: Callback function to receive updates then the positive button has been clicked.
51 | /// - downTrigger: Callback function to receive updates then the negative button has been clicked.
52 | public convenience init(
| `- note: add '@available' attribute to enclosing initializer
53 | style: StepperComponent.Style,
54 | upTrigger: ((Entity) -> Void)? = nil,
| `- error: 'Entity' is only available in tvOS 26.0 or newer
55 | downTrigger: ((Entity) -> Void)? = nil
56 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:55:24: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A new RealityUI Stepper to be added to your RealityKit scene.
18 | public class RUIStepper: Entity, HasRUIMaterials, HasStepper {
| `- note: add '@available' attribute to enclosing class
19 |
20 | /// Stepper's positive button has been pressed
:
50 | /// - upTrigger: Callback function to receive updates then the positive button has been clicked.
51 | /// - downTrigger: Callback function to receive updates then the negative button has been clicked.
52 | public convenience init(
| `- note: add '@available' attribute to enclosing initializer
53 | style: StepperComponent.Style,
54 | upTrigger: ((Entity) -> Void)? = nil,
55 | downTrigger: ((Entity) -> Void)? = nil
| `- error: 'Entity' is only available in tvOS 26.0 or newer
56 | ) {
57 | self.init(
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:69:22: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A new RealityUI Stepper to be added to your RealityKit scene.
18 | public class RUIStepper: Entity, HasRUIMaterials, HasStepper {
| `- note: add '@available' attribute to enclosing class
19 |
20 | /// Stepper's positive button has been pressed
:
66 | /// - upTrigger: Callback function to receive updates then the plus button has been clicked.
67 | /// - downTrigger: Callback function to receive updates then the minus button has been clicked.
68 | public convenience init(
| `- note: add '@available' attribute to enclosing initializer
69 | upTrigger: ((Entity) -> Void)? = nil, downTrigger: ((Entity) -> Void)? = nil
| `- error: 'Entity' is only available in tvOS 26.0 or newer
70 | ) {
71 | self.init(stepper: nil, upTrigger: upTrigger, downTrigger: downTrigger)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:69:62: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A new RealityUI Stepper to be added to your RealityKit scene.
18 | public class RUIStepper: Entity, HasRUIMaterials, HasStepper {
| `- note: add '@available' attribute to enclosing class
19 |
20 | /// Stepper's positive button has been pressed
:
66 | /// - upTrigger: Callback function to receive updates then the plus button has been clicked.
67 | /// - downTrigger: Callback function to receive updates then the minus button has been clicked.
68 | public convenience init(
| `- note: add '@available' attribute to enclosing initializer
69 | upTrigger: ((Entity) -> Void)? = nil, downTrigger: ((Entity) -> Void)? = nil
| `- error: 'Entity' is only available in tvOS 26.0 or newer
70 | ) {
71 | self.init(stepper: nil, upTrigger: upTrigger, downTrigger: downTrigger)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:18:26: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A new RealityUI Stepper to be added to your RealityKit scene.
18 | public class RUIStepper: Entity, HasRUIMaterials, HasStepper {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing class
19 |
20 | /// Stepper's positive button has been pressed
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:80:35: error: 'Entity' is only available in tvOS 26.0 or newer
77 | }
78 |
79 | extension RUIStepper: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
80 | public func ruiDrag(_ entity: Entity, selectedDidUpdate isSelected: Bool) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
81 | entity.scale = isSelected ? .init(repeating: 0.95) : .one
82 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:84:19: error: 'Entity' is only available in tvOS 26.0 or newer
77 | }
78 |
79 | extension RUIStepper: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
80 | public func ruiDrag(_ entity: Entity, selectedDidUpdate isSelected: Bool) {
81 | entity.scale = isSelected ? .init(repeating: 0.95) : .one
82 | }
83 | public func ruiDrag(
| `- note: add '@available' attribute to enclosing instance method
84 | _ entity: Entity,
| `- error: 'Entity' is only available in tvOS 26.0 or newer
85 | touchUpInsideDidComplete ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)
86 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:98:34: error: 'Material' is only available in tvOS 26.0 or newer
94 |
95 | /// A collection of resources that create the visual appearance a RealityUI Stepper.
96 | public struct StepperComponent: Component {
| `- note: add '@available' attribute to enclosing struct
97 | /// Background color of the stepper.
98 | internal var backgroundTint: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
99 | /// Background color of the stepper.
100 | internal var separatorTint: Material.Color
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:100:33: error: 'Material' is only available in tvOS 26.0 or newer
94 |
95 | /// A collection of resources that create the visual appearance a RealityUI Stepper.
96 | public struct StepperComponent: Component {
| `- note: add '@available' attribute to enclosing struct
97 | /// Background color of the stepper.
98 | internal var backgroundTint: Material.Color
99 | /// Background color of the stepper.
100 | internal var separatorTint: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
101 | /// Color of the buttons inside a stepper, default `.systemBlue`.
102 | internal var buttonTint: Material.Color
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:102:30: error: 'Material' is only available in tvOS 26.0 or newer
94 |
95 | /// A collection of resources that create the visual appearance a RealityUI Stepper.
96 | public struct StepperComponent: Component {
| `- note: add '@available' attribute to enclosing struct
97 | /// Background color of the stepper.
98 | internal var backgroundTint: Material.Color
:
100 | internal var separatorTint: Material.Color
101 | /// Color of the buttons inside a stepper, default `.systemBlue`.
102 | internal var buttonTint: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
103 | /// Color of the second button inside a stepper. If nil, then buttonTint will be used.
104 | internal var secondButtonTint: Material.Color?
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:104:36: error: 'Material' is only available in tvOS 26.0 or newer
94 |
95 | /// A collection of resources that create the visual appearance a RealityUI Stepper.
96 | public struct StepperComponent: Component {
| `- note: add '@available' attribute to enclosing struct
97 | /// Background color of the stepper.
98 | internal var backgroundTint: Material.Color
:
102 | internal var buttonTint: Material.Color
103 | /// Color of the second button inside a stepper. If nil, then buttonTint will be used.
104 | internal var secondButtonTint: Material.Color?
| `- error: 'Material' is only available in tvOS 26.0 or newer
105 | /// Style of the stepper.
106 | internal var style: Style
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:206:65: error: 'ModelEntity' is only available in tvOS 26.0 or newer
203 | }
204 |
205 | internal extension HasStepper {
| `- note: add '@available' attribute to enclosing extension
206 | fileprivate func getModel(part: StepperComponent.UIPart) -> ModelEntity? {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
207 | return (self as HasRUI).getModel(part: part.rawValue)
208 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:209:65: error: 'ModelEntity' is only available in tvOS 26.0 or newer
203 | }
204 |
205 | internal extension HasStepper {
| `- note: add '@available' attribute to enclosing extension
206 | fileprivate func getModel(part: StepperComponent.UIPart) -> ModelEntity? {
207 | return (self as HasRUI).getModel(part: part.rawValue)
208 | }
209 | fileprivate func addModel(part: StepperComponent.UIPart) -> ModelEntity {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
210 | return (self as HasRUI).addModel(part: part.rawValue)
211 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:214:11: error: 'Material' is only available in tvOS 26.0 or newer
203 | }
204 |
205 | internal extension HasStepper {
| `- note: add '@available' attribute to enclosing extension
206 | fileprivate func getModel(part: StepperComponent.UIPart) -> ModelEntity? {
207 | return (self as HasRUI).getModel(part: part.rawValue)
:
210 | return (self as HasRUI).addModel(part: part.rawValue)
211 | }
212 | func getMaterials(
| `- note: add '@available' attribute to enclosing instance method
213 | for part: StepperComponent.UIPart
214 | ) -> [Material] {
| `- error: 'Material' is only available in tvOS 26.0 or newer
215 | switch part {
216 | case .background: [self.getMaterial(with: stepper.backgroundTint)]
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:269:46: error: 'ModelEntity' is only available in tvOS 26.0 or newer
203 | }
204 |
205 | internal extension HasStepper {
| `- note: add '@available' attribute to enclosing extension
206 | fileprivate func getModel(part: StepperComponent.UIPart) -> ModelEntity? {
207 | return (self as HasRUI).getModel(part: part.rawValue)
:
267 | }
268 |
269 | private func addArrowModels(_ leftModel: ModelEntity, _ rightModel: ModelEntity) {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
270 | // Setup parameters
271 | let turnAngle: Float = .pi / 6
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift:269:73: error: 'ModelEntity' is only available in tvOS 26.0 or newer
203 | }
204 |
205 | internal extension HasStepper {
| `- note: add '@available' attribute to enclosing extension
206 | fileprivate func getModel(part: StepperComponent.UIPart) -> ModelEntity? {
207 | return (self as HasRUI).getModel(part: part.rawValue)
:
267 | }
268 |
269 | private func addArrowModels(_ leftModel: ModelEntity, _ rightModel: ModelEntity) {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
270 | // Setup parameters
271 | let turnAngle: Float = .pi / 6
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:22:25: error: 'Entity' is only available in tvOS 26.0 or newer
20 |
21 | /// A RealityUI Switch to be added to a RealityKit scene.
22 | public class RUISwitch: Entity, HasSwitch {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing class
23 | var thumbCompressed = false
24 | func compressThumb() {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:82:35: error: 'Entity' is only available in tvOS 26.0 or newer
79 | }
80 |
81 | extension RUISwitch: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
82 | public func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
83 | guard entity.name == "thumb" else { return }
84 |
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:89:35: error: 'Entity' is only available in tvOS 26.0 or newer
79 | }
80 |
81 | extension RUISwitch: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
82 | public func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
83 | guard entity.name == "thumb" else { return }
:
87 | self.compressThumb()
88 | }
89 | public func ruiDrag(_ entity: Entity, dragDidUpdate ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
90 | guard entity.name == "thumb" else { return }
91 |
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:95:35: error: 'Entity' is only available in tvOS 26.0 or newer
79 | }
80 |
81 | extension RUISwitch: RUIDragDelegate {
| `- note: add '@available' attribute to enclosing extension
82 | public func ruiDrag(_ entity: Entity, dragDidStart ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
83 | guard entity.name == "thumb" else { return }
:
93 | self.lastThumbPos = entity.position
94 | }
95 | public func ruiDrag(_ entity: Entity, dragDidEnd ray: (origin: SIMD3<Float>, direction: SIMD3<Float>)) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
96 | guard entity.name == "thumb" else { return }
97 |
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:122:18: error: 'Material' is only available in tvOS 26.0 or newer
112 |
113 | /// A collection of resources that create the visual appearance a RealityUI Switch, ``RUISwitch``.
114 | public struct SwitchComponent: Component {
| `- note: add '@available' attribute to enclosing struct
115 | /// A Boolean value that determines the off/on state of the switch. Default to `false`, meaning off.
116 | var isOn: Bool
:
120 | let border: Float
121 | /// Color of the inner capsule when the switch is set to `off`. Default `Material.Color.systemGreen`
122 | let onColor: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
123 | /// Color of the inner capsule when the switch is set to `on`. Default `Material.Color.lightGray`
124 | let offColor: Material.Color
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:124:19: error: 'Material' is only available in tvOS 26.0 or newer
112 |
113 | /// A collection of resources that create the visual appearance a RealityUI Switch, ``RUISwitch``.
114 | public struct SwitchComponent: Component {
| `- note: add '@available' attribute to enclosing struct
115 | /// A Boolean value that determines the off/on state of the switch. Default to `false`, meaning off.
116 | var isOn: Bool
:
122 | let onColor: Material.Color
123 | /// Color of the inner capsule when the switch is set to `on`. Default `Material.Color.lightGray`
124 | let offColor: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
125 | /// Color of the outer border. Default `Material.Color.black`
126 | let borderColor: Material.Color
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:126:22: error: 'Material' is only available in tvOS 26.0 or newer
112 |
113 | /// A collection of resources that create the visual appearance a RealityUI Switch, ``RUISwitch``.
114 | public struct SwitchComponent: Component {
| `- note: add '@available' attribute to enclosing struct
115 | /// A Boolean value that determines the off/on state of the switch. Default to `false`, meaning off.
116 | var isOn: Bool
:
124 | let offColor: Material.Color
125 | /// Color of the outer border. Default `Material.Color.black`
126 | let borderColor: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
127 | /// Color of the thumb. Default white.
128 | let thumbColor: Material.Color
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:128:21: error: 'Material' is only available in tvOS 26.0 or newer
112 |
113 | /// A collection of resources that create the visual appearance a RealityUI Switch, ``RUISwitch``.
114 | public struct SwitchComponent: Component {
| `- note: add '@available' attribute to enclosing struct
115 | /// A Boolean value that determines the off/on state of the switch. Default to `false`, meaning off.
116 | var isOn: Bool
:
126 | let borderColor: Material.Color
127 | /// Color of the thumb. Default white.
128 | let thumbColor: Material.Color
| `- error: 'Material' is only available in tvOS 26.0 or newer
129 | /// Length of the toggle, not customisable for now.
130 | internal let length: Float = 55 / 34
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:148:18: error: 'Material' is only available in tvOS 26.0 or newer
112 |
113 | /// A collection of resources that create the visual appearance a RealityUI Switch, ``RUISwitch``.
114 | public struct SwitchComponent: Component {
| `- note: add '@available' attribute to enclosing struct
115 | /// A Boolean value that determines the off/on state of the switch. Default to `false`, meaning off.
116 | var isOn: Bool
:
144 | /// - borderColor: Color of the outer border. Default `Material.Color.black`
145 | /// - thumbColor: Color of the thumb. Default white.
146 | public init(
| `- note: add '@available' attribute to enclosing initializer
147 | isOn: Bool = false,
148 | onColor: Material.Color = .systemGreen,
| `- error: 'Material' is only available in tvOS 26.0 or newer
149 | offColor: Material.Color = .lightGray,
150 | padding: Float = 0.05,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:149:19: error: 'Material' is only available in tvOS 26.0 or newer
112 |
113 | /// A collection of resources that create the visual appearance a RealityUI Switch, ``RUISwitch``.
114 | public struct SwitchComponent: Component {
| `- note: add '@available' attribute to enclosing struct
115 | /// A Boolean value that determines the off/on state of the switch. Default to `false`, meaning off.
116 | var isOn: Bool
:
144 | /// - borderColor: Color of the outer border. Default `Material.Color.black`
145 | /// - thumbColor: Color of the thumb. Default white.
146 | public init(
| `- note: add '@available' attribute to enclosing initializer
147 | isOn: Bool = false,
148 | onColor: Material.Color = .systemGreen,
149 | offColor: Material.Color = .lightGray,
| `- error: 'Material' is only available in tvOS 26.0 or newer
150 | padding: Float = 0.05,
151 | border: Float = 0.05,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:152:22: error: 'Material' is only available in tvOS 26.0 or newer
112 |
113 | /// A collection of resources that create the visual appearance a RealityUI Switch, ``RUISwitch``.
114 | public struct SwitchComponent: Component {
| `- note: add '@available' attribute to enclosing struct
115 | /// A Boolean value that determines the off/on state of the switch. Default to `false`, meaning off.
116 | var isOn: Bool
:
144 | /// - borderColor: Color of the outer border. Default `Material.Color.black`
145 | /// - thumbColor: Color of the thumb. Default white.
146 | public init(
| `- note: add '@available' attribute to enclosing initializer
147 | isOn: Bool = false,
148 | onColor: Material.Color = .systemGreen,
:
150 | padding: Float = 0.05,
151 | border: Float = 0.05,
152 | borderColor: Material.Color = .black,
| `- error: 'Material' is only available in tvOS 26.0 or newer
153 | thumbColor: Material.Color = .white
154 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:153:21: error: 'Material' is only available in tvOS 26.0 or newer
112 |
113 | /// A collection of resources that create the visual appearance a RealityUI Switch, ``RUISwitch``.
114 | public struct SwitchComponent: Component {
| `- note: add '@available' attribute to enclosing struct
115 | /// A Boolean value that determines the off/on state of the switch. Default to `false`, meaning off.
116 | var isOn: Bool
:
144 | /// - borderColor: Color of the outer border. Default `Material.Color.black`
145 | /// - thumbColor: Color of the thumb. Default white.
146 | public init(
| `- note: add '@available' attribute to enclosing initializer
147 | isOn: Bool = false,
148 | onColor: Material.Color = .systemGreen,
:
151 | border: Float = 0.05,
152 | borderColor: Material.Color = .black,
153 | thumbColor: Material.Color = .white
| `- error: 'Material' is only available in tvOS 26.0 or newer
154 | ) {
155 | assert(padding > 0, "Padding must be positive")
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:170:26: error: 'Material' is only available in tvOS 26.0 or newer
112 |
113 | /// A collection of resources that create the visual appearance a RealityUI Switch, ``RUISwitch``.
114 | public struct SwitchComponent: Component {
| `- note: add '@available' attribute to enclosing struct
115 | /// A Boolean value that determines the off/on state of the switch. Default to `false`, meaning off.
116 | var isOn: Bool
:
168 | /// - onColor: Color of the inner capsule when the switch is set to `on`.
169 | /// - offColor: Color of the inner capsule when the switch is set to `off`.
170 | public init(onColor: Material.Color, offColor: Material.Color) {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing initializer
171 | self.init(isOn: false, onColor: onColor, offColor: offColor)
172 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:170:52: error: 'Material' is only available in tvOS 26.0 or newer
112 |
113 | /// A collection of resources that create the visual appearance a RealityUI Switch, ``RUISwitch``.
114 | public struct SwitchComponent: Component {
| `- note: add '@available' attribute to enclosing struct
115 | /// A Boolean value that determines the off/on state of the switch. Default to `false`, meaning off.
116 | var isOn: Bool
:
168 | /// - onColor: Color of the inner capsule when the switch is set to `on`.
169 | /// - offColor: Color of the inner capsule when the switch is set to `off`.
170 | public init(onColor: Material.Color, offColor: Material.Color) {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing initializer
171 | self.init(isOn: false, onColor: onColor, offColor: offColor)
172 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:223:22: error: 'Material' is only available in tvOS 26.0 or newer
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
221 | }
222 | /// Color of the outer border. Default `Material.Color.black`
223 | var borderColor: Material.Color { self.switchness.borderColor }
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
224 | /// Color of the inner capsule when the switch is set to off. Default `Material.Color.systemGreen`
225 | var onColor: Material.Color { self.switchness.onColor }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:225:18: error: 'Material' is only available in tvOS 26.0 or newer
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
223 | var borderColor: Material.Color { self.switchness.borderColor }
224 | /// Color of the inner capsule when the switch is set to off. Default `Material.Color.systemGreen`
225 | var onColor: Material.Color { self.switchness.onColor }
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
226 | /// Color of the inner capsule when the switch is set to on. Default `Material.Color.lightGray`
227 | var offColor: Material.Color { self.switchness.offColor }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:227:19: error: 'Material' is only available in tvOS 26.0 or newer
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
225 | var onColor: Material.Color { self.switchness.onColor }
226 | /// Color of the inner capsule when the switch is set to on. Default `Material.Color.lightGray`
227 | var offColor: Material.Color { self.switchness.offColor }
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
228 | internal var togglePos: SIMD3<Float> {
229 | [(isOn ? -1 : 1) * self.toggleXSpan, 0, 0]
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:232:29: error: 'Material' is only available in tvOS 26.0 or newer
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
230 | }
231 | fileprivate var toggleXSpan: Float { (self.switchness.length - 1) / 2 }
232 | private var thumbColor: Material.Color {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
233 | self.switchness.thumbColor
234 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:236:64: error: 'ModelEntity' is only available in tvOS 26.0 or newer
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
234 | }
235 |
236 | fileprivate func getModel(part: SwitchComponent.UIPart) -> ModelEntity? {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
237 | return (self as HasRUI).getModel(part: part.rawValue)
238 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:239:60: error: 'ModelEntity' is only available in tvOS 26.0 or newer
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
237 | return (self as HasRUI).getModel(part: part.rawValue)
238 | }
239 | private func addModel(part: SwitchComponent.UIPart) -> ModelEntity {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
240 | return (self as HasRUI).addModel(part: part.rawValue)
241 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift:289:11: error: 'Material' is only available in tvOS 26.0 or newer
173 | }
174 |
175 | public extension HasSwitch {
| `- note: add '@available' attribute to enclosing extension
176 |
177 | /// The switch properties that defines the visual appearance and state.
:
285 | }
286 |
287 | internal func getMaterials(
| `- note: add '@available' attribute to enclosing instance method
288 | for part: SwitchComponent.UIPart
289 | ) -> [Material] {
| `- error: 'Material' is only available in tvOS 26.0 or newer
290 | switch part {
291 | case .background: [self.getMaterial(with: self.isOn ? switchness.onColor : switchness.offColor)]
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITapComponent.swift:13:35: error: 'HasCollision' is only available in tvOS 26.0 or newer
11 | /// An interface used for entities which have actions upon being clicked
12 | @available(*, deprecated, message: "Please use RUITapComponent instead.")
13 | public protocol HasClick: HasRUI, HasCollision {
| | `- error: 'HasCollision' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing protocol
14 | /// Action to be applied on successfully tapping an Entity.
15 | var tapAction: ((HasClick, SIMD3<Float>?) -> Void)? {get set}
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITapComponent.swift:43:26: error: 'Entity' is only available in tvOS 26.0 or newer
35 | /// })
36 | /// ```
37 | public struct RUITapComponent: Component {
| `- note: add '@available' attribute to enclosing struct
38 | /// The action to be triggered when the entity is tapped.
39 | ///
:
41 | /// - Entity: The entity that was tapped.
42 | /// - SIMD3<Float>?: The world position where the entity was tapped, or `nil` if not available.
43 | public var action: ((Entity, SIMD3<Float>?) -> Void)
| `- error: 'Entity' is only available in tvOS 26.0 or newer
44 |
45 | /// Create a new TapActionComponent object.
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITapComponent.swift:47:37: error: 'Entity' is only available in tvOS 26.0 or newer
35 | /// })
36 | /// ```
37 | public struct RUITapComponent: Component {
| `- note: add '@available' attribute to enclosing struct
38 | /// The action to be triggered when the entity is tapped.
39 | ///
:
45 | /// Create a new TapActionComponent object.
46 | /// - Parameter action: The action to be triggered when the entity is tapped.
47 | public init(action: @escaping ((Entity, SIMD3<Float>?) -> Void)) {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing initializer
48 | self.action = action
49 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:29:15: error: 'MeshResource' is only available in tvOS 26.0 or newer
16 |
17 | /// A RealityUI Text object to be added to a RealityKit scene.
18 | open class RUIText: Entity, HasText {
| `- note: add '@available' attribute to enclosing class
19 | /// Create a new RUIText object, adding text to your RealityKit scene.
20 | /// - Parameters:
:
25 | /// - extrusion: The extent, in meters, of the extruded text in the z-axis direction.
26 | /// - color: The color applied to the text mesh's material.
27 | public convenience init(
| `- note: add '@available' attribute to enclosing initializer
28 | with text: String, width: CGFloat = 0, height: CGFloat = 0,
29 | font: MeshResource.Font = RUIText.mediumFont, extrusion: Float = 0.1,
| `- error: 'MeshResource' is only available in tvOS 26.0 or newer
30 | color: Material.Color = .green
31 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:30:16: error: 'Material' is only available in tvOS 26.0 or newer
16 |
17 | /// A RealityUI Text object to be added to a RealityKit scene.
18 | open class RUIText: Entity, HasText {
| `- note: add '@available' attribute to enclosing class
19 | /// Create a new RUIText object, adding text to your RealityKit scene.
20 | /// - Parameters:
:
25 | /// - extrusion: The extent, in meters, of the extruded text in the z-axis direction.
26 | /// - color: The color applied to the text mesh's material.
27 | public convenience init(
| `- note: add '@available' attribute to enclosing initializer
28 | with text: String, width: CGFloat = 0, height: CGFloat = 0,
29 | font: MeshResource.Font = RUIText.mediumFont, extrusion: Float = 0.1,
30 | color: Material.Color = .green
| `- error: 'Material' is only available in tvOS 26.0 or newer
31 | ) {
32 | let textComponent = TextComponent(
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:29:43: error: type 'RUIText' has no member 'mediumFont'
27 | public convenience init(
28 | with text: String, width: CGFloat = 0, height: CGFloat = 0,
29 | font: MeshResource.Font = RUIText.mediumFont, extrusion: Float = 0.1,
| `- error: type 'RUIText' has no member 'mediumFont'
30 | color: Material.Color = .green
31 | ) {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:47:22: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A RealityUI Text object to be added to a RealityKit scene.
18 | open class RUIText: Entity, HasText {
| `- note: add '@available' attribute to enclosing class
19 | /// Create a new RUIText object, adding text to your RealityKit scene.
20 | /// - Parameters:
:
43 | /// - rui: Details about the RealityUI Entity.
44 | /// - tapAction: callback function to receive updates touchUpInside the RealityUI Text.
45 | required public init(
| `- note: add '@available' attribute to enclosing initializer
46 | textComponent: TextComponent? = nil, rui: RUIComponent? = nil,
47 | tapAction: ((Entity, SIMD3<Float>?) -> Void)? = nil
| `- error: 'Entity' is only available in tvOS 26.0 or newer
48 | ) {
49 | super.init()
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:18:21: error: 'Entity' is only available in tvOS 26.0 or newer
16 |
17 | /// A RealityUI Text object to be added to a RealityKit scene.
18 | open class RUIText: Entity, HasText {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing class
19 | /// Create a new RUIText object, adding text to your RealityKit scene.
20 | /// - Parameters:
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:76:22: error: 'MeshResource' is only available in tvOS 26.0 or newer
70 |
71 | /// Component containing all the data for the text to be rendered.
72 | public struct TextComponent: Component {
| `- note: add '@available' attribute to enclosing struct
73 | /// The text to render.
74 | public var text: String?
75 | /// The font to use.
76 | public var font: MeshResource.Font = .systemFont(ofSize: 0.1)
| `- error: 'MeshResource' is only available in tvOS 26.0 or newer
77 | /// The maximum width, in meters, of the text frame in the local coordinate system.
78 | /// Set to `0` (default) for unbounded.
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:112:36: error: 'MeshResource' is only available in tvOS 26.0 or newer
70 |
71 | /// Component containing all the data for the text to be rendered.
72 | public struct TextComponent: Component {
| `- note: add '@available' attribute to enclosing struct
73 | /// The text to render.
74 | public var text: String?
:
109 | /// - extrusion: The extent, in meters, of the extruded text in the z-axis direction.
110 | /// - lineBreakMode: How the text should wrap when reaching a frame boundary.
111 | public init(
| `- note: add '@available' attribute to enclosing initializer
112 | text: String? = nil, font: MeshResource.Font? = nil,
| `- error: 'MeshResource' is only available in tvOS 26.0 or newer
113 | width: CGFloat? = nil, height: CGFloat? = nil, color: Material.Color? = nil,
114 | alignment: CTTextAlignment? = nil, extrusion: Float? = nil,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:113:63: error: 'Material' is only available in tvOS 26.0 or newer
70 |
71 | /// Component containing all the data for the text to be rendered.
72 | public struct TextComponent: Component {
| `- note: add '@available' attribute to enclosing struct
73 | /// The text to render.
74 | public var text: String?
:
109 | /// - extrusion: The extent, in meters, of the extruded text in the z-axis direction.
110 | /// - lineBreakMode: How the text should wrap when reaching a frame boundary.
111 | public init(
| `- note: add '@available' attribute to enclosing initializer
112 | text: String? = nil, font: MeshResource.Font? = nil,
113 | width: CGFloat? = nil, height: CGFloat? = nil, color: Material.Color? = nil,
| `- error: 'Material' is only available in tvOS 26.0 or newer
114 | alignment: CTTextAlignment? = nil, extrusion: Float? = nil,
115 | lineBreakMode: CTLineBreakMode? = nil
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:149:29: error: 'ModelComponent' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
147 |
148 | /// ModelComponent containig the visual text
149 | internal var textModel: ModelComponent? {
| | `- error: 'ModelComponent' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
150 | get { self.getModel(part: .textEntity)?.model }
151 | set { self.addModel(part: .textEntity).model = newValue }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:155:15: error: 'MeshResource' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
153 |
154 | /// The font to use.
155 | var font: MeshResource.Font {
| | `- error: 'MeshResource' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
156 | self.textComponent.font
157 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:159:16: error: 'Material' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
157 | }
158 | /// The color of the text material.
159 | var color: Material.Color {
| | `- error: 'Material' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
160 | self.textComponent.color
161 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:163:58: error: 'ModelEntity' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
161 | }
162 |
163 | private func getModel(part: TextComponent.UIPart) -> ModelEntity? {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
164 | return (self as HasRUI).getModel(part: part.rawValue)
165 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:167:59: error: 'ModelEntity' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
165 | }
166 |
167 | internal func addModel(part: TextComponent.UIPart) -> ModelEntity {
| | `- error: 'ModelEntity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
168 | self.addModel(part: part.rawValue)
169 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift:173:11: error: 'Material' is only available in tvOS 26.0 or newer
131 | /// An interface used for all entities that render text
132 | public protocol HasText: HasRUIMaterials {}
133 | public extension HasText {
| `- note: add '@available' attribute to enclosing extension
134 | /// Component containing all the data for the text to be rendered.
135 | var textComponent: TextComponent {
:
169 | }
170 |
171 | internal func getMaterials(
| `- note: add '@available' attribute to enclosing instance method
172 | for part: TextComponent.UIPart
173 | ) -> [Material] {
| `- error: 'Material' is only available in tvOS 26.0 or newer
174 | switch part {
175 | case .textEntity: [self.getMaterial(with: self.textComponent.color)]
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITexture.swift:34:23: error: 'TextureResource' is only available in tvOS 26.0 or newer
17 | @available(iOS 15.0, macOS 12, *)
18 | /// Class for creating `TextureResources`. For now the main use-case is creating SF Symbol images.
19 | public struct RUITexture {
| `- note: add '@available' attribute to enclosing struct
20 | /// Erorr that can be thrown while generating a texture
21 | public enum TextureError: Error {
:
30 | /// - pointSize: Point size the symbol will be drawn with.
31 | /// - Returns: A new `TextureResource`.
32 | public static func generateTexture(
| `- note: add '@available' attribute to enclosing static method
33 | systemName: String, pointSize: CGFloat
34 | ) async throws -> TextureResource {
| `- error: 'TextureResource' is only available in tvOS 26.0 or newer
35 | #if canImport(AppKit)
36 | let config = NSImage.SymbolConfiguration(pointSize: pointSize, weight: .regular)
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITexture.swift:72:23: error: 'TextureResource' is only available in tvOS 26.0 or newer
17 | @available(iOS 15.0, macOS 12, *)
18 | /// Class for creating `TextureResources`. For now the main use-case is creating SF Symbol images.
19 | public struct RUITexture {
| `- note: add '@available' attribute to enclosing struct
20 | /// Erorr that can be thrown while generating a texture
21 | public enum TextureError: Error {
:
68 | /// - config: Image SymbolConfiguration for the SF Symbol Image.
69 | /// - Returns: A new `TextureResource`.
70 | public static func generateTexture(
| `- note: add '@available' attribute to enclosing static method
71 | systemName: String, config: UIImage.SymbolConfiguration? = nil
72 | ) async throws -> TextureResource {
| `- error: 'TextureResource' is only available in tvOS 26.0 or newer
73 | let cgImage = try self.generateCGImage(systemName: systemName, config: config)
74 | return try await TextureResource.generate(
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RealityUI.swift:39:40: error: 'CollisionGroup' is only available in tvOS 26.0 or newer
19 | /// RealityUI contains some properties for RealityUI to run in your application.
20 | /// 
21 | @objc public class RealityUI: NSObject {
| `- note: add '@available' attribute to enclosing class
22 | internal var componentsRegistered = false
23 |
:
37 |
38 | /// Mask to exclude entities from being hit by the long/panning gesture
39 | public static var longGestureMask: CollisionGroup = .all
| | `- error: 'CollisionGroup' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing static property
40 |
41 | /// Mask to exclude entities from being hit by the tap gesture.
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RealityUI.swift:42:39: error: 'CollisionGroup' is only available in tvOS 26.0 or newer
19 | /// RealityUI contains some properties for RealityUI to run in your application.
20 | /// 
21 | @objc public class RealityUI: NSObject {
| `- note: add '@available' attribute to enclosing class
22 | internal var componentsRegistered = false
23 |
:
40 |
41 | /// Mask to exclude entities from being hit by the tap gesture.
42 | public static var tapGestureMask: CollisionGroup = .all
| | `- error: 'CollisionGroup' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing static property
43 |
44 | /// Store all the RealityUI Animations for an Entity. It's important for memory management that this is empty when it should be.
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RealityUI.swift:45:33: error: 'Entity' is only available in tvOS 26.0 or newer
19 | /// RealityUI contains some properties for RealityUI to run in your application.
20 | /// 
21 | @objc public class RealityUI: NSObject {
| `- note: add '@available' attribute to enclosing class
22 | internal var componentsRegistered = false
23 |
:
43 |
44 | /// Store all the RealityUI Animations for an Entity. It's important for memory management that this is empty when it should be.
45 | internal static var anims: [Entity: [String: Cancellable]] = [:]
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing static property
46 |
47 | private func logActivated() {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RealityUI.swift:45:66: warning: conformance of 'Entity' to 'Hashable' is only available in tvOS 26.0 or newer; this is an error in the Swift 6 language mode
19 | /// RealityUI contains some properties for RealityUI to run in your application.
20 | /// 
21 | @objc public class RealityUI: NSObject {
| `- note: add '@available' attribute to enclosing class
22 | internal var componentsRegistered = false
23 |
:
43 |
44 | /// Store all the RealityUI Animations for an Entity. It's important for memory management that this is empty when it should be.
45 | internal static var anims: [Entity: [String: Cancellable]] = [:]
| | `- warning: conformance of 'Entity' to 'Hashable' is only available in tvOS 26.0 or newer; this is an error in the Swift 6 language mode
| `- note: add '@available' attribute to enclosing static property
46 |
47 | private func logActivated() {
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RealityUI.swift:105:39: error: 'Component' is only available in tvOS 26.0 or newer
19 | /// RealityUI contains some properties for RealityUI to run in your application.
20 | /// 
21 | @objc public class RealityUI: NSObject {
| `- note: add '@available' attribute to enclosing class
22 | internal var componentsRegistered = false
23 |
:
103 |
104 | /// All the components used by RealityUI
105 | public static var RUIComponents: [Component.Type] = [
| | `- error: 'Component' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing static property
106 | RUIComponent.self,
107 | ButtonComponent.self,
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RealityUI.swift:188:53: error: 'Component' is only available in tvOS 26.0 or newer
185 | }
186 |
187 | extension Entity.ComponentSet {
| `- note: add '@available' attribute to enclosing extension
188 | func get<T>(_ component: T.Type) -> T? where T: Component {
| | `- error: 'Component' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing instance method
189 | self[T.self]
190 | }
/Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RealityUI.swift:187:11: error: 'Entity' is only available in tvOS 26.0 or newer
185 | }
186 |
187 | extension Entity.ComponentSet {
| | `- error: 'Entity' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing extension
188 | func get<T>(_ component: T.Type) -> T? where T: Component {
189 | self[T.self]
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/HasRUI.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIAnimations.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIButton.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent+DragEvents.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragComponent.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragDelegate.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragGestureRecognizer+Mouse.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragGestureRecognizer+Touch.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIDragGestureRecognizer.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISlider.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIStepper.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUISwitch.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITapComponent.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUIText.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RUITexture.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RealityUI.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/SwiftUI+RUIGestures.swift -target arm64-apple-tvos15.0 -module-can-import-version UIKit 9127.0.84.1 9127.0.84 -disable-cross-import-overlay-search -swift-module-cross-import RealityKit /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/RealityKit.framework/Modules/RealityKit.swiftcrossimport/ComputeGraph.swiftoverlay -swift-module-cross-import RealityKit /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/RealityKit.framework/Modules/RealityKit.swiftcrossimport/SwiftUI.swiftoverlay -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libPreviewsMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#PreviewsMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftUIMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#SwiftUIMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/Objects-normal/arm64/RealityUI-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -no-color-diagnostics -Xcc -fno-color-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -profile-generate -profile-coverage-mapping -swift-version 5 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name RealityUI -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/Objects-normal/arm64/RealityUI_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-tvos27.0 -target-sdk-version 27.0 -target-sdk-name appletvos27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -emit-module-doc-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/Objects-normal/arm64/RealityUI.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/Objects-normal/arm64/RealityUI.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/Objects-normal/arm64/RealityUI-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/Objects-normal/arm64/RealityUI-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/Objects-normal/arm64/RealityUI-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/Objects-normal/arm64/RealityUI.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/RealityUI.build/Debug-appletvos/RealityUI-t.build/Objects-normal/arm64/RealityUI.abi.json
SwiftCompile normal arm64 (in target 'RealityUI' from project 'RealityUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
SwiftCompile normal arm64 Compiling\ RealityUI.swift /Users/admin/builder/spi-builder-workspace/Sources/RealityUI/RealityUI.swift (in target 'RealityUI' from project 'RealityUI')
SwiftCompile normal arm64 (in target 'RealityUI' from project 'RealityUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
2026-09-19 20:28:51.676 xcodebuild[785:4688] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
SwiftEmitModule normal arm64 Emitting\ module\ for\ RealityUI (in target 'RealityUI' from project 'RealityUI')
SwiftCompile normal arm64 (in target 'RealityUI' from project 'RealityUI')
Building workspace RealityUI with scheme RealityUI
(3 failures)
BUILD FAILURE 6.4 tvOS