Build Information
Failed to build Camera-SwiftUI, reference 0.5.0 (a83ad0), with Swift 6.4 for tvOS using Xcode 27.0 on 19 Sep 2026 21:05:47 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 Camera-SwiftUI -destination generic/platform=tvOSBuild Log
SwiftCompile normal arm64 Compiling\ CameraPreview.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile CameraPreview.swift
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:19:32: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
12 |
13 | public struct CameraPreview: UIViewRepresentable {
14 | public class VideoPreviewView: UIView {
| `- note: add '@available' attribute to enclosing class
15 | public override class var layerClass: AnyClass {
16 | AVCaptureVideoPreviewLayer.self
17 | }
18 |
19 | var videoPreviewLayer: AVCaptureVideoPreviewLayer {
| | `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
20 | return layer as! AVCaptureVideoPreviewLayer
21 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:63:25: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
11 | import SwiftUI
12 |
13 | public struct CameraPreview: UIViewRepresentable {
| `- note: add '@available' attribute to enclosing struct
14 | public class VideoPreviewView: UIView {
15 | public override class var layerClass: AnyClass {
:
61 | }
62 |
63 | public let session: AVCaptureSession
| `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
64 |
65 | public init(session: AVCaptureSession) {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:65:26: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
11 | import SwiftUI
12 |
13 | public struct CameraPreview: UIViewRepresentable {
| `- note: add '@available' attribute to enclosing struct
14 | public class VideoPreviewView: UIView {
15 | public override class var layerClass: AnyClass {
:
63 | public let session: AVCaptureSession
64 |
65 | public init(session: AVCaptureSession) {
| | `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing initializer
66 | self.session = session
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:16:13: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
12 |
13 | public struct CameraPreview: UIViewRepresentable {
14 | public class VideoPreviewView: UIView {
| `- note: add '@available' attribute to enclosing class
15 | public override class var layerClass: AnyClass {
| `- note: add '@available' attribute to enclosing class property
16 | AVCaptureVideoPreviewLayer.self
| |- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
17 | }
18 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:20:30: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
12 |
13 | public struct CameraPreview: UIViewRepresentable {
14 | public class VideoPreviewView: UIView {
| `- note: add '@available' attribute to enclosing class
15 | public override class var layerClass: AnyClass {
16 | AVCaptureVideoPreviewLayer.self
17 | }
18 |
19 | var videoPreviewLayer: AVCaptureVideoPreviewLayer {
| `- note: add '@available' attribute to enclosing property
20 | return layer as! AVCaptureVideoPreviewLayer
| |- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
21 | }
22 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:35:49: error: 'captureDevicePointConverted(fromLayerPoint:)' is only available in tvOS 17.0 or newer
12 |
13 | public struct CameraPreview: UIViewRepresentable {
14 | public class VideoPreviewView: UIView {
| `- note: add '@available' attribute to enclosing class
15 | public override class var layerClass: AnyClass {
16 | AVCaptureVideoPreviewLayer.self
:
31 | }()
32 |
33 | @objc func focusAndExposeTap(gestureRecognizer: UITapGestureRecognizer) {
| `- note: add '@available' attribute to enclosing instance method
34 | let layerPoint = gestureRecognizer.location(in: gestureRecognizer.view)
35 | let devicePoint = videoPreviewLayer.captureDevicePointConverted(fromLayerPoint: layerPoint)
| |- error: 'captureDevicePointConverted(fromLayerPoint:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
36 |
37 | self.focusView.layer.frame = CGRect(origin: layerPoint, size: CGSize(width: 50, height: 50))
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:74:38: error: 'connection' is only available in tvOS 17.0 or newer
11 | import SwiftUI
12 |
13 | public struct CameraPreview: UIViewRepresentable {
| `- note: add '@available' attribute to enclosing struct
14 | public class VideoPreviewView: UIView {
15 | public override class var layerClass: AnyClass {
:
67 | }
68 |
69 | public func makeUIView(context: Context) -> VideoPreviewView {
| `- note: add '@available' attribute to enclosing instance method
70 | let viewFinder = VideoPreviewView()
71 | viewFinder.backgroundColor = .black
72 | viewFinder.videoPreviewLayer.cornerRadius = 0
73 | viewFinder.videoPreviewLayer.session = session
74 | viewFinder.videoPreviewLayer.connection?.videoOrientation = .portrait
| |- error: 'connection' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
75 | return viewFinder
76 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:74:50: error: 'videoOrientation' is unavailable in tvOS
72 | viewFinder.videoPreviewLayer.cornerRadius = 0
73 | viewFinder.videoPreviewLayer.session = session
74 | viewFinder.videoPreviewLayer.connection?.videoOrientation = .portrait
| `- error: 'videoOrientation' is unavailable in tvOS
75 | return viewFinder
76 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h:1111:48: note: 'videoOrientation' has been explicitly marked unavailable here
1109 | This property is deprecated. Use -videoRotationAngle instead. This property may only be set if -isVideoOrientationSupported returns YES, otherwise an NSInvalidArgumentException is thrown.
1110 | */
1111 | @property(nonatomic) AVCaptureVideoOrientation videoOrientation API_DEPRECATED("Use -videoRotationAngle instead", macos(10.7, 14.0), ios(4.0, 17.0), macCatalyst(14.0, 17.0)) API_UNAVAILABLE(tvos, visionos);
| `- note: 'videoOrientation' has been explicitly marked unavailable here
1112 |
1113 | /*!
SwiftCompile normal arm64 Compiling\ CameraService.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:65:38: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
63 | // MARK: Observed Properties UI must react to
64 |
65 | @Published public var flashMode: AVCaptureDevice.FlashMode = .off
| `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
66 | @Published public var shouldShowAlertView = false
67 | @Published public var shouldShowSpinner = false
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:79:26: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
77 | // MARK: Session Management Properties
78 |
79 | public let session = AVCaptureSession()
| `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
80 |
81 | var isSessionRunning = false
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:88:41: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
86 | let sessionQueue = DispatchQueue(label: "session queue")
87 |
88 | @objc dynamic var videoDeviceInput: AVCaptureDeviceInput!
| `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
89 |
90 | // MARK: Device Configuration Properties
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:39: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:87: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:112: error: 'builtInDualCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'builtInDualCamera' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:132: error: 'builtInTrueDepthCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'builtInTrueDepthCamera' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:95:23: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
93 | // MARK: Capturing Photos
94 |
95 | let photoOutput = AVCapturePhotoOutput()
| `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
96 |
97 | var inProgressPhotoCaptureDelegates = [Int64: PhotoCaptureProcessor]()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:362:39: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
360 | }
361 |
362 | public func focus(with focusMode: AVCaptureDevice.FocusMode, exposureMode: AVCaptureDevice.ExposureMode, at devicePoint: CGPoint, monitorSubjectAreaChange: Bool) {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
363 | sessionQueue.async {
364 | guard let device = self.videoDeviceInput?.device else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:362:80: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
360 | }
361 |
362 | public func focus(with focusMode: AVCaptureDevice.FocusMode, exposureMode: AVCaptureDevice.ExposureMode, at devicePoint: CGPoint, monitorSubjectAreaChange: Bool) {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
363 | sessionQueue.async {
364 | guard let device = self.videoDeviceInput?.device else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:638:84: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
636 |
637 | /// - Tag: HandleSystemPressure
638 | private func setRecommendedFrameRateRangeForPressureState(systemPressureState: AVCaptureDevice.SystemPressureState) {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
639 | /*
640 | The frame rates used here are only for demonstration purposes.
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:140:16: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
132 |
133 | // MARK: Checks for permisions, setup obeservers and starts running session
134 | public func checkForPermissions() {
| `- note: add '@available' attribute to enclosing instance method
135 | /*
136 | Check the video authorization status. Video access is required and audio
:
138 | record audio during movie recording.
139 | */
140 | switch AVCaptureDevice.authorizationStatus(for: .video) {
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
141 | case .authorized:
142 | // The user has previously granted access to the camera.
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:140:32: error: 'authorizationStatus(for:)' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
132 |
133 | // MARK: Checks for permisions, setup obeservers and starts running session
134 | public func checkForPermissions() {
| `- note: add '@available' attribute to enclosing instance method
135 | /*
136 | Check the video authorization status. Video access is required and audio
:
138 | record audio during movie recording.
139 | */
140 | switch AVCaptureDevice.authorizationStatus(for: .video) {
| |- error: 'authorizationStatus(for:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
141 | case .authorized:
142 | // The user has previously granted access to the camera.
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:154:13: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
132 |
133 | // MARK: Checks for permisions, setup obeservers and starts running session
134 | public func checkForPermissions() {
| `- note: add '@available' attribute to enclosing instance method
135 | /*
136 | Check the video authorization status. Video access is required and audio
:
152 | */
153 | sessionQueue.suspend()
154 | AVCaptureDevice.requestAccess(for: .video, completionHandler: { granted in
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
155 | if !granted {
156 | self.setupResult = .notAuthorized
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:154:29: error: 'requestAccess(for:completionHandler:)' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
132 |
133 | // MARK: Checks for permisions, setup obeservers and starts running session
134 | public func checkForPermissions() {
| `- note: add '@available' attribute to enclosing instance method
135 | /*
136 | Check the video authorization status. Video access is required and audio
:
152 | */
153 | sessionQueue.suspend()
154 | AVCaptureDevice.requestAccess(for: .video, completionHandler: { granted in
| |- error: 'requestAccess(for:completionHandler:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
155 | if !granted {
156 | self.setupResult = .notAuthorized
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:193:34: error: 'photo' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
191 | Live Photo is not supported when AVCaptureMovieFileOutput is added to the session.
192 | */
193 | session.sessionPreset = .photo
| |- error: 'photo' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
194 |
195 | // Add video input.
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:197:37: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
195 | // Add video input.
196 | do {
197 | var defaultVideoDevice: AVCaptureDevice?
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
198 |
199 | if let backCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:199:39: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
197 | var defaultVideoDevice: AVCaptureDevice?
198 |
199 | if let backCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) {
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:199:55: error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
197 | var defaultVideoDevice: AVCaptureDevice?
198 |
199 | if let backCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) {
| |- error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:199:64: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
197 | var defaultVideoDevice: AVCaptureDevice?
198 |
199 | if let backCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) {
| |- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:202:47: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
202 | } else if let frontCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front) {
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
203 | // If the rear wide angle camera isn't available, default to the front wide angle camera.
204 | defaultVideoDevice = frontCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:202:63: error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
202 | } else if let frontCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front) {
| |- error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
203 | // If the rear wide angle camera isn't available, default to the front wide angle camera.
204 | defaultVideoDevice = frontCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:202:72: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
202 | } else if let frontCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front) {
| |- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
203 | // If the rear wide angle camera isn't available, default to the front wide angle camera.
204 | defaultVideoDevice = frontCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:214:40: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
212 | }
213 |
214 | let videoDeviceInput = try AVCaptureDeviceInput(device: videoDevice)
| |- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
215 |
216 | if session.canAddInput(videoDeviceInput) {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:237:25: error: 'isHighResolutionCaptureEnabled' is unavailable in tvOS
235 | session.addOutput(photoOutput)
236 |
237 | photoOutput.isHighResolutionCaptureEnabled = true
| `- error: 'isHighResolutionCaptureEnabled' is unavailable in tvOS
238 | photoOutput.maxPhotoQualityPrioritization = .quality
239 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:536:66: note: 'isHighResolutionCaptureEnabled' has been explicitly marked unavailable here
534 | Some AVCaptureDeviceFormats support outputting higher resolution stills than their streaming resolution (See AVCaptureDeviceFormat.highResolutionStillImageDimensions). Under some conditions, AVCaptureSession needs to set up the photo render pipeline differently to support high resolution still image capture. If you intend to take high resolution still images at all, you should set this property to YES before calling -[AVCaptureSession startRunning]. Once you've opted in for high resolution capture, you are free to issue photo capture requests with or without highResolutionCaptureEnabled in the AVCapturePhotoSettings. If you have not set this property to YES and call capturePhotoWithSettings:delegate: with settings.highResolutionCaptureEnabled set to YES, an NSInvalidArgumentException will be thrown.
535 | */
536 | @property(nonatomic, getter=isHighResolutionCaptureEnabled) BOOL highResolutionCaptureEnabled API_DEPRECATED("Use maxPhotoDimensions instead.", macos(10.15, 13.0), ios(10.0, 16.0), macCatalyst(14.0, 16.0)) API_UNAVAILABLE(tvos, visionos);
| `- note: 'isHighResolutionCaptureEnabled' has been explicitly marked unavailable here
537 |
538 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:238:25: error: 'maxPhotoQualityPrioritization' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
236 |
237 | photoOutput.isHighResolutionCaptureEnabled = true
238 | photoOutput.maxPhotoQualityPrioritization = .quality
| |- error: 'maxPhotoQualityPrioritization' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
239 |
240 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:294:36: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
292 | let currentPosition = currentVideoDevice.position
293 |
294 | let preferredPosition: AVCaptureDevice.Position
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
295 | let preferredDeviceType: AVCaptureDevice.DeviceType
296 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:295:38: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
293 |
294 | let preferredPosition: AVCaptureDevice.Position
295 | let preferredDeviceType: AVCaptureDevice.DeviceType
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
296 |
297 | switch currentPosition {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:312:33: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
310 | }
311 | let devices = self.videoDeviceDiscoverySession.devices
312 | var newVideoDevice: AVCaptureDevice? = nil
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
313 |
314 | // First, seek a device with both the preferred position and device type. Otherwise, seek a device with only the preferred position.
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:300:40: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
298 | case .unspecified, .front:
299 | preferredPosition = .back
300 | preferredDeviceType = .builtInWideAngleCamera
| |- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
301 |
302 | case .back:
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:304:40: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
302 | case .back:
303 | preferredPosition = .front
304 | preferredDeviceType = .builtInWideAngleCamera
| |- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
305 |
306 | @unknown default:
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:309:40: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
307 | print("Unknown capture position. Defaulting to back, dual-camera.")
308 | preferredPosition = .back
309 | preferredDeviceType = .builtInWideAngleCamera
| |- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
310 | }
311 | let devices = self.videoDeviceDiscoverySession.devices
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:315:91: error: 'deviceType' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
313 |
314 | // First, seek a device with both the preferred position and device type. Otherwise, seek a device with only the preferred position.
315 | if let device = devices.first(where: { $0.position == preferredPosition && $0.deviceType == preferredDeviceType }) {
| |- error: 'deviceType' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
316 | newVideoDevice = device
317 | } else if let device = devices.first(where: { $0.position == preferredPosition }) {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:323:48: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
321 | if let videoDevice = newVideoDevice {
322 | do {
323 | let videoDeviceInput = try AVCaptureDeviceInput(device: videoDevice)
| |- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
324 |
325 | self.session.beginConfiguration()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:332:80: error: 'AVCaptureDeviceSubjectAreaDidChange' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
330 |
331 | if self.session.canAddInput(videoDeviceInput) {
332 | NotificationCenter.default.removeObserver(self, name: .AVCaptureDeviceSubjectAreaDidChange, object: currentVideoDevice)
| |- error: 'AVCaptureDeviceSubjectAreaDidChange' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
333 | NotificationCenter.default.addObserver(self, selector: #selector(self.subjectAreaDidChange), name: .AVCaptureDeviceSubjectAreaDidChange, object: videoDeviceInput.device)
334 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:333:125: error: 'AVCaptureDeviceSubjectAreaDidChange' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
331 | if self.session.canAddInput(videoDeviceInput) {
332 | NotificationCenter.default.removeObserver(self, name: .AVCaptureDeviceSubjectAreaDidChange, object: currentVideoDevice)
333 | NotificationCenter.default.addObserver(self, selector: #selector(self.subjectAreaDidChange), name: .AVCaptureDeviceSubjectAreaDidChange, object: videoDeviceInput.device)
| |- error: 'AVCaptureDeviceSubjectAreaDidChange' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
334 |
335 | self.session.addInput(videoDeviceInput)
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:341:58: error: 'connection(with:)' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
339 | }
340 |
341 | if let connection = self.photoOutput.connection(with: .video) {
| |- error: 'connection(with:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
342 | if connection.isVideoStabilizationSupported {
343 | connection.preferredVideoStabilizationMode = .auto
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:342:39: error: 'isVideoStabilizationSupported' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
340 |
341 | if let connection = self.photoOutput.connection(with: .video) {
342 | if connection.isVideoStabilizationSupported {
| |- error: 'isVideoStabilizationSupported' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
343 | connection.preferredVideoStabilizationMode = .auto
344 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:343:40: error: 'preferredVideoStabilizationMode' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
341 | if let connection = self.photoOutput.connection(with: .video) {
342 | if connection.isVideoStabilizationSupported {
343 | connection.preferredVideoStabilizationMode = .auto
| |- error: 'preferredVideoStabilizationMode' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
344 | }
345 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:347:38: error: 'maxPhotoQualityPrioritization' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
345 | }
346 |
347 | self.photoOutput.maxPhotoQualityPrioritization = .quality
| |- error: 'maxPhotoQualityPrioritization' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
348 |
349 | self.session.commitConfiguration()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:382:24: error: 'isSubjectAreaChangeMonitoringEnabled' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
360 | }
361 |
362 | public func focus(with focusMode: AVCaptureDevice.FocusMode, exposureMode: AVCaptureDevice.ExposureMode, at devicePoint: CGPoint, monitorSubjectAreaChange: Bool) {
| `- note: add '@available' attribute to enclosing instance method
363 | sessionQueue.async {
364 | guard let device = self.videoDeviceInput?.device else { return }
:
380 | }
381 |
382 | device.isSubjectAreaChangeMonitoringEnabled = monitorSubjectAreaChange
| |- error: 'isSubjectAreaChangeMonitoringEnabled' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
383 | device.unlockForConfiguration()
384 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:472:20: error: 'videoZoomFactor' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
464 | }
465 |
466 | public func set(zoom: CGFloat){
| `- note: add '@available' attribute to enclosing instance method
467 | let factor = zoom < 1 ? 1 : zoom
468 | let device = self.videoDeviceInput.device
:
470 | do {
471 | try device.lockForConfiguration()
472 | device.videoZoomFactor = factor
| |- error: 'videoZoomFactor' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
473 | device.unlockForConfiguration()
474 | }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile CameraService.swift
SwiftCompile normal arm64 Compiling\ ImageResizer.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/ImageResizer.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/ImageResizer.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile ImageResizer.swift
SwiftCompile normal arm64 Compiling\ PhotoCaptureProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:12:46: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
9 | import Photos
10 |
11 | class PhotoCaptureProcessor: NSObject {
| `- note: add '@available' attribute to enclosing class
12 | private(set) var requestedPhotoSettings: AVCapturePhotoSettings
| `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
13 |
14 | private let willCapturePhotoAnimation: () -> Void
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:26:39: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
9 | import Photos
10 |
11 | class PhotoCaptureProcessor: NSObject {
| `- note: add '@available' attribute to enclosing class
12 | private(set) var requestedPhotoSettings: AVCapturePhotoSettings
13 |
:
24 | private var maxPhotoProcessingTime: CMTime?
25 |
26 | init(with requestedPhotoSettings: AVCapturePhotoSettings,
| | `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing initializer
27 | willCapturePhotoAnimation: @escaping () -> Void,
28 | completionHandler: @escaping (PhotoCaptureProcessor) -> Void,
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:43:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
41 |
42 | /// - Tag: WillBeginCapture
43 | func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
44 | maxPhotoProcessingTime = resolvedSettings.photoProcessingTimeRange.start + resolvedSettings.photoProcessingTimeRange.duration
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:43:92: error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
41 |
42 | /// - Tag: WillBeginCapture
43 | func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
44 | maxPhotoProcessingTime = resolvedSettings.photoProcessingTimeRange.start + resolvedSettings.photoProcessingTimeRange.duration
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:48:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
46 |
47 | /// - Tag: WillCapturePhoto
48 | func photoOutput(_ output: AVCapturePhotoOutput, willCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
49 | DispatchQueue.main.async {
50 | self.willCapturePhotoAnimation()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:48:92: error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
46 |
47 | /// - Tag: WillCapturePhoto
48 | func photoOutput(_ output: AVCapturePhotoOutput, willCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
49 | DispatchQueue.main.async {
50 | self.willCapturePhotoAnimation()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:67:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
65 |
66 | /// - Tag: DidFinishProcessingPhoto
67 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
68 |
69 | DispatchQueue.main.async {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:67:86: error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
65 |
66 | /// - Tag: DidFinishProcessingPhoto
67 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
| | `- error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
68 |
69 | DispatchQueue.main.async {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:112:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
110 |
111 | /// - Tag: DidFinishCapture
112 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings, error: Error?) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
113 | if let error = error {
114 | print("Error capturing photo: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:112:92: error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
110 |
111 | /// - Tag: DidFinishCapture
112 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings, error: Error?) {
| | `- error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
113 | if let error = error {
114 | print("Error capturing photo: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:44:51: error: 'photoProcessingTimeRange' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
41 |
42 | /// - Tag: WillBeginCapture
43 | func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| `- note: add '@available' attribute to enclosing instance method
44 | maxPhotoProcessingTime = resolvedSettings.photoProcessingTimeRange.start + resolvedSettings.photoProcessingTimeRange.duration
| |- error: 'photoProcessingTimeRange' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:44:101: error: 'photoProcessingTimeRange' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
41 |
42 | /// - Tag: WillBeginCapture
43 | func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| `- note: add '@available' attribute to enclosing instance method
44 | maxPhotoProcessingTime = resolvedSettings.photoProcessingTimeRange.start + resolvedSettings.photoProcessingTimeRange.duration
| |- error: 'photoProcessingTimeRange' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:76:31: error: 'fileDataRepresentation()' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
65 |
66 | /// - Tag: DidFinishProcessingPhoto
67 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
| `- note: add '@available' attribute to enclosing instance method
68 |
69 | DispatchQueue.main.async {
:
74 | print("Error capturing photo: \(error)")
75 | } else {
76 | photoData = photo.fileDataRepresentation()
| |- error: 'fileDataRepresentation()' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
77 |
78 | }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PhotoCaptureProcessor.swift
SwiftCompile normal arm64 Compiling\ CameraService+Extensions.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile CameraService+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:14:30: error: 'UIDeviceOrientation' is unavailable in tvOS
12 |
13 | extension AVCaptureVideoOrientation {
14 | init?(deviceOrientation: UIDeviceOrientation) {
| `- error: 'UIDeviceOrientation' is unavailable in tvOS
15 | switch deviceOrientation {
16 | case .portrait: self = .portrait
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIOrientation.h:13:28: note: 'UIDeviceOrientation' has been explicitly marked unavailable here
11 | NS_HEADER_AUDIT_BEGIN(nullability, sendability)
12 |
13 | typedef NS_ENUM(NSInteger, UIDeviceOrientation) {
| `- note: 'UIDeviceOrientation' has been explicitly marked unavailable here
14 | UIDeviceOrientationUnknown,
15 | UIDeviceOrientationPortrait, // Device oriented vertically, home button on the bottom
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:24:33: error: 'UIInterfaceOrientation' is unavailable in tvOS
22 | }
23 |
24 | init?(interfaceOrientation: UIInterfaceOrientation) {
| `- error: 'UIInterfaceOrientation' is unavailable in tvOS
25 | switch interfaceOrientation {
26 | case .portrait: self = .portrait
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIOrientation.h:41:28: note: 'UIInterfaceOrientation' has been explicitly marked unavailable here
39 | // Note that UIInterfaceOrientationLandscapeLeft is equal to UIDeviceOrientationLandscapeRight (and vice versa).
40 | // This is because rotating the device to the left requires rotating the content to the right.
41 | typedef NS_ENUM(NSInteger, UIInterfaceOrientation) {
| `- note: 'UIInterfaceOrientation' has been explicitly marked unavailable here
42 | UIInterfaceOrientationUnknown = UIDeviceOrientationUnknown,
43 | UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:13:11: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
11 | import AVFoundation
12 |
13 | extension AVCaptureVideoOrientation {
| `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
14 | init?(deviceOrientation: UIDeviceOrientation) {
15 | switch deviceOrientation {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:104:28: note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
102 |
103 | /// Constants indicating video orientation, for use with AVCaptureDeviceRotationCoordinator.
104 | typedef NS_ENUM(NSInteger, AVCaptureVideoOrientation) {
| `- note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
105 | /// Indicates that video should be oriented vertically, port on the bottom.
106 | AVCaptureVideoOrientationPortrait = 1,
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:35:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
33 | }
34 |
35 | extension AVCaptureDevice.DiscoverySession {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
36 | var uniqueDevicePositionsCount: Int {
37 |
SwiftCompile normal arm64 Compiling\ CameraService+Enums.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Enums.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Enums.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile CameraService+Enums.swift
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
2026-09-19 17:05:37.570 xcodebuild[624:3982] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
SwiftCompile normal arm64 (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
SwiftEmitModule normal arm64 Emitting\ module\ for\ Camera_SwiftUI (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
Building workspace Camera-SwiftUI with scheme Camera-SwiftUI
(3 failures)
Command line invocation:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/usr/bin/xcodebuild -IDEClonedSourcePackagesDirPathOverride=/Users/admin/builder/spi-builder-workspace/.dependencies -resolvePackageDependencies
Resolve Package Graph
Resolved source packages:
Camera-SwiftUI: /Users/admin/builder/spi-builder-workspace
resolved source packages: Camera-SwiftUI
2026-09-19 17:05:44.117 xcodebuild[743:4547] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
{
"dependencies" : [
],
"manifest_display_name" : "Camera-SwiftUI",
"name" : "Camera-SwiftUI",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "ios",
"version" : "13.0"
}
],
"products" : [
{
"name" : "Camera-SwiftUI",
"targets" : [
"Camera-SwiftUI"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "Camera_SwiftUITests",
"module_type" : "SwiftTarget",
"name" : "Camera-SwiftUITests",
"path" : "Tests/Camera-SwiftUITests",
"sources" : [
"Camera_SwiftUITests.swift",
"XCTestManifests.swift"
],
"target_dependencies" : [
"Camera-SwiftUI"
],
"type" : "test"
},
{
"c99name" : "Camera_SwiftUI",
"module_type" : "SwiftTarget",
"name" : "Camera-SwiftUI",
"path" : "Sources/Camera-SwiftUI",
"product_memberships" : [
"Camera-SwiftUI"
],
"sources" : [
"Service/CameraService+Enums.swift",
"Service/CameraService+Extensions.swift",
"Service/CameraService.swift",
"Service/ImageResizer.swift",
"Service/PhotoCaptureProcessor.swift",
"View/CameraPreview.swift"
],
"type" : "library"
}
],
"tools_version" : "5.3"
}
{
"workspace" : {
"name" : "Camera-SwiftUI",
"schemes" : [
"Camera-SwiftUI"
]
}
}
2026-09-19 17:05:45.355 xcodebuild[751:4613] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun xcodebuild -IDEClonedSourcePackagesDirPathOverride=$PWD/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath $PWD/.derivedData build -scheme Camera-SwiftUI -destination generic/platform=tvOS
Command line invocation:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/usr/bin/xcodebuild -IDEClonedSourcePackagesDirPathOverride=/Users/admin/builder/spi-builder-workspace/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath /Users/admin/builder/spi-builder-workspace/.derivedData build -scheme Camera-SwiftUI -destination generic/platform=tvOS
Resolve Package Graph
Resolved source packages:
Camera-SwiftUI: /Users/admin/builder/spi-builder-workspace
ComputePackagePrebuildTargetDependencyGraph
Prepare packages
CreateBuildRequest
SendProjectDescription
CreateBuildOperation
ComputeTargetDependencyGraph
note: Building targets in dependency order
note: Target dependency graph (2 targets)
Target 'Camera-SwiftUI-product' in project 'Camera-SwiftUI'
➜ Explicit dependency on target 'Camera-SwiftUI' in project 'Camera-SwiftUI'
Target 'Camera-SwiftUI' in project 'Camera-SwiftUI' (no dependencies)
GatherProvisioningInputs
CreateBuildDescription
ClangStatCache /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang-stat-cache /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang-stat-cache /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -o /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache
SwiftDriver Camera-SwiftUI normal arm64 com.apple.xcode.tools.swift.compiler (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftDriver -- /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -parse-as-library -module-name Camera_SwiftUI -Onone @/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera-SwiftUI.SwiftFileList -DSWIFT_PACKAGE -DDEBUG -DSWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -DXcode -plugin-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins/testing -enable-experimental-feature DebugDescriptionMacro -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -target arm64-apple-tvos15.0 -g -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -Xfrontend -serialize-debugging-options -profile-coverage-mapping -profile-generate -enable-testing -index-store-path /Users/admin/builder/spi-builder-workspace/.derivedData/Index.noindex/DataStore -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -swift-version 5 -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 -c -j10 -enable-batch-mode -incremental -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera-SwiftUI-OutputFileMap.json -save-temps -no-color-diagnostics -explicit-module-build -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -clang-scanner-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -sdk-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules -emit-dependencies -emit-module -emit-module-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera_SwiftUI.swiftmodule -serialize-diagnostics -dependency-scan-serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera_SwiftUI-dependency-scan.dia -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -emit-const-values -const-gather-protocols-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera-SwiftUI_const_extract_protocols.json -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/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -emit-objc-header -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera-SwiftUI-Swift.h -working-directory /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -experimental-emit-module-separately -disable-cmo
SwiftCompile normal arm64 Compiling\ ImageResizer.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/ImageResizer.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/ImageResizer.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile ImageResizer.swift
SwiftCompile normal arm64 Compiling\ PhotoCaptureProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:12:46: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
9 | import Photos
10 |
11 | class PhotoCaptureProcessor: NSObject {
| `- note: add '@available' attribute to enclosing class
12 | private(set) var requestedPhotoSettings: AVCapturePhotoSettings
| `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
13 |
14 | private let willCapturePhotoAnimation: () -> Void
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:26:39: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
9 | import Photos
10 |
11 | class PhotoCaptureProcessor: NSObject {
| `- note: add '@available' attribute to enclosing class
12 | private(set) var requestedPhotoSettings: AVCapturePhotoSettings
13 |
:
24 | private var maxPhotoProcessingTime: CMTime?
25 |
26 | init(with requestedPhotoSettings: AVCapturePhotoSettings,
| | `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing initializer
27 | willCapturePhotoAnimation: @escaping () -> Void,
28 | completionHandler: @escaping (PhotoCaptureProcessor) -> Void,
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:43:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
41 |
42 | /// - Tag: WillBeginCapture
43 | func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
44 | maxPhotoProcessingTime = resolvedSettings.photoProcessingTimeRange.start + resolvedSettings.photoProcessingTimeRange.duration
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:43:92: error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
41 |
42 | /// - Tag: WillBeginCapture
43 | func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
44 | maxPhotoProcessingTime = resolvedSettings.photoProcessingTimeRange.start + resolvedSettings.photoProcessingTimeRange.duration
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:48:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
46 |
47 | /// - Tag: WillCapturePhoto
48 | func photoOutput(_ output: AVCapturePhotoOutput, willCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
49 | DispatchQueue.main.async {
50 | self.willCapturePhotoAnimation()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:48:92: error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
46 |
47 | /// - Tag: WillCapturePhoto
48 | func photoOutput(_ output: AVCapturePhotoOutput, willCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
49 | DispatchQueue.main.async {
50 | self.willCapturePhotoAnimation()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:67:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
65 |
66 | /// - Tag: DidFinishProcessingPhoto
67 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
68 |
69 | DispatchQueue.main.async {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:67:86: error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
65 |
66 | /// - Tag: DidFinishProcessingPhoto
67 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
| | `- error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
68 |
69 | DispatchQueue.main.async {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:112:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
110 |
111 | /// - Tag: DidFinishCapture
112 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings, error: Error?) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
113 | if let error = error {
114 | print("Error capturing photo: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:112:92: error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
110 |
111 | /// - Tag: DidFinishCapture
112 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings, error: Error?) {
| | `- error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
113 | if let error = error {
114 | print("Error capturing photo: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:44:51: error: 'photoProcessingTimeRange' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
41 |
42 | /// - Tag: WillBeginCapture
43 | func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| `- note: add '@available' attribute to enclosing instance method
44 | maxPhotoProcessingTime = resolvedSettings.photoProcessingTimeRange.start + resolvedSettings.photoProcessingTimeRange.duration
| |- error: 'photoProcessingTimeRange' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:44:101: error: 'photoProcessingTimeRange' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
41 |
42 | /// - Tag: WillBeginCapture
43 | func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| `- note: add '@available' attribute to enclosing instance method
44 | maxPhotoProcessingTime = resolvedSettings.photoProcessingTimeRange.start + resolvedSettings.photoProcessingTimeRange.duration
| |- error: 'photoProcessingTimeRange' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
45 | }
46 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:76:31: error: 'fileDataRepresentation()' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
65 |
66 | /// - Tag: DidFinishProcessingPhoto
67 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
| `- note: add '@available' attribute to enclosing instance method
68 |
69 | DispatchQueue.main.async {
:
74 | print("Error capturing photo: \(error)")
75 | } else {
76 | photoData = photo.fileDataRepresentation()
| |- error: 'fileDataRepresentation()' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
77 |
78 | }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PhotoCaptureProcessor.swift
SwiftCompile normal arm64 Compiling\ CameraService+Extensions.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:14:30: error: 'UIDeviceOrientation' is unavailable in tvOS
12 |
13 | extension AVCaptureVideoOrientation {
14 | init?(deviceOrientation: UIDeviceOrientation) {
| `- error: 'UIDeviceOrientation' is unavailable in tvOS
15 | switch deviceOrientation {
16 | case .portrait: self = .portrait
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIOrientation.h:13:28: note: 'UIDeviceOrientation' has been explicitly marked unavailable here
11 | NS_HEADER_AUDIT_BEGIN(nullability, sendability)
12 |
13 | typedef NS_ENUM(NSInteger, UIDeviceOrientation) {
| `- note: 'UIDeviceOrientation' has been explicitly marked unavailable here
14 | UIDeviceOrientationUnknown,
15 | UIDeviceOrientationPortrait, // Device oriented vertically, home button on the bottom
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:24:33: error: 'UIInterfaceOrientation' is unavailable in tvOS
22 | }
23 |
24 | init?(interfaceOrientation: UIInterfaceOrientation) {
| `- error: 'UIInterfaceOrientation' is unavailable in tvOS
25 | switch interfaceOrientation {
26 | case .portrait: self = .portrait
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIOrientation.h:41:28: note: 'UIInterfaceOrientation' has been explicitly marked unavailable here
39 | // Note that UIInterfaceOrientationLandscapeLeft is equal to UIDeviceOrientationLandscapeRight (and vice versa).
40 | // This is because rotating the device to the left requires rotating the content to the right.
41 | typedef NS_ENUM(NSInteger, UIInterfaceOrientation) {
| `- note: 'UIInterfaceOrientation' has been explicitly marked unavailable here
42 | UIInterfaceOrientationUnknown = UIDeviceOrientationUnknown,
43 | UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:13:11: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
11 | import AVFoundation
12 |
13 | extension AVCaptureVideoOrientation {
| `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
14 | init?(deviceOrientation: UIDeviceOrientation) {
15 | switch deviceOrientation {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:104:28: note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
102 |
103 | /// Constants indicating video orientation, for use with AVCaptureDeviceRotationCoordinator.
104 | typedef NS_ENUM(NSInteger, AVCaptureVideoOrientation) {
| `- note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
105 | /// Indicates that video should be oriented vertically, port on the bottom.
106 | AVCaptureVideoOrientationPortrait = 1,
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:35:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
33 | }
34 |
35 | extension AVCaptureDevice.DiscoverySession {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
36 | var uniqueDevicePositionsCount: Int {
37 |
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile CameraService+Extensions.swift
SwiftCompile normal arm64 Compiling\ CameraService+Enums.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Enums.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Enums.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile CameraService+Enums.swift
SwiftCompile normal arm64 Compiling\ CameraService.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:65:38: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
63 | // MARK: Observed Properties UI must react to
64 |
65 | @Published public var flashMode: AVCaptureDevice.FlashMode = .off
| `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
66 | @Published public var shouldShowAlertView = false
67 | @Published public var shouldShowSpinner = false
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:79:26: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
77 | // MARK: Session Management Properties
78 |
79 | public let session = AVCaptureSession()
| `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
80 |
81 | var isSessionRunning = false
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:88:41: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
86 | let sessionQueue = DispatchQueue(label: "session queue")
87 |
88 | @objc dynamic var videoDeviceInput: AVCaptureDeviceInput!
| `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
89 |
90 | // MARK: Device Configuration Properties
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:39: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:87: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:112: error: 'builtInDualCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'builtInDualCamera' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:132: error: 'builtInTrueDepthCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'builtInTrueDepthCamera' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:95:23: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
93 | // MARK: Capturing Photos
94 |
95 | let photoOutput = AVCapturePhotoOutput()
| `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
96 |
97 | var inProgressPhotoCaptureDelegates = [Int64: PhotoCaptureProcessor]()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:362:39: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
360 | }
361 |
362 | public func focus(with focusMode: AVCaptureDevice.FocusMode, exposureMode: AVCaptureDevice.ExposureMode, at devicePoint: CGPoint, monitorSubjectAreaChange: Bool) {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
363 | sessionQueue.async {
364 | guard let device = self.videoDeviceInput?.device else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:362:80: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
360 | }
361 |
362 | public func focus(with focusMode: AVCaptureDevice.FocusMode, exposureMode: AVCaptureDevice.ExposureMode, at devicePoint: CGPoint, monitorSubjectAreaChange: Bool) {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
363 | sessionQueue.async {
364 | guard let device = self.videoDeviceInput?.device else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:638:84: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
636 |
637 | /// - Tag: HandleSystemPressure
638 | private func setRecommendedFrameRateRangeForPressureState(systemPressureState: AVCaptureDevice.SystemPressureState) {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
639 | /*
640 | The frame rates used here are only for demonstration purposes.
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:140:16: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
132 |
133 | // MARK: Checks for permisions, setup obeservers and starts running session
134 | public func checkForPermissions() {
| `- note: add '@available' attribute to enclosing instance method
135 | /*
136 | Check the video authorization status. Video access is required and audio
:
138 | record audio during movie recording.
139 | */
140 | switch AVCaptureDevice.authorizationStatus(for: .video) {
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
141 | case .authorized:
142 | // The user has previously granted access to the camera.
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:140:32: error: 'authorizationStatus(for:)' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
132 |
133 | // MARK: Checks for permisions, setup obeservers and starts running session
134 | public func checkForPermissions() {
| `- note: add '@available' attribute to enclosing instance method
135 | /*
136 | Check the video authorization status. Video access is required and audio
:
138 | record audio during movie recording.
139 | */
140 | switch AVCaptureDevice.authorizationStatus(for: .video) {
| |- error: 'authorizationStatus(for:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
141 | case .authorized:
142 | // The user has previously granted access to the camera.
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:154:13: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
132 |
133 | // MARK: Checks for permisions, setup obeservers and starts running session
134 | public func checkForPermissions() {
| `- note: add '@available' attribute to enclosing instance method
135 | /*
136 | Check the video authorization status. Video access is required and audio
:
152 | */
153 | sessionQueue.suspend()
154 | AVCaptureDevice.requestAccess(for: .video, completionHandler: { granted in
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
155 | if !granted {
156 | self.setupResult = .notAuthorized
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:154:29: error: 'requestAccess(for:completionHandler:)' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
132 |
133 | // MARK: Checks for permisions, setup obeservers and starts running session
134 | public func checkForPermissions() {
| `- note: add '@available' attribute to enclosing instance method
135 | /*
136 | Check the video authorization status. Video access is required and audio
:
152 | */
153 | sessionQueue.suspend()
154 | AVCaptureDevice.requestAccess(for: .video, completionHandler: { granted in
| |- error: 'requestAccess(for:completionHandler:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
155 | if !granted {
156 | self.setupResult = .notAuthorized
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:193:34: error: 'photo' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
191 | Live Photo is not supported when AVCaptureMovieFileOutput is added to the session.
192 | */
193 | session.sessionPreset = .photo
| |- error: 'photo' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
194 |
195 | // Add video input.
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:197:37: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
195 | // Add video input.
196 | do {
197 | var defaultVideoDevice: AVCaptureDevice?
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
198 |
199 | if let backCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:199:39: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
197 | var defaultVideoDevice: AVCaptureDevice?
198 |
199 | if let backCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) {
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:199:55: error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
197 | var defaultVideoDevice: AVCaptureDevice?
198 |
199 | if let backCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) {
| |- error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:199:64: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
197 | var defaultVideoDevice: AVCaptureDevice?
198 |
199 | if let backCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) {
| |- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:202:47: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
202 | } else if let frontCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front) {
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
203 | // If the rear wide angle camera isn't available, default to the front wide angle camera.
204 | defaultVideoDevice = frontCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:202:63: error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
202 | } else if let frontCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front) {
| |- error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
203 | // If the rear wide angle camera isn't available, default to the front wide angle camera.
204 | defaultVideoDevice = frontCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:202:72: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
200 | // If a rear dual camera is not available, default to the rear wide angle camera.
201 | defaultVideoDevice = backCameraDevice
202 | } else if let frontCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front) {
| |- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
203 | // If the rear wide angle camera isn't available, default to the front wide angle camera.
204 | defaultVideoDevice = frontCameraDevice
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:214:40: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
212 | }
213 |
214 | let videoDeviceInput = try AVCaptureDeviceInput(device: videoDevice)
| |- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
215 |
216 | if session.canAddInput(videoDeviceInput) {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:237:25: error: 'isHighResolutionCaptureEnabled' is unavailable in tvOS
235 | session.addOutput(photoOutput)
236 |
237 | photoOutput.isHighResolutionCaptureEnabled = true
| `- error: 'isHighResolutionCaptureEnabled' is unavailable in tvOS
238 | photoOutput.maxPhotoQualityPrioritization = .quality
239 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:536:66: note: 'isHighResolutionCaptureEnabled' has been explicitly marked unavailable here
534 | Some AVCaptureDeviceFormats support outputting higher resolution stills than their streaming resolution (See AVCaptureDeviceFormat.highResolutionStillImageDimensions). Under some conditions, AVCaptureSession needs to set up the photo render pipeline differently to support high resolution still image capture. If you intend to take high resolution still images at all, you should set this property to YES before calling -[AVCaptureSession startRunning]. Once you've opted in for high resolution capture, you are free to issue photo capture requests with or without highResolutionCaptureEnabled in the AVCapturePhotoSettings. If you have not set this property to YES and call capturePhotoWithSettings:delegate: with settings.highResolutionCaptureEnabled set to YES, an NSInvalidArgumentException will be thrown.
535 | */
536 | @property(nonatomic, getter=isHighResolutionCaptureEnabled) BOOL highResolutionCaptureEnabled API_DEPRECATED("Use maxPhotoDimensions instead.", macos(10.15, 13.0), ios(10.0, 16.0), macCatalyst(14.0, 16.0)) API_UNAVAILABLE(tvos, visionos);
| `- note: 'isHighResolutionCaptureEnabled' has been explicitly marked unavailable here
537 |
538 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:238:25: error: 'maxPhotoQualityPrioritization' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
180 | // Call this on the session queue.
181 | /// - Tag: ConfigureSession
182 | private func configureSession() {
| `- note: add '@available' attribute to enclosing instance method
183 | if setupResult != .success {
184 | return
:
236 |
237 | photoOutput.isHighResolutionCaptureEnabled = true
238 | photoOutput.maxPhotoQualityPrioritization = .quality
| |- error: 'maxPhotoQualityPrioritization' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
239 |
240 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:294:36: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
292 | let currentPosition = currentVideoDevice.position
293 |
294 | let preferredPosition: AVCaptureDevice.Position
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
295 | let preferredDeviceType: AVCaptureDevice.DeviceType
296 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:295:38: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
293 |
294 | let preferredPosition: AVCaptureDevice.Position
295 | let preferredDeviceType: AVCaptureDevice.DeviceType
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
296 |
297 | switch currentPosition {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:312:33: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
310 | }
311 | let devices = self.videoDeviceDiscoverySession.devices
312 | var newVideoDevice: AVCaptureDevice? = nil
| |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
313 |
314 | // First, seek a device with both the preferred position and device type. Otherwise, seek a device with only the preferred position.
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:300:40: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
298 | case .unspecified, .front:
299 | preferredPosition = .back
300 | preferredDeviceType = .builtInWideAngleCamera
| |- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
301 |
302 | case .back:
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:304:40: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
302 | case .back:
303 | preferredPosition = .front
304 | preferredDeviceType = .builtInWideAngleCamera
| |- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
305 |
306 | @unknown default:
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:309:40: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
307 | print("Unknown capture position. Defaulting to back, dual-camera.")
308 | preferredPosition = .back
309 | preferredDeviceType = .builtInWideAngleCamera
| |- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
310 | }
311 | let devices = self.videoDeviceDiscoverySession.devices
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:315:91: error: 'deviceType' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
313 |
314 | // First, seek a device with both the preferred position and device type. Otherwise, seek a device with only the preferred position.
315 | if let device = devices.first(where: { $0.position == preferredPosition && $0.deviceType == preferredDeviceType }) {
| |- error: 'deviceType' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
316 | newVideoDevice = device
317 | } else if let device = devices.first(where: { $0.position == preferredPosition }) {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:323:48: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
321 | if let videoDevice = newVideoDevice {
322 | do {
323 | let videoDeviceInput = try AVCaptureDeviceInput(device: videoDevice)
| |- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
324 |
325 | self.session.beginConfiguration()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:332:80: error: 'AVCaptureDeviceSubjectAreaDidChange' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
330 |
331 | if self.session.canAddInput(videoDeviceInput) {
332 | NotificationCenter.default.removeObserver(self, name: .AVCaptureDeviceSubjectAreaDidChange, object: currentVideoDevice)
| |- error: 'AVCaptureDeviceSubjectAreaDidChange' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
333 | NotificationCenter.default.addObserver(self, selector: #selector(self.subjectAreaDidChange), name: .AVCaptureDeviceSubjectAreaDidChange, object: videoDeviceInput.device)
334 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:333:125: error: 'AVCaptureDeviceSubjectAreaDidChange' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
331 | if self.session.canAddInput(videoDeviceInput) {
332 | NotificationCenter.default.removeObserver(self, name: .AVCaptureDeviceSubjectAreaDidChange, object: currentVideoDevice)
333 | NotificationCenter.default.addObserver(self, selector: #selector(self.subjectAreaDidChange), name: .AVCaptureDeviceSubjectAreaDidChange, object: videoDeviceInput.device)
| |- error: 'AVCaptureDeviceSubjectAreaDidChange' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
334 |
335 | self.session.addInput(videoDeviceInput)
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:341:58: error: 'connection(with:)' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
339 | }
340 |
341 | if let connection = self.photoOutput.connection(with: .video) {
| |- error: 'connection(with:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
342 | if connection.isVideoStabilizationSupported {
343 | connection.preferredVideoStabilizationMode = .auto
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:342:39: error: 'isVideoStabilizationSupported' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
340 |
341 | if let connection = self.photoOutput.connection(with: .video) {
342 | if connection.isVideoStabilizationSupported {
| |- error: 'isVideoStabilizationSupported' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
343 | connection.preferredVideoStabilizationMode = .auto
344 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:343:40: error: 'preferredVideoStabilizationMode' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
341 | if let connection = self.photoOutput.connection(with: .video) {
342 | if connection.isVideoStabilizationSupported {
343 | connection.preferredVideoStabilizationMode = .auto
| |- error: 'preferredVideoStabilizationMode' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
344 | }
345 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:347:38: error: 'maxPhotoQualityPrioritization' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
281 |
282 | /// - Tag: ChangeCamera
283 | public func changeCamera() {
| `- note: add '@available' attribute to enclosing instance method
284 | // MARK: Here disable all camera operation related buttons due to configuration is due upon and must not be interrupted
285 | DispatchQueue.main.async {
:
345 | }
346 |
347 | self.photoOutput.maxPhotoQualityPrioritization = .quality
| |- error: 'maxPhotoQualityPrioritization' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
348 |
349 | self.session.commitConfiguration()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:382:24: error: 'isSubjectAreaChangeMonitoringEnabled' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
360 | }
361 |
362 | public func focus(with focusMode: AVCaptureDevice.FocusMode, exposureMode: AVCaptureDevice.ExposureMode, at devicePoint: CGPoint, monitorSubjectAreaChange: Bool) {
| `- note: add '@available' attribute to enclosing instance method
363 | sessionQueue.async {
364 | guard let device = self.videoDeviceInput?.device else { return }
:
380 | }
381 |
382 | device.isSubjectAreaChangeMonitoringEnabled = monitorSubjectAreaChange
| |- error: 'isSubjectAreaChangeMonitoringEnabled' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
383 | device.unlockForConfiguration()
384 | } catch {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:472:20: error: 'videoZoomFactor' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
464 | }
465 |
466 | public func set(zoom: CGFloat){
| `- note: add '@available' attribute to enclosing instance method
467 | let factor = zoom < 1 ? 1 : zoom
468 | let device = self.videoDeviceInput.device
:
470 | do {
471 | try device.lockForConfiguration()
472 | device.videoZoomFactor = factor
| |- error: 'videoZoomFactor' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
473 | device.unlockForConfiguration()
474 | }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile CameraService.swift
SwiftEmitModule normal arm64 Emitting\ module\ for\ Camera_SwiftUI (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:14:30: error: 'UIDeviceOrientation' is unavailable in tvOS
12 |
13 | extension AVCaptureVideoOrientation {
14 | init?(deviceOrientation: UIDeviceOrientation) {
| `- error: 'UIDeviceOrientation' is unavailable in tvOS
15 | switch deviceOrientation {
16 | case .portrait: self = .portrait
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIOrientation.h:13:28: note: 'UIDeviceOrientation' has been explicitly marked unavailable here
11 | NS_HEADER_AUDIT_BEGIN(nullability, sendability)
12 |
13 | typedef NS_ENUM(NSInteger, UIDeviceOrientation) {
| `- note: 'UIDeviceOrientation' has been explicitly marked unavailable here
14 | UIDeviceOrientationUnknown,
15 | UIDeviceOrientationPortrait, // Device oriented vertically, home button on the bottom
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:24:33: error: 'UIInterfaceOrientation' is unavailable in tvOS
22 | }
23 |
24 | init?(interfaceOrientation: UIInterfaceOrientation) {
| `- error: 'UIInterfaceOrientation' is unavailable in tvOS
25 | switch interfaceOrientation {
26 | case .portrait: self = .portrait
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIOrientation.h:41:28: note: 'UIInterfaceOrientation' has been explicitly marked unavailable here
39 | // Note that UIInterfaceOrientationLandscapeLeft is equal to UIDeviceOrientationLandscapeRight (and vice versa).
40 | // This is because rotating the device to the left requires rotating the content to the right.
41 | typedef NS_ENUM(NSInteger, UIInterfaceOrientation) {
| `- note: 'UIInterfaceOrientation' has been explicitly marked unavailable here
42 | UIInterfaceOrientationUnknown = UIDeviceOrientationUnknown,
43 | UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:13:11: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
11 | import AVFoundation
12 |
13 | extension AVCaptureVideoOrientation {
| `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
14 | init?(deviceOrientation: UIDeviceOrientation) {
15 | switch deviceOrientation {
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:104:28: note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
102 |
103 | /// Constants indicating video orientation, for use with AVCaptureDeviceRotationCoordinator.
104 | typedef NS_ENUM(NSInteger, AVCaptureVideoOrientation) {
| `- note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
105 | /// Indicates that video should be oriented vertically, port on the bottom.
106 | AVCaptureVideoOrientationPortrait = 1,
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift:35:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
33 | }
34 |
35 | extension AVCaptureDevice.DiscoverySession {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing extension
36 | var uniqueDevicePositionsCount: Int {
37 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:65:38: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
63 | // MARK: Observed Properties UI must react to
64 |
65 | @Published public var flashMode: AVCaptureDevice.FlashMode = .off
| `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
66 | @Published public var shouldShowAlertView = false
67 | @Published public var shouldShowSpinner = false
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:79:26: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
77 | // MARK: Session Management Properties
78 |
79 | public let session = AVCaptureSession()
| `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
80 |
81 | var isSessionRunning = false
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:88:41: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
86 | let sessionQueue = DispatchQueue(label: "session queue")
87 |
88 | @objc dynamic var videoDeviceInput: AVCaptureDeviceInput!
| `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
89 |
90 | // MARK: Device Configuration Properties
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:39: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:87: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:112: error: 'builtInDualCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'builtInDualCamera' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:91:132: error: 'builtInTrueDepthCamera' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
89 |
90 | // MARK: Device Configuration Properties
91 | let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)
| `- error: 'builtInTrueDepthCamera' is only available in tvOS 17.0 or newer
92 |
93 | // MARK: Capturing Photos
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:95:23: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
93 | // MARK: Capturing Photos
94 |
95 | let photoOutput = AVCapturePhotoOutput()
| `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
96 |
97 | var inProgressPhotoCaptureDelegates = [Int64: PhotoCaptureProcessor]()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:362:39: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
360 | }
361 |
362 | public func focus(with focusMode: AVCaptureDevice.FocusMode, exposureMode: AVCaptureDevice.ExposureMode, at devicePoint: CGPoint, monitorSubjectAreaChange: Bool) {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
363 | sessionQueue.async {
364 | guard let device = self.videoDeviceInput?.device else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:362:80: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
360 | }
361 |
362 | public func focus(with focusMode: AVCaptureDevice.FocusMode, exposureMode: AVCaptureDevice.ExposureMode, at devicePoint: CGPoint, monitorSubjectAreaChange: Bool) {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
363 | sessionQueue.async {
364 | guard let device = self.videoDeviceInput?.device else { return }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift:638:84: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
58 | }
59 |
60 | public class CameraService: NSObject, Identifiable {
| `- note: add '@available' attribute to enclosing class
61 | typealias PhotoCaptureSessionID = String
62 |
:
636 |
637 | /// - Tag: HandleSystemPressure
638 | private func setRecommendedFrameRateRangeForPressureState(systemPressureState: AVCaptureDevice.SystemPressureState) {
| | `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
639 | /*
640 | The frame rates used here are only for demonstration purposes.
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:12:46: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
9 | import Photos
10 |
11 | class PhotoCaptureProcessor: NSObject {
| `- note: add '@available' attribute to enclosing class
12 | private(set) var requestedPhotoSettings: AVCapturePhotoSettings
| `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
13 |
14 | private let willCapturePhotoAnimation: () -> Void
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:26:39: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
9 | import Photos
10 |
11 | class PhotoCaptureProcessor: NSObject {
| `- note: add '@available' attribute to enclosing class
12 | private(set) var requestedPhotoSettings: AVCapturePhotoSettings
13 |
:
24 | private var maxPhotoProcessingTime: CMTime?
25 |
26 | init(with requestedPhotoSettings: AVCapturePhotoSettings,
| | `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing initializer
27 | willCapturePhotoAnimation: @escaping () -> Void,
28 | completionHandler: @escaping (PhotoCaptureProcessor) -> Void,
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:43:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
41 |
42 | /// - Tag: WillBeginCapture
43 | func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
44 | maxPhotoProcessingTime = resolvedSettings.photoProcessingTimeRange.start + resolvedSettings.photoProcessingTimeRange.duration
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:43:92: error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
41 |
42 | /// - Tag: WillBeginCapture
43 | func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
44 | maxPhotoProcessingTime = resolvedSettings.photoProcessingTimeRange.start + resolvedSettings.photoProcessingTimeRange.duration
45 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:48:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
46 |
47 | /// - Tag: WillCapturePhoto
48 | func photoOutput(_ output: AVCapturePhotoOutput, willCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
49 | DispatchQueue.main.async {
50 | self.willCapturePhotoAnimation()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:48:92: error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
46 |
47 | /// - Tag: WillCapturePhoto
48 | func photoOutput(_ output: AVCapturePhotoOutput, willCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings) {
| | `- error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
49 | DispatchQueue.main.async {
50 | self.willCapturePhotoAnimation()
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:67:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
65 |
66 | /// - Tag: DidFinishProcessingPhoto
67 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
68 |
69 | DispatchQueue.main.async {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:67:86: error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
65 |
66 | /// - Tag: DidFinishProcessingPhoto
67 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
| | `- error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
68 |
69 | DispatchQueue.main.async {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:112:32: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
110 |
111 | /// - Tag: DidFinishCapture
112 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings, error: Error?) {
| | `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
113 | if let error = error {
114 | print("Error capturing photo: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift:112:92: error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
35 | }
36 |
37 | extension PhotoCaptureProcessor: AVCapturePhotoCaptureDelegate {
| `- note: add '@available' attribute to enclosing extension
38 | /*
39 | This extension adopts all of the AVCapturePhotoCaptureDelegate protocol methods.
:
110 |
111 | /// - Tag: DidFinishCapture
112 | func photoOutput(_ output: AVCapturePhotoOutput, didFinishCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings, error: Error?) {
| | `- error: 'AVCaptureResolvedPhotoSettings' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing instance method
113 | if let error = error {
114 | print("Error capturing photo: \(error)")
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:19:32: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
12 |
13 | public struct CameraPreview: UIViewRepresentable {
14 | public class VideoPreviewView: UIView {
| `- note: add '@available' attribute to enclosing class
15 | public override class var layerClass: AnyClass {
16 | AVCaptureVideoPreviewLayer.self
17 | }
18 |
19 | var videoPreviewLayer: AVCaptureVideoPreviewLayer {
| | `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
20 | return layer as! AVCaptureVideoPreviewLayer
21 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:63:25: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
11 | import SwiftUI
12 |
13 | public struct CameraPreview: UIViewRepresentable {
| `- note: add '@available' attribute to enclosing struct
14 | public class VideoPreviewView: UIView {
15 | public override class var layerClass: AnyClass {
:
61 | }
62 |
63 | public let session: AVCaptureSession
| `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
64 |
65 | public init(session: AVCaptureSession) {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:65:26: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
11 | import SwiftUI
12 |
13 | public struct CameraPreview: UIViewRepresentable {
| `- note: add '@available' attribute to enclosing struct
14 | public class VideoPreviewView: UIView {
15 | public override class var layerClass: AnyClass {
:
63 | public let session: AVCaptureSession
64 |
65 | public init(session: AVCaptureSession) {
| | `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing initializer
66 | self.session = session
67 | }
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/Camera-SwiftUI/Service/CameraService+Enums.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService+Extensions.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/CameraService.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/ImageResizer.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/Service/PhotoCaptureProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift -target arm64-apple-tvos15.0 -disable-cross-import-overlay-search -swift-module-cross-import Photos /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Photos.framework/Modules/Photos.swiftcrossimport/AppIntents.swiftoverlay -swift-module-cross-import Photos /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/Photos.framework/Modules/Photos.swiftcrossimport/AppIntents.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/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera_SwiftUI-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/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Camera_SwiftUI -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera-SwiftUI_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/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera_SwiftUI.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera_SwiftUI.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera-SwiftUI-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera-SwiftUI-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera-SwiftUI-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera_SwiftUI.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Camera-SwiftUI.build/Debug-appletvos/Camera-SwiftUI-t.build/Objects-normal/arm64/Camera_SwiftUI.abi.json
SwiftCompile normal arm64 (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
SwiftCompile normal arm64 Compiling\ CameraPreview.swift /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:19:32: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
12 |
13 | public struct CameraPreview: UIViewRepresentable {
14 | public class VideoPreviewView: UIView {
| `- note: add '@available' attribute to enclosing class
15 | public override class var layerClass: AnyClass {
16 | AVCaptureVideoPreviewLayer.self
17 | }
18 |
19 | var videoPreviewLayer: AVCaptureVideoPreviewLayer {
| | `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing property
20 | return layer as! AVCaptureVideoPreviewLayer
21 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:63:25: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
11 | import SwiftUI
12 |
13 | public struct CameraPreview: UIViewRepresentable {
| `- note: add '@available' attribute to enclosing struct
14 | public class VideoPreviewView: UIView {
15 | public override class var layerClass: AnyClass {
:
61 | }
62 |
63 | public let session: AVCaptureSession
| `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
64 |
65 | public init(session: AVCaptureSession) {
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:65:26: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
11 | import SwiftUI
12 |
13 | public struct CameraPreview: UIViewRepresentable {
| `- note: add '@available' attribute to enclosing struct
14 | public class VideoPreviewView: UIView {
15 | public override class var layerClass: AnyClass {
:
63 | public let session: AVCaptureSession
64 |
65 | public init(session: AVCaptureSession) {
| | `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
| `- note: add '@available' attribute to enclosing initializer
66 | self.session = session
67 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:16:13: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
12 |
13 | public struct CameraPreview: UIViewRepresentable {
14 | public class VideoPreviewView: UIView {
| `- note: add '@available' attribute to enclosing class
15 | public override class var layerClass: AnyClass {
| `- note: add '@available' attribute to enclosing class property
16 | AVCaptureVideoPreviewLayer.self
| |- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
17 | }
18 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:20:30: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
12 |
13 | public struct CameraPreview: UIViewRepresentable {
14 | public class VideoPreviewView: UIView {
| `- note: add '@available' attribute to enclosing class
15 | public override class var layerClass: AnyClass {
16 | AVCaptureVideoPreviewLayer.self
17 | }
18 |
19 | var videoPreviewLayer: AVCaptureVideoPreviewLayer {
| `- note: add '@available' attribute to enclosing property
20 | return layer as! AVCaptureVideoPreviewLayer
| |- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
21 | }
22 |
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:35:49: error: 'captureDevicePointConverted(fromLayerPoint:)' is only available in tvOS 17.0 or newer
12 |
13 | public struct CameraPreview: UIViewRepresentable {
14 | public class VideoPreviewView: UIView {
| `- note: add '@available' attribute to enclosing class
15 | public override class var layerClass: AnyClass {
16 | AVCaptureVideoPreviewLayer.self
:
31 | }()
32 |
33 | @objc func focusAndExposeTap(gestureRecognizer: UITapGestureRecognizer) {
| `- note: add '@available' attribute to enclosing instance method
34 | let layerPoint = gestureRecognizer.location(in: gestureRecognizer.view)
35 | let devicePoint = videoPreviewLayer.captureDevicePointConverted(fromLayerPoint: layerPoint)
| |- error: 'captureDevicePointConverted(fromLayerPoint:)' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
36 |
37 | self.focusView.layer.frame = CGRect(origin: layerPoint, size: CGSize(width: 50, height: 50))
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:74:38: error: 'connection' is only available in tvOS 17.0 or newer
11 | import SwiftUI
12 |
13 | public struct CameraPreview: UIViewRepresentable {
| `- note: add '@available' attribute to enclosing struct
14 | public class VideoPreviewView: UIView {
15 | public override class var layerClass: AnyClass {
:
67 | }
68 |
69 | public func makeUIView(context: Context) -> VideoPreviewView {
| `- note: add '@available' attribute to enclosing instance method
70 | let viewFinder = VideoPreviewView()
71 | viewFinder.backgroundColor = .black
72 | viewFinder.videoPreviewLayer.cornerRadius = 0
73 | viewFinder.videoPreviewLayer.session = session
74 | viewFinder.videoPreviewLayer.connection?.videoOrientation = .portrait
| |- error: 'connection' is only available in tvOS 17.0 or newer
| `- note: add 'if #available' version check
75 | return viewFinder
76 | }
/Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift:74:50: error: 'videoOrientation' is unavailable in tvOS
72 | viewFinder.videoPreviewLayer.cornerRadius = 0
73 | viewFinder.videoPreviewLayer.session = session
74 | viewFinder.videoPreviewLayer.connection?.videoOrientation = .portrait
| `- error: 'videoOrientation' is unavailable in tvOS
75 | return viewFinder
76 | }
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h:1111:48: note: 'videoOrientation' has been explicitly marked unavailable here
1109 | This property is deprecated. Use -videoRotationAngle instead. This property may only be set if -isVideoOrientationSupported returns YES, otherwise an NSInvalidArgumentException is thrown.
1110 | */
1111 | @property(nonatomic) AVCaptureVideoOrientation videoOrientation API_DEPRECATED("Use -videoRotationAngle instead", macos(10.7, 14.0), ios(4.0, 17.0), macCatalyst(14.0, 17.0)) API_UNAVAILABLE(tvos, visionos);
| `- note: 'videoOrientation' has been explicitly marked unavailable here
1112 |
1113 | /*!
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Camera-SwiftUI/View/CameraPreview.swift (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile CameraPreview.swift
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
2026-09-19 17:05:46.341 xcodebuild[752:4643] [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\ Camera_SwiftUI (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
SwiftCompile normal arm64 (in target 'Camera-SwiftUI' from project 'Camera-SwiftUI')
Building workspace Camera-SwiftUI with scheme Camera-SwiftUI
(3 failures)
BUILD FAILURE 6.4 tvOS