The Swift Package Index logo.Swift Package Index

Build Information

Failed to build Aespa, reference 0.5.3 (66a9fa), with Swift 6.4 for tvOS using Xcode 27.0 on 20 Sep 2026 19:23:46 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 Aespa -destination generic/platform=tvOS

Build Log

    |                           `- note: add 'if #available' version check
182 |         guard self.canAddOutput(photoOutput) else {
183 |             throw AespaError.device(reason: .unableToSetOutput)
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:200:21: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
    :
188 |
189 |     // MARK: - Option related
190 |     func cameraPosition(
    |          `- note: add '@available' attribute to enclosing instance method
191 |         to position: AVCaptureDevice.Position,
192 |         device deviceType: AVCaptureDevice.DeviceType?
    :
198 |         }
199 |
200 |         let device: AVCaptureDevice
    |                     |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                     `- note: add 'if #available' version check
201 |         if
202 |             let deviceType,
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:203:33: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
    :
188 |
189 |     // MARK: - Option related
190 |     func cameraPosition(
    |          `- note: add '@available' attribute to enclosing instance method
191 |         to position: AVCaptureDevice.Position,
192 |         device deviceType: AVCaptureDevice.DeviceType?
    :
201 |         if
202 |             let deviceType,
203 |             let captureDeivce = AVCaptureDevice.default(deviceType, for: .video, position: position)
    |                                 |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                                 `- note: add 'if #available' version check
204 |         {
205 |             device = captureDeivce
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:203:49: error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
    :
188 |
189 |     // MARK: - Option related
190 |     func cameraPosition(
    |          `- note: add '@available' attribute to enclosing instance method
191 |         to position: AVCaptureDevice.Position,
192 |         device deviceType: AVCaptureDevice.DeviceType?
    :
201 |         if
202 |             let deviceType,
203 |             let captureDeivce = AVCaptureDevice.default(deviceType, for: .video, position: position)
    |                                                 |- error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
    |                                                 `- note: add 'if #available' version check
204 |         {
205 |             device = captureDeivce
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureConnection+AespaRepresentable.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureDevice+AespaRepresentable.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureFileOutput+AespaRepresentable.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCaptureFileOutput+AespaRepresentable.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCapturePhotoOutput+AespaRepresentable.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVCapturePhotoOutput+AespaRepresentable.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AespaCoreSession+AespaRepresentable.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/Photos+AespaRepresentable.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Photos+AespaRepresentable.swift
SwiftCompile normal arm64 Compiling\ AespaCoreRecorder.swift,\ AespaCoreSession.swift,\ AespaEventManager.swift,\ AespaPhotoContext.swift,\ AespaVideoContext.swift,\ Context.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreRecorder.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreSession.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaEventManager.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaVideoContext.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift (in target 'Aespa' from project 'Aespa')
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreRecorder.swift:72:19: error: 'AVCaptureFileOutput' is only available in tvOS 17.0 or newer
68 | }
69 |
70 | extension AespaCoreRecorder: AVCaptureFileOutputRecordingDelegate {
   | `- note: add '@available' attribute to enclosing extension
71 |     func fileOutput(
   |          `- note: add '@available' attribute to enclosing instance method
72 |         _ output: AVCaptureFileOutput,
   |                   `- error: 'AVCaptureFileOutput' is only available in tvOS 17.0 or newer
73 |         didStartRecordingTo fileURL: URL,
74 |         from connections: [AVCaptureConnection]
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreRecorder.swift:74:28: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
68 | }
69 |
70 | extension AespaCoreRecorder: AVCaptureFileOutputRecordingDelegate {
   | `- note: add '@available' attribute to enclosing extension
71 |     func fileOutput(
   |          `- note: add '@available' attribute to enclosing instance method
72 |         _ output: AVCaptureFileOutput,
73 |         didStartRecordingTo fileURL: URL,
74 |         from connections: [AVCaptureConnection]
   |                            `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
75 |     ) {
76 |         Logger.log(message: "Recording started")
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreRecorder.swift:80:19: error: 'AVCaptureFileOutput' is only available in tvOS 17.0 or newer
68 | }
69 |
70 | extension AespaCoreRecorder: AVCaptureFileOutputRecordingDelegate {
   | `- note: add '@available' attribute to enclosing extension
71 |     func fileOutput(
72 |         _ output: AVCaptureFileOutput,
   :
77 |     }
78 |
79 |     func fileOutput(
   |          `- note: add '@available' attribute to enclosing instance method
80 |         _ output: AVCaptureFileOutput,
   |                   `- error: 'AVCaptureFileOutput' is only available in tvOS 17.0 or newer
81 |         didFinishRecordingTo outputFileURL: URL,
82 |         from connections: [AVCaptureConnection],
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreRecorder.swift:82:28: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
68 | }
69 |
70 | extension AespaCoreRecorder: AVCaptureFileOutputRecordingDelegate {
   | `- note: add '@available' attribute to enclosing extension
71 |     func fileOutput(
72 |         _ output: AVCaptureFileOutput,
   :
77 |     }
78 |
79 |     func fileOutput(
   |          `- note: add '@available' attribute to enclosing instance method
80 |         _ output: AVCaptureFileOutput,
81 |         didFinishRecordingTo outputFileURL: URL,
82 |         from connections: [AVCaptureConnection],
   |                            `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
83 |         error: Error?
84 |     ) {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreSession.swift:13:25: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 11 | import AVFoundation
 12 |
 13 | class AespaCoreSession: AVCaptureSession {
    |       |                 `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    |       `- note: add '@available' attribute to enclosing class
 14 |     var option: AespaOption
 15 |     private var workQueue = OperationQueue()
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreSession.swift:66:45: error: 'connections' is only available in tvOS 17.0 or newer
 11 | import AVFoundation
 12 |
 13 | class AespaCoreSession: AVCaptureSession {
    |       `- note: add '@available' attribute to enclosing class
 14 |     var option: AespaOption
 15 |     private var workQueue = OperationQueue()
    :
 61 |     }
 62 |
 63 |     func run<T: AespaConnectionTuning>(_ tuner: T, _ onComplete: @escaping CompletionHandler) {
    |          `- note: add '@available' attribute to enclosing instance method
 64 |         workQueue.addOperation {
 65 |             do {
 66 |                 guard let connection = self.connections.first else {
    |                                             |- error: 'connections' is only available in tvOS 17.0 or newer
    |                                             `- note: add 'if #available' version check
 67 |                     throw AespaError.session(reason: .cannotFindConnection)
 68 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:21:31: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 12 | /// `AespaPhotoContext` is an open class that provides a context for photo capturing operations.
 13 | /// It has methods and properties to handle the photo capturing and settings.
 14 | open class AespaPhotoContext {
    |            `- note: add '@available' attribute to enclosing class
 15 |     private let coreSession: AespaCoreSession
 16 |     private let albumManager: AespaCoreAlbumManager
    :
 19 |     private let camera: AespaCoreCamera
 20 |
 21 |     private var photoSetting: AVCapturePhotoSettings
    |                               `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 22 |     private let photoFileBufferSubject: CurrentValueSubject<Result<PhotoFile, Error>?, Never>
 23 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:66:32: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 49 | }
 50 |
 51 | extension AespaPhotoContext: PhotoContext {
    | `- note: add '@available' attribute to enclosing extension
 52 |     public var underlyingPhotoContext: AespaPhotoContext {
 53 |         self
    :
 64 |     }
 65 |
 66 |     public var currentSetting: AVCapturePhotoSettings {
    |                |               `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |                `- note: add '@available' attribute to enclosing property
 67 |         photoSetting
 68 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:148:36: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
143 |
144 | // MARK: - Deprecated methods
145 | extension AespaPhotoContext {
    | `- note: add '@available' attribute to enclosing extension
146 |     @available(*, deprecated, message: "Please use `photo` instead.")
147 |     @discardableResult
148 |     public func flashMode(to mode: AVCaptureDevice.FlashMode) -> AespaPhotoContext {
    |                 |                  `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing instance method
149 |         photoSetting.flashMode = mode
150 |         return self
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:161:35: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
143 |
144 | // MARK: - Deprecated methods
145 | extension AespaPhotoContext {
    | `- note: add '@available' attribute to enclosing extension
146 |     @available(*, deprecated, message: "Please use `photo` instead.")
147 |     @discardableResult
    :
159 |
160 |     @available(*, deprecated, message: "Please use `photo` instead.")
161 |     public func custom(_ setting: AVCapturePhotoSettings) -> AespaPhotoContext {
    |                 |                 `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing instance method
162 |         photoSetting = setting
163 |         return self
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:35:29: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 12 | /// `AespaPhotoContext` is an open class that provides a context for photo capturing operations.
 13 | /// It has methods and properties to handle the photo capturing and settings.
 14 | open class AespaPhotoContext {
    |            `- note: add '@available' attribute to enclosing class
 15 |     private let coreSession: AespaCoreSession
 16 |     private let albumManager: AespaCoreAlbumManager
    :
 22 |     private let photoFileBufferSubject: CurrentValueSubject<Result<PhotoFile, Error>?, Never>
 23 |
 24 |     init(
    |     `- note: add '@available' attribute to enclosing initializer
 25 |         coreSession: AespaCoreSession,
 26 |         camera: AespaCoreCamera,
    :
 33 |         self.option = option
 34 |
 35 |         self.photoSetting = AVCapturePhotoSettings()
    |                             |- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |                             `- note: add 'if #available' version check
 36 |         self.photoFileBufferSubject = .init(nil)
 37 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:96:26: error: 'isAutoRedEyeReductionEnabled' is only available in tvOS 17.0 or newer
 49 | }
 50 |
 51 | extension AespaPhotoContext: PhotoContext {
    | `- note: add '@available' attribute to enclosing extension
 52 |     public var underlyingPhotoContext: AespaPhotoContext {
 53 |         self
    :
 84 |
 85 |     @discardableResult
 86 |     public func photo(
    |                 `- note: add '@available' attribute to enclosing instance method
 87 |         _ photoContextOption: PhotoContextOption,
 88 |         onComplete: CompletionHandler? = nil
    :
 94 |             photoSetting.flashMode = flashMode
 95 |         case .redEyeReduction(let enabled):
 96 |             photoSetting.isAutoRedEyeReductionEnabled = enabled
    |                          |- error: 'isAutoRedEyeReductionEnabled' is only available in tvOS 17.0 or newer
    |                          `- note: add 'if #available' version check
 97 |         case .custom(let aVCapturePhotoSettings):
 98 |             photoSetting = aVCapturePhotoSettings
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:123:23: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
119 | }
120 |
121 | private extension AespaPhotoContext {
    |         `- note: add '@available' attribute to enclosing extension
122 |     func capturePhotoWithError(autoVideoOrientationEnabled: Bool) async throws -> PhotoFile {
    |          `- note: add '@available' attribute to enclosing instance method
123 |         let setting = AVCapturePhotoSettings(from: photoSetting)
    |                       |- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |                       `- note: add 'if #available' version check
124 |         let capturePhoto = try await camera.capture(setting: setting, autoVideoOrientationEnabled: autoVideoOrientationEnabled)
125 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:126:47: error: 'fileDataRepresentation()' is only available in tvOS 17.0 or newer
119 | }
120 |
121 | private extension AespaPhotoContext {
    |         `- note: add '@available' attribute to enclosing extension
122 |     func capturePhotoWithError(autoVideoOrientationEnabled: Bool) async throws -> PhotoFile {
    |          `- note: add '@available' attribute to enclosing instance method
123 |         let setting = AVCapturePhotoSettings(from: photoSetting)
124 |         let capturePhoto = try await camera.capture(setting: setting, autoVideoOrientationEnabled: autoVideoOrientationEnabled)
125 |
126 |         guard let rawPhotoData = capturePhoto.fileDataRepresentation() else {
    |                                               |- error: 'fileDataRepresentation()' is only available in tvOS 17.0 or newer
    |                                               `- note: add 'if #available' version check
127 |             throw AespaError.file(reason: .unableToFlatten)
128 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:156:22: error: 'isAutoRedEyeReductionEnabled' is only available in tvOS 17.0 or newer
143 |
144 | // MARK: - Deprecated methods
145 | extension AespaPhotoContext {
    | `- note: add '@available' attribute to enclosing extension
146 |     @available(*, deprecated, message: "Please use `photo` instead.")
147 |     @discardableResult
    :
153 |     @available(*, deprecated, message: "Please use `photo` instead.")
154 |     @discardableResult
155 |     public func redEyeReduction(enabled: Bool) -> AespaPhotoContext {
    |                 `- note: add '@available' attribute to enclosing instance method
156 |         photoSetting.isAutoRedEyeReductionEnabled = enabled
    |                      |- error: 'isAutoRedEyeReductionEnabled' is only available in tvOS 17.0 or newer
    |                      `- note: add 'if #available' version check
157 |         return self
158 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaVideoContext.swift:185:15: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
161 |
162 | // MARK: - Deprecated methods
163 | extension AespaVideoContext {
    | `- note: add '@available' attribute to enclosing extension
164 |     @available(*, deprecated, message: "Please use `video` instead.")
165 |     @discardableResult
    :
182 |     @available(*, deprecated, message: "Please use `video` instead.")
183 |     @discardableResult
184 |     public func stabilization(
    |                 `- note: add '@available' attribute to enclosing instance method
185 |         mode: AVCaptureVideoStabilizationMode,
    |               `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
186 |         _ onComplete: @escaping CompletionHandler = { _ in }
187 |     ) -> AespaVideoContext {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaVideoContext.swift:197:15: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
161 |
162 | // MARK: - Deprecated methods
163 | extension AespaVideoContext {
    | `- note: add '@available' attribute to enclosing extension
164 |     @available(*, deprecated, message: "Please use `video` instead.")
165 |     @discardableResult
    :
194 |     @available(*, deprecated, message: "Please use `video` instead.")
195 |     @discardableResult
196 |     public func torch(
    |                 `- note: add '@available' attribute to enclosing instance method
197 |         mode: AVCaptureDevice.TorchMode,
    |               `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
198 |         level: Float,
199 |         _ onComplete: @escaping CompletionHandler = { _ in }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:54:20: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 23 | /// It includes methods to control the quality, position, orientation, and auto-focusing behavior
 24 | /// of the session. It also includes the ability to adjust the zoom level of the session.
 25 | public protocol CommonContext {
    |                 `- note: add '@available' attribute to enclosing protocol
 26 |     ///
 27 |     associatedtype CommonContextType: CommonContext & VideoContext & PhotoContext
    :
 51 |     ///
 52 |     /// - Returns: `AespaVideoContext`, for chaining calls.
 53 |     @discardableResult func quality(
    |                             `- note: add '@available' attribute to enclosing instance method
 54 |         to preset: AVCaptureSession.Preset,
    |                    `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 55 |         _ onComplete: @escaping CompletionHandler
 56 |     ) -> CommonContextType
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:68:22: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 23 | /// It includes methods to control the quality, position, orientation, and auto-focusing behavior
 24 | /// of the session. It also includes the ability to adjust the zoom level of the session.
 25 | public protocol CommonContext {
    |                 `- note: add '@available' attribute to enclosing protocol
 26 |     ///
 27 |     associatedtype CommonContextType: CommonContext & VideoContext & PhotoContext
    :
 65 |     ///
 66 |     /// - Returns: `AespaVideoContext`, for chaining calls.
 67 |     @discardableResult func position(
    |                             `- note: add '@available' attribute to enclosing instance method
 68 |         to position: AVCaptureDevice.Position,
    |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 69 |         _ onComplete: @escaping CompletionHandler
 70 |     ) -> CommonContextType
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:83:25: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
 81 |     ///     not the orientation of the `AVCaptureVideoPreviewLayer`.
 82 |     @discardableResult func orientation(
 83 |         to orientation: AVCaptureVideoOrientation,
    |                         `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
 84 |         _ onComplete: @escaping CompletionHandler
 85 |     ) -> CommonContextType
/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/Aespa/Core/Context/Context.swift:96:15: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 23 | /// It includes methods to control the quality, position, orientation, and auto-focusing behavior
 24 | /// of the session. It also includes the ability to adjust the zoom level of the session.
 25 | public protocol CommonContext {
    |                 `- note: add '@available' attribute to enclosing protocol
 26 |     ///
 27 |     associatedtype CommonContextType: CommonContext & VideoContext & PhotoContext
    :
 93 |     ///
 94 |     /// - Returns: `AespaVideoContext`, for chaining calls.
 95 |     @discardableResult func focus(
    |                             `- note: add '@available' attribute to enclosing instance method
 96 |         mode: AVCaptureDevice.FocusMode,
    |               `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 97 |         point: CGPoint?,
 98 |         _ onComplete: @escaping CompletionHandler
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:230:15: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
139 | /// the session is currently recording or muted, and controlling video recording,
140 | /// stabilization, torch mode, and fetching recorded video files.
141 | public protocol VideoContext {
    |                 `- note: add '@available' attribute to enclosing protocol
142 |     ///
143 |     associatedtype VideoContextType: VideoContext
    :
227 |     /// - Returns: The modified `VideoContextType` for chaining calls.
228 |     @discardableResult
229 |     func stabilization(
    |          `- note: add '@available' attribute to enclosing instance method
230 |         mode: AVCaptureVideoStabilizationMode,
    |               `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
231 |         _ onComplete: @escaping CompletionHandler
232 |     ) -> VideoContextType
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:246:15: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
139 | /// the session is currently recording or muted, and controlling video recording,
140 | /// stabilization, torch mode, and fetching recorded video files.
141 | public protocol VideoContext {
    |                 `- note: add '@available' attribute to enclosing protocol
142 |     ///
143 |     associatedtype VideoContextType: VideoContext
    :
243 |     ///   or the specified level is not within the acceptable range.
244 |     @discardableResult
245 |     func torch(
    |          `- note: add '@available' attribute to enclosing instance method
246 |         mode: AVCaptureDevice.TorchMode,
    |               `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
247 |         level: Float,
248 |         _ onComplete: @escaping CompletionHandler
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:278:25: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
263 | /// current photo settings, controlling flash mode, and red-eye reduction, capturing
264 | /// photo, and fetching captured photo files.
265 | public protocol PhotoContext {
    |                 `- note: add '@available' attribute to enclosing protocol
266 |     ///
267 |     associatedtype PhotoContextType: PhotoContext
    :
276 |
277 |     /// A variable holding current `AVCapturePhotoSettings`
278 |     var currentSetting: AVCapturePhotoSettings { get }
    |         |               `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
279 |
280 |     /// Asynchronously captures a photo using the specified `AVCapturePhotoSettings`.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:324:48: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
263 | /// current photo settings, controlling flash mode, and red-eye reduction, capturing
264 | /// photo, and fetching captured photo files.
265 | public protocol PhotoContext {
    |                 `- note: add '@available' attribute to enclosing protocol
266 |     ///
267 |     associatedtype PhotoContextType: PhotoContext
    :
322 |     /// - Parameter mode: The `AVCaptureDevice.FlashMode` to set for the camera.
323 |     /// - Returns: The updated `AespaPhotoContext` instance.
324 |     @discardableResult func flashMode(to mode: AVCaptureDevice.FlashMode) -> PhotoContextType
    |                             |                  `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                             `- note: add '@available' attribute to enclosing instance method
325 |
326 |     /// Sets the red eye reduction mode for the camera and returns the updated `AespaPhotoContext` instance.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:340:28: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
263 | /// current photo settings, controlling flash mode, and red-eye reduction, capturing
264 | /// photo, and fetching captured photo files.
265 | public protocol PhotoContext {
    |                 `- note: add '@available' attribute to enclosing protocol
266 |     ///
267 |     associatedtype PhotoContextType: PhotoContext
    :
338 |     ///
339 |     /// - Parameter setting: The `AVCapturePhotoSettings` to use for photo capturing.
340 |     func custom(_ setting: AVCapturePhotoSettings) -> PhotoContextType
    |          |                 `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
341 |
342 |     // MARK: - Utilities
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:366:26: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
359 | /// It's designed to be used with the `common` method of `AespaSession`
360 | /// to apply these configurations in a unified and streamlined manner.
361 | public enum CommonContextOption {
    |             `- note: add '@available' attribute to enclosing enum
362 |     /// Sets the quality preset for the video recording session.
363 |     ///
364 |     /// - Parameters:
365 |     ///   - preset: An `AVCaptureSession.Preset` value indicating the quality preset to be set.
366 |     case quality(preset: AVCaptureSession.Preset)
    |                          `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
367 |
368 |     /// Sets the camera position for the video recording session.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:374:29: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
359 | /// It's designed to be used with the `common` method of `AespaSession`
360 | /// to apply these configurations in a unified and streamlined manner.
361 | public enum CommonContextOption {
    |             `- note: add '@available' attribute to enclosing enum
362 |     /// Sets the quality preset for the video recording session.
363 |     ///
    :
372 |     /// - Parameters:
373 |     ///   - position: An `AVCaptureDevice.Position` value indicating the camera position to be set.
374 |     case position(position: AVCaptureDevice.Position)
    |                             `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
375 |
376 |     /// Sets the orientation for the session.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:383:35: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
381 |     /// - Note: It sets the orientation of the video you are recording,
382 |     ///     not the orientation of the `AVCaptureVideoPreviewLayer`.
383 |     case orientation(orientation: AVCaptureVideoOrientation)
    |                                   `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
384 |
385 |     /// Sets the autofocusing mode for the video recording session.
/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/Aespa/Core/Context/Context.swift:390:22: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
359 | /// It's designed to be used with the `common` method of `AespaSession`
360 | /// to apply these configurations in a unified and streamlined manner.
361 | public enum CommonContextOption {
    |             `- note: add '@available' attribute to enclosing enum
362 |     /// Sets the quality preset for the video recording session.
363 |     ///
    :
388 |     ///   - mode: The focus mode(`AVCaptureDevice.FocusMode`) for the session.
389 |     ///   - point: The point in the camera's field of view that the auto focus should prioritize.
390 |     case focus(mode: AVCaptureDevice.FocusMode, point: CGPoint? = nil)
    |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
391 |
392 |     /// Sets the zoom factor for the video recording session.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:429:30: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
416 | ///
417 | /// It's designed to be used with methods of `AespaSession` to apply these configurations in a streamlined manner.
418 | public enum VideoContextOption {
    |             `- note: add '@available' attribute to enclosing enum
419 |     /// Mutes the audio input for the video recording session.
420 |     case mute
    :
427 |     /// - Parameters:
428 |     ///   - mode: An `AVCaptureVideoStabilizationMode` value indicating the stabilization mode to be set.
429 |     case stabilization(mode: AVCaptureVideoStabilizationMode)
    |                              `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
430 |
431 |     /// Sets the torch mode and level for the video recording session.
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreRecorder.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AespaCoreRecorder.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreSession.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AespaCoreSession.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaEventManager.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AespaEventManager.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AespaPhotoContext.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaVideoContext.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AespaVideoContext.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Context.swift
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:439:22: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
416 | ///
417 | /// It's designed to be used with methods of `AespaSession` to apply these configurations in a streamlined manner.
418 | public enum VideoContextOption {
    |             `- note: add '@available' attribute to enclosing enum
419 |     /// Mutes the audio input for the video recording session.
420 |     case mute
    :
437 |     /// - Note: This function might throw an error if the torch mode is not supported,
438 |     ///   or the specified level is not within the acceptable range.
439 |     case torch(mode: AVCaptureDevice.TorchMode, level: Float)
    |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
440 |
441 |     /// This function provides a way to use a custom tuner to modify the current session.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:460:26: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
453 | ///
454 | /// These options are designed to be used with methods of `AespaSession` to apply configurations effectively.
455 | public enum PhotoContextOption {
    |             `- note: add '@available' attribute to enclosing enum
456 |     /// Sets the flash mode for the camera and returns the updated `AespaPhotoContext` instance.
457 |     /// The returned instance can be used for chaining configuration.
458 |     ///
459 |     /// - Parameter mode: The `AVCaptureDevice.FlashMode` to set for the camera.
460 |     case flashMode(mode: AVCaptureDevice.FlashMode)
    |                          `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
461 |
462 |     /// Sets the red eye reduction mode for the camera and returns the updated `AespaPhotoContext` instance.
SwiftCompile normal arm64 Compiling\ AudioTuner.swift,\ CameraPositionTuner.swift,\ QualityTuner.swift,\ SessionTerminationTuner.swift,\ AlbumImporter.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/AudioTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/CameraPositionTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/QualityTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/SessionTerminationTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Album/AlbumImporter.swift (in target 'Aespa' from project 'Aespa')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/AudioTuner.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AudioTuner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/CameraPositionTuner.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile CameraPositionTuner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/QualityTuner.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile QualityTuner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/SessionTerminationTuner.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile SessionTerminationTuner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Album/AlbumImporter.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AlbumImporter.swift
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/CameraPositionTuner.swift:12:19: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | struct CameraPositionTuner: AespaSessionTuning {
   |        `- note: add '@available' attribute to enclosing struct
11 |     let needTransaction = true
12 |     var position: AVCaptureDevice.Position
   |                   `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
13 |     var devicePreference: AVCaptureDevice.DeviceType?
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/CameraPositionTuner.swift:13:27: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | struct CameraPositionTuner: AespaSessionTuning {
   |        `- note: add '@available' attribute to enclosing struct
11 |     let needTransaction = true
12 |     var position: AVCaptureDevice.Position
13 |     var devicePreference: AVCaptureDevice.DeviceType?
   |                           `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
14 |
15 |     init(position: AVCaptureDevice.Position, devicePreference: AVCaptureDevice.DeviceType? = nil) {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/CameraPositionTuner.swift:15:20: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | struct CameraPositionTuner: AespaSessionTuning {
   |        `- note: add '@available' attribute to enclosing struct
11 |     let needTransaction = true
12 |     var position: AVCaptureDevice.Position
13 |     var devicePreference: AVCaptureDevice.DeviceType?
14 |
15 |     init(position: AVCaptureDevice.Position, devicePreference: AVCaptureDevice.DeviceType? = nil) {
   |     |              `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |     `- note: add '@available' attribute to enclosing initializer
16 |         self.position = position
17 |         self.devicePreference = devicePreference
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/CameraPositionTuner.swift:15:64: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | struct CameraPositionTuner: AespaSessionTuning {
   |        `- note: add '@available' attribute to enclosing struct
11 |     let needTransaction = true
12 |     var position: AVCaptureDevice.Position
13 |     var devicePreference: AVCaptureDevice.DeviceType?
14 |
15 |     init(position: AVCaptureDevice.Position, devicePreference: AVCaptureDevice.DeviceType? = nil) {
   |     |                                                          `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |     `- note: add '@available' attribute to enclosing initializer
16 |         self.position = position
17 |         self.devicePreference = devicePreference
SwiftCompile normal arm64 Compiling\ VideoStabilizationTuner.swift,\ ChangeMonitoringTuner.swift,\ FocusTuner.swift,\ TorchTuner.swift,\ ZoomTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Connection/VideoStabilizationTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/ChangeMonitoringTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/FocusTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/TorchTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/ZoomTuner.swift (in target 'Aespa' from project 'Aespa')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Connection/VideoStabilizationTuner.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile VideoStabilizationTuner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/ChangeMonitoringTuner.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile ChangeMonitoringTuner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/FocusTuner.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile FocusTuner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/TorchTuner.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile TorchTuner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/ZoomTuner.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile ZoomTuner.swift
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Connection/VideoStabilizationTuner.swift:11:27: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | struct VideoStabilizationTuner: AespaConnectionTuning {
   |        `- note: add '@available' attribute to enclosing struct
11 |     var stabilzationMode: AVCaptureVideoStabilizationMode
   |                           `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
12 |
13 |     func tune<T: AespaCaptureConnectionRepresentable>(_ connection: T) {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/FocusTuner.swift:15:15: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
10 | import AVFoundation
11 |
12 | struct FocusTuner: AespaDeviceTuning {
   |        `- note: add '@available' attribute to enclosing struct
13 |     let needLock = true
14 |
15 |     let mode: AVCaptureDevice.FocusMode
   |               `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
16 |     let point: CGPoint?
17 |
SwiftCompile normal arm64 Compiling\ FileWritingProcessor.swift,\ FinishRecordProcessor.swift,\ StartRecordProcessor.swift,\ AespaTuning.swift,\ VideoOrientationTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/File/FileWritingProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Record/FinishRecordProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Record/StartRecordProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/AespaTuning.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Connection/VideoOrientationTuner.swift (in target 'Aespa' from project 'Aespa')
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Record/StartRecordProcessor.swift:13:19: error: 'AVCaptureFileOutputRecordingDelegate' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | struct StartRecordProcessor: AespaMovieFileOutputProcessing {
   |        `- note: add '@available' attribute to enclosing struct
12 |     let filePath: URL
13 |     let delegate: AVCaptureFileOutputRecordingDelegate
   |                   `- error: 'AVCaptureFileOutputRecordingDelegate' is only available in tvOS 17.0 or newer
14 |     let autoVideoOrientationEnabled: Bool
15 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Record/StartRecordProcessor.swift:22:57: error: 'orientation' is unavailable in tvOS
20 |
21 |         if autoVideoOrientationEnabled {
22 |             connection.orientation(to: UIDevice.current.orientation.toVideoOrientation)
   |                                                         `- error: 'orientation' is unavailable in tvOS
23 |         }
24 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDevice.h:44:51: note: 'orientation' has been explicitly marked unavailable here
42 | @property(nonatomic,readonly,strong) NSString    *systemName;        // e.g. @"iOS"
43 | @property(nonatomic,readonly,strong) NSString    *systemVersion;     // e.g. @"4.0"
44 | @property(nonatomic,readonly) UIDeviceOrientation orientation API_UNAVAILABLE(tvos, visionos);       // return current device orientation.  this will return UIDeviceOrientationUnknown unless device orientation notifications are being generated.
   |                                                   `- note: 'orientation' has been explicitly marked unavailable here
45 |
46 | @property(nullable, nonatomic,readonly,strong) NSUUID      *identifierForVendor API_AVAILABLE(ios(6.0));      // a UUID that may be used to uniquely identify the device, same across apps from a single vendor.
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/File/FileWritingProcessor.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile FileWritingProcessor.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Record/FinishRecordProcessor.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile FinishRecordProcessor.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Record/StartRecordProcessor.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile StartRecordProcessor.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/AespaTuning.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AespaTuning.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Connection/VideoOrientationTuner.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile VideoOrientationTuner.swift
SwiftCompile normal arm64 Compiling\ AespaLoading.swift,\ AssetLoader.swift,\ AespaProcessing.swift,\ PhotoAssetAdditionProcessor.swift,\ VideoAssetAdditionProcessor.swift,\ CapturePhotoProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Loader/AespaLoading.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Loader/Asset/AssetLoader.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/AespaProcessing.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Asset/PhotoAssetAdditionProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Asset/VideoAssetAdditionProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Capture/CapturePhotoProcessor.swift (in target 'Aespa' from project 'Aespa')
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Capture/CapturePhotoProcessor.swift:12:18: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | struct CapturePhotoProcessor: AespaCapturePhotoOutputProcessing {
   |        `- note: add '@available' attribute to enclosing struct
12 |     let setting: AVCapturePhotoSettings
   |                  `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
13 |     let delegate: AVCapturePhotoCaptureDelegate
14 |     let autoVideoOrientationEnabled: Bool
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Capture/CapturePhotoProcessor.swift:13:19: error: 'AVCapturePhotoCaptureDelegate' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | struct CapturePhotoProcessor: AespaCapturePhotoOutputProcessing {
   |        `- note: add '@available' attribute to enclosing struct
12 |     let setting: AVCapturePhotoSettings
13 |     let delegate: AVCapturePhotoCaptureDelegate
   |                   `- error: 'AVCapturePhotoCaptureDelegate' is only available in tvOS 17.0 or newer
14 |     let autoVideoOrientationEnabled: Bool
15 |
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Loader/AespaLoading.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AespaLoading.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Loader/Asset/AssetLoader.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AssetLoader.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/AespaProcessing.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AespaProcessing.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Asset/PhotoAssetAdditionProcessor.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PhotoAssetAdditionProcessor.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Asset/VideoAssetAdditionProcessor.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile VideoAssetAdditionProcessor.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Capture/CapturePhotoProcessor.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile CapturePhotoProcessor.swift
SwiftCompile normal arm64 Compiling\ PhotoAsset.swift,\ VideoAsset.swift,\ VideoAssetEvent.swift,\ PhotoFile.swift,\ VideoFile.swift,\ AssetCachingProxy.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Asset/PhotoAsset.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Asset/VideoAsset.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Event/VideoAssetEvent.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/File/PhotoFile.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/File/VideoFile.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Proxy/AssetCachingProxy.swift (in target 'Aespa' from project 'Aespa')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Asset/PhotoAsset.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PhotoAsset.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Asset/VideoAsset.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Video\Asset.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Event/VideoAssetEvent.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile VideoAssetEvent.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/File/PhotoFile.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PhotoFile.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/File/VideoFile.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile VideoFile.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Proxy/AssetCachingProxy.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AssetCachingProxy.swift
SwiftCompile normal arm64 Compiling\ AuthorizationChecker.swift,\ AVFoundation+Extension.swift,\ SwiftUI+Extension.swift,\ UIKit+Extension.swift,\ FilePathProvider.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Authorization/AuthorizationChecker.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/SwiftUI+Extension.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/UIKit+Extension.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/File/FilePathProvider.swift (in target 'Aespa' from project 'Aespa')
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Authorization/AuthorizationChecker.swift:13:16: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | struct AuthorizationChecker {
   |        `- note: add '@available' attribute to enclosing struct
12 |     static func checkCaptureAuthorizationStatus() async -> Status {
   |                 `- note: add '@available' attribute to enclosing static method
13 |         switch AVCaptureDevice.authorizationStatus(for: .video) {
   |                |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |                `- note: add 'if #available' version check
14 |         case .authorized:
15 |             return .permitted
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Authorization/AuthorizationChecker.swift:13:32: error: 'authorizationStatus(for:)' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | struct AuthorizationChecker {
   |        `- note: add '@available' attribute to enclosing struct
12 |     static func checkCaptureAuthorizationStatus() async -> Status {
   |                 `- note: add '@available' attribute to enclosing static method
13 |         switch AVCaptureDevice.authorizationStatus(for: .video) {
   |                                |- error: 'authorizationStatus(for:)' is only available in tvOS 17.0 or newer
   |                                `- note: add 'if #available' version check
14 |         case .authorized:
15 |             return .permitted
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Authorization/AuthorizationChecker.swift:18:45: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | struct AuthorizationChecker {
   |        `- note: add '@available' attribute to enclosing struct
12 |     static func checkCaptureAuthorizationStatus() async -> Status {
   |                 `- note: add '@available' attribute to enclosing static method
13 |         switch AVCaptureDevice.authorizationStatus(for: .video) {
14 |         case .authorized:
   :
16 |
17 |         case .notDetermined:
18 |             let isPermissionGranted = await AVCaptureDevice.requestAccess(for: .video)
   |                                             |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |                                             `- note: add 'if #available' version check
19 |             if isPermissionGranted {
20 |                 return .permitted
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Authorization/AuthorizationChecker.swift:18:61: error: 'requestAccess(for:)' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | struct AuthorizationChecker {
   |        `- note: add '@available' attribute to enclosing struct
12 |     static func checkCaptureAuthorizationStatus() async -> Status {
   |                 `- note: add '@available' attribute to enclosing static method
13 |         switch AVCaptureDevice.authorizationStatus(for: .video) {
14 |         case .authorized:
   :
16 |
17 |         case .notDetermined:
18 |             let isPermissionGranted = await AVCaptureDevice.requestAccess(for: .video)
   |                                                             |- error: 'requestAccess(for:)' is only available in tvOS 17.0 or newer
   |                                                             `- note: add 'if #available' version check
19 |             if isPermissionGranted {
20 |                 return .permitted
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift:11:27: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | extension AVCaptureDevice.Position {
   | `- note: add '@available' attribute to enclosing extension
11 |     var chooseBestCamera: AVCaptureDevice? {
   |         |                 `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |         `- note: add '@available' attribute to enclosing property
12 |         let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera,
13 |                                                                               .builtInTripleCamera,
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift:10:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | extension AVCaptureDevice.Position {
   | |         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   | `- note: add '@available' attribute to enclosing extension
11 |     var chooseBestCamera: AVCaptureDevice? {
12 |         let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera,
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift:34:11: error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
32 | import UIKit
33 |
34 | extension AVCapturePhoto {
   | |         `- error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
   | `- note: add '@available' attribute to enclosing extension
35 |     var image: UIImage? {
36 |         guard let imageData = fileDataRepresentation() else { return nil }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift:12:32: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | extension AVCaptureDevice.Position {
   | `- note: add '@available' attribute to enclosing extension
11 |     var chooseBestCamera: AVCaptureDevice? {
   |         `- note: add '@available' attribute to enclosing property
12 |         let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera,
   |                                |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |                                `- note: add 'if #available' version check
13 |                                                                               .builtInTripleCamera,
14 |                                                                               .builtInWideAngleCamera],
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift:12:80: error: 'builtInDualCamera' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | extension AVCaptureDevice.Position {
   | `- note: add '@available' attribute to enclosing extension
11 |     var chooseBestCamera: AVCaptureDevice? {
   |         `- note: add '@available' attribute to enclosing property
12 |         let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera,
   |                                                                                |- error: 'builtInDualCamera' is only available in tvOS 17.0 or newer
   |                                                                                `- note: add 'if #available' version check
13 |                                                                               .builtInTripleCamera,
14 |                                                                               .builtInWideAngleCamera],
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift:13:80: error: 'builtInTripleCamera' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | extension AVCaptureDevice.Position {
   | `- note: add '@available' attribute to enclosing extension
11 |     var chooseBestCamera: AVCaptureDevice? {
   |         `- note: add '@available' attribute to enclosing property
12 |         let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera,
13 |                                                                               .builtInTripleCamera,
   |                                                                                |- error: 'builtInTripleCamera' is only available in tvOS 17.0 or newer
   |                                                                                `- note: add 'if #available' version check
14 |                                                                               .builtInWideAngleCamera],
15 |                                                                 mediaType: .video,
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift:14:80: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | extension AVCaptureDevice.Position {
   | `- note: add '@available' attribute to enclosing extension
11 |     var chooseBestCamera: AVCaptureDevice? {
   |         `- note: add '@available' attribute to enclosing property
12 |         let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera,
13 |                                                                               .builtInTripleCamera,
14 |                                                                               .builtInWideAngleCamera],
   |                                                                                |- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
   |                                                                                `- note: add 'if #available' version check
15 |                                                                 mediaType: .video,
16 |                                                                 position: self)
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift:36:31: error: 'fileDataRepresentation()' is only available in tvOS 17.0 or newer
32 | import UIKit
33 |
34 | extension AVCapturePhoto {
   | `- note: add '@available' attribute to enclosing extension
35 |     var image: UIImage? {
   |         `- note: add '@available' attribute to enclosing property
36 |         guard let imageData = fileDataRepresentation() else { return nil }
   |                               |- error: 'fileDataRepresentation()' is only available in tvOS 17.0 or newer
   |                               `- note: add 'if #available' version check
37 |         return UIImage(data: imageData)
38 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/UIKit+Extension.swift:12:29: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
10 |
11 | extension UIDeviceOrientation {
12 |     var toVideoOrientation: AVCaptureVideoOrientation {
   |                             `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
13 |         let currentOrientation = UIDevice.current.orientation
14 |         let previewOrientation: AVCaptureVideoOrientation
/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/Aespa/Util/Extension/UIKit+Extension.swift:11:11: error: 'UIDeviceOrientation' is unavailable in tvOS
 9 | import AVFoundation
10 |
11 | extension UIDeviceOrientation {
   |           `- error: 'UIDeviceOrientation' is unavailable in tvOS
12 |     var toVideoOrientation: AVCaptureVideoOrientation {
13 |         let currentOrientation = UIDevice.current.orientation
/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/Aespa/Util/Extension/UIKit+Extension.swift:13:51: error: 'orientation' is unavailable in tvOS
11 | extension UIDeviceOrientation {
12 |     var toVideoOrientation: AVCaptureVideoOrientation {
13 |         let currentOrientation = UIDevice.current.orientation
   |                                                   `- error: 'orientation' is unavailable in tvOS
14 |         let previewOrientation: AVCaptureVideoOrientation
15 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDevice.h:44:51: note: 'orientation' has been explicitly marked unavailable here
42 | @property(nonatomic,readonly,strong) NSString    *systemName;        // e.g. @"iOS"
43 | @property(nonatomic,readonly,strong) NSString    *systemVersion;     // e.g. @"4.0"
44 | @property(nonatomic,readonly) UIDeviceOrientation orientation API_UNAVAILABLE(tvos, visionos);       // return current device orientation.  this will return UIDeviceOrientationUnknown unless device orientation notifications are being generated.
   |                                                   `- note: 'orientation' has been explicitly marked unavailable here
45 |
46 | @property(nullable, nonatomic,readonly,strong) NSUUID      *identifierForVendor API_AVAILABLE(ios(6.0));      // a UUID that may be used to uniquely identify the device, same across apps from a single vendor.
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Authorization/AuthorizationChecker.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AuthorizationChecker.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AVFoundation+Extension.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/SwiftUI+Extension.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile SwiftUI+Extension.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/UIKit+Extension.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile UIKit+Extension.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/File/FilePathProvider.swift (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile FilePathProvider.swift
SwiftEmitModule normal arm64 Emitting\ module\ for\ Aespa (in target 'Aespa' from project 'Aespa')
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaOption.swift:105:44: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
100 |     /// `Session` provides options for configuring the video recording session,
101 |     /// such as automatic video orientation.
102 |     struct Session {
    |            `- note: add '@available' attribute to enclosing struct
103 |         /// An `AVCaptureDevice.DeviceType` value that determines camera device.
104 |         /// If not specified, the device is automatically selected.
105 |         public var cameraDevicePreference: AVCaptureDevice.DeviceType?
    |                                            `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
106 |
107 |         public init(cameraDevicePreference: AVCaptureDevice.DeviceType? = nil) {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaOption.swift:107:45: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
100 |     /// `Session` provides options for configuring the video recording session,
101 |     /// such as automatic video orientation.
102 |     struct Session {
    |            `- note: add '@available' attribute to enclosing struct
103 |         /// An `AVCaptureDevice.DeviceType` value that determines camera device.
104 |         /// If not specified, the device is automatically selected.
105 |         public var cameraDevicePreference: AVCaptureDevice.DeviceType?
106 |
107 |         public init(cameraDevicePreference: AVCaptureDevice.DeviceType? = nil) {
    |                |                            `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                `- note: add '@available' attribute to enclosing initializer
108 |             self.cameraDevicePreference = cameraDevicePreference
109 |         }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:31:58: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 20 | ///
 21 | /// It also includes functionalities to fetch video files.
 22 | open class AespaSession {
    |            `- note: add '@available' attribute to enclosing class
 23 |     let option: AespaOption
 24 |     let coreSession: AespaCoreSession
    :
 29 |     private let camera: AespaCoreCamera
 30 |
 31 |     private let previewLayerSubject: CurrentValueSubject<AVCaptureVideoPreviewLayer?, Never>
    |                                                          `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 32 |
 33 |     private var photoSetting: AVCapturePhotoSettings
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:33:31: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 20 | ///
 21 | /// It also includes functionalities to fetch video files.
 22 | open class AespaSession {
    |            `- note: add '@available' attribute to enclosing class
 23 |     let option: AespaOption
 24 |     let coreSession: AespaCoreSession
    :
 31 |     private let previewLayerSubject: CurrentValueSubject<AVCaptureVideoPreviewLayer?, Never>
 32 |
 33 |     private var photoSetting: AVCapturePhotoSettings
    |                               `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 34 |
 35 |     private var videoContext: AespaVideoContext<AespaSession>!
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:41:30: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 20 | ///
 21 | /// It also includes functionalities to fetch video files.
 22 | open class AespaSession {
    |            `- note: add '@available' attribute to enclosing class
 23 |     let option: AespaOption
 24 |     let coreSession: AespaCoreSession
    :
 39 |     ///
 40 |     /// - Note: If you're looking for a `View` for `SwiftUI`, use `preview`
 41 |     public let previewLayer: AVCaptureVideoPreviewLayer
    |                              `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 42 |
 43 |     convenience init(option: AespaOption) {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:103:34: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 20 | ///
 21 | /// It also includes functionalities to fetch video files.
 22 | open class AespaSession {
    |            `- note: add '@available' attribute to enclosing class
 23 |     let option: AespaOption
 24 |     let coreSession: AespaCoreSession
    :
101 |     ///     that could yield unpredictable behavior.
102 |     ///     If you require custom configurations, consider utilizing the `custom` function we offer whenever possible.
103 |     public var avCaptureSession: AVCaptureSession {
    |                |                 `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    |                `- note: add '@available' attribute to enclosing property
104 |         coreSession
105 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:125:34: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 20 | ///
 21 | /// It also includes functionalities to fetch video files.
 22 | open class AespaSession {
    |            `- note: add '@available' attribute to enclosing class
 23 |     let option: AespaOption
 24 |     let coreSession: AespaCoreSession
    :
123 |
124 |     /// This property reflects the current zoom factor applied to the video device.
125 |     public var currentFocusMode: AVCaptureDevice.FocusMode? {
    |                |                 `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                `- note: add '@available' attribute to enclosing property
126 |         guard let videoDeviceInput = coreSession.videoDeviceInput else { return nil }
127 |         return videoDeviceInput.device.focusMode
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:131:36: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
129 |
130 |     /// This property reflects the session's current orientation.
131 |     public var currentOrientation: AVCaptureVideoOrientation? {
    |                                    `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
132 |         guard let connection = coreSession.connections.first else { return nil }
133 |         return connection.videoOrientation
/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/Aespa/AespaSession.swift:137:39: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 20 | ///
 21 | /// It also includes functionalities to fetch video files.
 22 | open class AespaSession {
    |            `- note: add '@available' attribute to enclosing class
 23 |     let option: AespaOption
 24 |     let coreSession: AespaCoreSession
    :
135 |
136 |     /// This property reflects the device's current position.
137 |     public var currentCameraPosition: AVCaptureDevice.Position? {
    |                |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                `- note: add '@available' attribute to enclosing property
138 |         guard let device = coreSession.videoDeviceInput?.device else { return nil }
139 |         return device.position
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:168:52: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 20 | ///
 21 | /// It also includes functionalities to fetch video files.
 22 | open class AespaSession {
    |            `- note: add '@available' attribute to enclosing class
 23 |     let option: AespaOption
 24 |     let coreSession: AespaCoreSession
    :
166 |     /// A log message is printed to the console every time a new layer is pushed.
167 |     /// If you don't want to show logs, set `enableLogging` to `false` from `AespaOption.Log`
168 |     public var previewLayerPublisher: AnyPublisher<AVCaptureVideoPreviewLayer, Never> {
    |                |                                   `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
    |                `- note: add '@available' attribute to enclosing property
169 |         previewLayerSubject.handleEvents(receiveOutput: { _ in
170 |             Logger.log(message: "Preview layer is updated")
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:322:32: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
311 | }
312 |
313 | extension AespaSession: PhotoContext {
    | `- note: add '@available' attribute to enclosing extension
314 |     public var underlyingPhotoContext: AespaPhotoContext {
315 |         photoContext
    :
320 |     }
321 |
322 |     public var currentSetting: AVCapturePhotoSettings {
    |                |               `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |                `- note: add '@available' attribute to enclosing property
323 |         photoContext.currentSetting
324 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:369:20: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
363 |
364 | // MARK: - Deprecated methods
365 | extension AespaSession {
    | `- note: add '@available' attribute to enclosing extension
366 |     @available(*, deprecated, message: "Please use `common` instead.")
367 |     @discardableResult
368 |     public func quality(
    |                 `- note: add '@available' attribute to enclosing instance method
369 |         to preset: AVCaptureSession.Preset,
    |                    `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
370 |         _ onComplete: @escaping CompletionHandler = { _ in }
371 |     ) -> AespaSession {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:380:22: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
363 |
364 | // MARK: - Deprecated methods
365 | extension AespaSession {
    | `- note: add '@available' attribute to enclosing extension
366 |     @available(*, deprecated, message: "Please use `common` instead.")
367 |     @discardableResult
    :
377 |     @available(*, deprecated, message: "Please use `common` instead.")
378 |     @discardableResult
379 |     public func position(
    |                 `- note: add '@available' attribute to enclosing instance method
380 |         to position: AVCaptureDevice.Position,
    |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
381 |         _ onComplete: @escaping CompletionHandler = { _ in }
382 |     ) -> AespaSession {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:392:25: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
390 |     @discardableResult
391 |     public func orientation(
392 |         to orientation: AVCaptureVideoOrientation,
    |                         `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
393 |         _ onComplete: @escaping CompletionHandler = { _ in }
394 |     ) -> AespaSession {
/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/Aespa/AespaSession.swift:403:15: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
363 |
364 | // MARK: - Deprecated methods
365 | extension AespaSession {
    | `- note: add '@available' attribute to enclosing extension
366 |     @available(*, deprecated, message: "Please use `common` instead.")
367 |     @discardableResult
    :
400 |     @available(*, deprecated, message: "Please use `common` instead.")
401 |     @discardableResult
402 |     public func focus(
    |                 `- note: add '@available' attribute to enclosing instance method
403 |         mode: AVCaptureDevice.FocusMode, point: CGPoint? = nil,
    |               `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
404 |         _ onComplete: @escaping CompletionHandler = { _ in }
405 |     ) -> AespaSession {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:452:15: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
363 |
364 | // MARK: - Deprecated methods
365 | extension AespaSession {
    | `- note: add '@available' attribute to enclosing extension
366 |     @available(*, deprecated, message: "Please use `common` instead.")
367 |     @discardableResult
    :
449 |     @available(*, deprecated, message: "Please use `video` instead.")
450 |     @discardableResult
451 |     public func stabilization(
    |                 `- note: add '@available' attribute to enclosing instance method
452 |         mode: AVCaptureVideoStabilizationMode,
    |               `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
453 |         _ onComplete: @escaping CompletionHandler = { _ in }
454 |     ) -> AespaVideoSessionContext {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:461:15: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
363 |
364 | // MARK: - Deprecated methods
365 | extension AespaSession {
    | `- note: add '@available' attribute to enclosing extension
366 |     @available(*, deprecated, message: "Please use `common` instead.")
367 |     @discardableResult
    :
458 |     @available(*, deprecated, message: "Please use `video` instead.")
459 |     @discardableResult
460 |     public func torch(
    |                 `- note: add '@available' attribute to enclosing instance method
461 |         mode: AVCaptureDevice.TorchMode,
    |               `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
462 |         level: Float,
463 |         _ onComplete: @escaping CompletionHandler = { _ in }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:470:36: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
363 |
364 | // MARK: - Deprecated methods
365 | extension AespaSession {
    | `- note: add '@available' attribute to enclosing extension
366 |     @available(*, deprecated, message: "Please use `common` instead.")
367 |     @discardableResult
    :
468 |     @available(*, deprecated, message: "Please use `photo` instead.")
469 |     @discardableResult
470 |     public func flashMode(to mode: AVCaptureDevice.FlashMode) -> AespaPhotoContext {
    |                 |                  `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing instance method
471 |         photoContext.flashMode(to: mode)
472 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift:482:35: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
363 |
364 | // MARK: - Deprecated methods
365 | extension AespaSession {
    | `- note: add '@available' attribute to enclosing extension
366 |     @available(*, deprecated, message: "Please use `common` instead.")
367 |     @discardableResult
    :
480 |     @available(*, deprecated, message: "Please use `photo` instead.")
481 |     @discardableResult
482 |     public func custom(_ setting: AVCapturePhotoSettings) -> AespaPhotoContext {
    |                 |                 `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing instance method
483 |         photoContext.custom(setting)
484 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreCamera.swift:16:65: error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
11 |
12 | /// Capturing a photo and responsible for notifying the result
13 | class AespaCoreCamera: NSObject {
   |       `- note: add '@available' attribute to enclosing class
14 |     private let core: AespaCoreSession
15 |
16 |     private let fileIOResultSubject = PassthroughSubject<Result<AVCapturePhoto, Error>, Never>()
   |                                                                 `- error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
17 |     private var fileIOResultSubsciption: Cancellable?
18 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreCamera.swift:34:18: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
30 | }
31 |
32 | extension AespaCoreCamera {
   | `- note: add '@available' attribute to enclosing extension
33 |     func capture(
   |          `- note: add '@available' attribute to enclosing instance method
34 |         setting: AVCapturePhotoSettings,
   |                  `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
35 |         autoVideoOrientationEnabled: Bool
36 |     ) async throws -> AVCapturePhoto {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreCamera.swift:36:23: error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
30 | }
31 |
32 | extension AespaCoreCamera {
   | `- note: add '@available' attribute to enclosing extension
33 |     func capture(
   |          `- note: add '@available' attribute to enclosing instance method
34 |         setting: AVCapturePhotoSettings,
35 |         autoVideoOrientationEnabled: Bool
36 |     ) async throws -> AVCapturePhoto {
   |                       `- error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
37 |         let processor = CapturePhotoProcessor(setting: setting, delegate: self, autoVideoOrientationEnabled: autoVideoOrientationEnabled)
38 |         try run(processor: processor)
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreCamera.swift:57:19: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
53 | }
54 |
55 | extension AespaCoreCamera: AVCapturePhotoCaptureDelegate {
   | `- note: add '@available' attribute to enclosing extension
56 |     func photoOutput(
   |          `- note: add '@available' attribute to enclosing instance method
57 |         _ output: AVCapturePhotoOutput,
   |                   `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
58 |         didFinishProcessingPhoto photo: AVCapturePhoto,
59 |         error: Error?
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreCamera.swift:58:41: error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
53 | }
54 |
55 | extension AespaCoreCamera: AVCapturePhotoCaptureDelegate {
   | `- note: add '@available' attribute to enclosing extension
56 |     func photoOutput(
   |          `- note: add '@available' attribute to enclosing instance method
57 |         _ output: AVCapturePhotoOutput,
58 |         didFinishProcessingPhoto photo: AVCapturePhoto,
   |                                         `- error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
59 |         error: Error?
60 |     ) {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreRecorder.swift:72:19: error: 'AVCaptureFileOutput' is only available in tvOS 17.0 or newer
68 | }
69 |
70 | extension AespaCoreRecorder: AVCaptureFileOutputRecordingDelegate {
   | `- note: add '@available' attribute to enclosing extension
71 |     func fileOutput(
   |          `- note: add '@available' attribute to enclosing instance method
72 |         _ output: AVCaptureFileOutput,
   |                   `- error: 'AVCaptureFileOutput' is only available in tvOS 17.0 or newer
73 |         didStartRecordingTo fileURL: URL,
74 |         from connections: [AVCaptureConnection]
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreRecorder.swift:74:28: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
68 | }
69 |
70 | extension AespaCoreRecorder: AVCaptureFileOutputRecordingDelegate {
   | `- note: add '@available' attribute to enclosing extension
71 |     func fileOutput(
   |          `- note: add '@available' attribute to enclosing instance method
72 |         _ output: AVCaptureFileOutput,
73 |         didStartRecordingTo fileURL: URL,
74 |         from connections: [AVCaptureConnection]
   |                            `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
75 |     ) {
76 |         Logger.log(message: "Recording started")
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreRecorder.swift:80:19: error: 'AVCaptureFileOutput' is only available in tvOS 17.0 or newer
68 | }
69 |
70 | extension AespaCoreRecorder: AVCaptureFileOutputRecordingDelegate {
   | `- note: add '@available' attribute to enclosing extension
71 |     func fileOutput(
72 |         _ output: AVCaptureFileOutput,
   :
77 |     }
78 |
79 |     func fileOutput(
   |          `- note: add '@available' attribute to enclosing instance method
80 |         _ output: AVCaptureFileOutput,
   |                   `- error: 'AVCaptureFileOutput' is only available in tvOS 17.0 or newer
81 |         didFinishRecordingTo outputFileURL: URL,
82 |         from connections: [AVCaptureConnection],
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreRecorder.swift:82:28: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
68 | }
69 |
70 | extension AespaCoreRecorder: AVCaptureFileOutputRecordingDelegate {
   | `- note: add '@available' attribute to enclosing extension
71 |     func fileOutput(
72 |         _ output: AVCaptureFileOutput,
   :
77 |     }
78 |
79 |     func fileOutput(
   |          `- note: add '@available' attribute to enclosing instance method
80 |         _ output: AVCaptureFileOutput,
81 |         didFinishRecordingTo outputFileURL: URL,
82 |         from connections: [AVCaptureConnection],
   |                            `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
83 |         error: Error?
84 |     ) {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreSession.swift:13:25: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 11 | import AVFoundation
 12 |
 13 | class AespaCoreSession: AVCaptureSession {
    |       |                 `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    |       `- note: add '@available' attribute to enclosing class
 14 |     var option: AespaOption
 15 |     private var workQueue = OperationQueue()
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:21:31: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 12 | /// `AespaPhotoContext` is an open class that provides a context for photo capturing operations.
 13 | /// It has methods and properties to handle the photo capturing and settings.
 14 | open class AespaPhotoContext {
    |            `- note: add '@available' attribute to enclosing class
 15 |     private let coreSession: AespaCoreSession
 16 |     private let albumManager: AespaCoreAlbumManager
    :
 19 |     private let camera: AespaCoreCamera
 20 |
 21 |     private var photoSetting: AVCapturePhotoSettings
    |                               `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 22 |     private let photoFileBufferSubject: CurrentValueSubject<Result<PhotoFile, Error>?, Never>
 23 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:66:32: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 49 | }
 50 |
 51 | extension AespaPhotoContext: PhotoContext {
    | `- note: add '@available' attribute to enclosing extension
 52 |     public var underlyingPhotoContext: AespaPhotoContext {
 53 |         self
    :
 64 |     }
 65 |
 66 |     public var currentSetting: AVCapturePhotoSettings {
    |                |               `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |                `- note: add '@available' attribute to enclosing property
 67 |         photoSetting
 68 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:148:36: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
143 |
144 | // MARK: - Deprecated methods
145 | extension AespaPhotoContext {
    | `- note: add '@available' attribute to enclosing extension
146 |     @available(*, deprecated, message: "Please use `photo` instead.")
147 |     @discardableResult
148 |     public func flashMode(to mode: AVCaptureDevice.FlashMode) -> AespaPhotoContext {
    |                 |                  `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing instance method
149 |         photoSetting.flashMode = mode
150 |         return self
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift:161:35: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
143 |
144 | // MARK: - Deprecated methods
145 | extension AespaPhotoContext {
    | `- note: add '@available' attribute to enclosing extension
146 |     @available(*, deprecated, message: "Please use `photo` instead.")
147 |     @discardableResult
    :
159 |
160 |     @available(*, deprecated, message: "Please use `photo` instead.")
161 |     public func custom(_ setting: AVCapturePhotoSettings) -> AespaPhotoContext {
    |                 |                 `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing instance method
162 |         photoSetting = setting
163 |         return self
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaVideoContext.swift:185:15: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
161 |
162 | // MARK: - Deprecated methods
163 | extension AespaVideoContext {
    | `- note: add '@available' attribute to enclosing extension
164 |     @available(*, deprecated, message: "Please use `video` instead.")
165 |     @discardableResult
    :
182 |     @available(*, deprecated, message: "Please use `video` instead.")
183 |     @discardableResult
184 |     public func stabilization(
    |                 `- note: add '@available' attribute to enclosing instance method
185 |         mode: AVCaptureVideoStabilizationMode,
    |               `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
186 |         _ onComplete: @escaping CompletionHandler = { _ in }
187 |     ) -> AespaVideoContext {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaVideoContext.swift:197:15: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
161 |
162 | // MARK: - Deprecated methods
163 | extension AespaVideoContext {
    | `- note: add '@available' attribute to enclosing extension
164 |     @available(*, deprecated, message: "Please use `video` instead.")
165 |     @discardableResult
    :
194 |     @available(*, deprecated, message: "Please use `video` instead.")
195 |     @discardableResult
196 |     public func torch(
    |                 `- note: add '@available' attribute to enclosing instance method
197 |         mode: AVCaptureDevice.TorchMode,
    |               `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
198 |         level: Float,
199 |         _ onComplete: @escaping CompletionHandler = { _ in }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:54:20: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 23 | /// It includes methods to control the quality, position, orientation, and auto-focusing behavior
 24 | /// of the session. It also includes the ability to adjust the zoom level of the session.
 25 | public protocol CommonContext {
    |                 `- note: add '@available' attribute to enclosing protocol
 26 |     ///
 27 |     associatedtype CommonContextType: CommonContext & VideoContext & PhotoContext
    :
 51 |     ///
 52 |     /// - Returns: `AespaVideoContext`, for chaining calls.
 53 |     @discardableResult func quality(
    |                             `- note: add '@available' attribute to enclosing instance method
 54 |         to preset: AVCaptureSession.Preset,
    |                    `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 55 |         _ onComplete: @escaping CompletionHandler
 56 |     ) -> CommonContextType
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:68:22: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 23 | /// It includes methods to control the quality, position, orientation, and auto-focusing behavior
 24 | /// of the session. It also includes the ability to adjust the zoom level of the session.
 25 | public protocol CommonContext {
    |                 `- note: add '@available' attribute to enclosing protocol
 26 |     ///
 27 |     associatedtype CommonContextType: CommonContext & VideoContext & PhotoContext
    :
 65 |     ///
 66 |     /// - Returns: `AespaVideoContext`, for chaining calls.
 67 |     @discardableResult func position(
    |                             `- note: add '@available' attribute to enclosing instance method
 68 |         to position: AVCaptureDevice.Position,
    |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 69 |         _ onComplete: @escaping CompletionHandler
 70 |     ) -> CommonContextType
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:83:25: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
 81 |     ///     not the orientation of the `AVCaptureVideoPreviewLayer`.
 82 |     @discardableResult func orientation(
 83 |         to orientation: AVCaptureVideoOrientation,
    |                         `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
 84 |         _ onComplete: @escaping CompletionHandler
 85 |     ) -> CommonContextType
/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/Aespa/Core/Context/Context.swift:96:15: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 23 | /// It includes methods to control the quality, position, orientation, and auto-focusing behavior
 24 | /// of the session. It also includes the ability to adjust the zoom level of the session.
 25 | public protocol CommonContext {
    |                 `- note: add '@available' attribute to enclosing protocol
 26 |     ///
 27 |     associatedtype CommonContextType: CommonContext & VideoContext & PhotoContext
    :
 93 |     ///
 94 |     /// - Returns: `AespaVideoContext`, for chaining calls.
 95 |     @discardableResult func focus(
    |                             `- note: add '@available' attribute to enclosing instance method
 96 |         mode: AVCaptureDevice.FocusMode,
    |               `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 97 |         point: CGPoint?,
 98 |         _ onComplete: @escaping CompletionHandler
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:230:15: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
139 | /// the session is currently recording or muted, and controlling video recording,
140 | /// stabilization, torch mode, and fetching recorded video files.
141 | public protocol VideoContext {
    |                 `- note: add '@available' attribute to enclosing protocol
142 |     ///
143 |     associatedtype VideoContextType: VideoContext
    :
227 |     /// - Returns: The modified `VideoContextType` for chaining calls.
228 |     @discardableResult
229 |     func stabilization(
    |          `- note: add '@available' attribute to enclosing instance method
230 |         mode: AVCaptureVideoStabilizationMode,
    |               `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
231 |         _ onComplete: @escaping CompletionHandler
232 |     ) -> VideoContextType
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:246:15: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
139 | /// the session is currently recording or muted, and controlling video recording,
140 | /// stabilization, torch mode, and fetching recorded video files.
141 | public protocol VideoContext {
    |                 `- note: add '@available' attribute to enclosing protocol
142 |     ///
143 |     associatedtype VideoContextType: VideoContext
    :
243 |     ///   or the specified level is not within the acceptable range.
244 |     @discardableResult
245 |     func torch(
    |          `- note: add '@available' attribute to enclosing instance method
246 |         mode: AVCaptureDevice.TorchMode,
    |               `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
247 |         level: Float,
248 |         _ onComplete: @escaping CompletionHandler
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:278:25: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
263 | /// current photo settings, controlling flash mode, and red-eye reduction, capturing
264 | /// photo, and fetching captured photo files.
265 | public protocol PhotoContext {
    |                 `- note: add '@available' attribute to enclosing protocol
266 |     ///
267 |     associatedtype PhotoContextType: PhotoContext
    :
276 |
277 |     /// A variable holding current `AVCapturePhotoSettings`
278 |     var currentSetting: AVCapturePhotoSettings { get }
    |         |               `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
279 |
280 |     /// Asynchronously captures a photo using the specified `AVCapturePhotoSettings`.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:324:48: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
263 | /// current photo settings, controlling flash mode, and red-eye reduction, capturing
264 | /// photo, and fetching captured photo files.
265 | public protocol PhotoContext {
    |                 `- note: add '@available' attribute to enclosing protocol
266 |     ///
267 |     associatedtype PhotoContextType: PhotoContext
    :
322 |     /// - Parameter mode: The `AVCaptureDevice.FlashMode` to set for the camera.
323 |     /// - Returns: The updated `AespaPhotoContext` instance.
324 |     @discardableResult func flashMode(to mode: AVCaptureDevice.FlashMode) -> PhotoContextType
    |                             |                  `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                             `- note: add '@available' attribute to enclosing instance method
325 |
326 |     /// Sets the red eye reduction mode for the camera and returns the updated `AespaPhotoContext` instance.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:340:28: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
263 | /// current photo settings, controlling flash mode, and red-eye reduction, capturing
264 | /// photo, and fetching captured photo files.
265 | public protocol PhotoContext {
    |                 `- note: add '@available' attribute to enclosing protocol
266 |     ///
267 |     associatedtype PhotoContextType: PhotoContext
    :
338 |     ///
339 |     /// - Parameter setting: The `AVCapturePhotoSettings` to use for photo capturing.
340 |     func custom(_ setting: AVCapturePhotoSettings) -> PhotoContextType
    |          |                 `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
341 |
342 |     // MARK: - Utilities
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:366:26: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
359 | /// It's designed to be used with the `common` method of `AespaSession`
360 | /// to apply these configurations in a unified and streamlined manner.
361 | public enum CommonContextOption {
    |             `- note: add '@available' attribute to enclosing enum
362 |     /// Sets the quality preset for the video recording session.
363 |     ///
364 |     /// - Parameters:
365 |     ///   - preset: An `AVCaptureSession.Preset` value indicating the quality preset to be set.
366 |     case quality(preset: AVCaptureSession.Preset)
    |                          `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
367 |
368 |     /// Sets the camera position for the video recording session.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:374:29: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
359 | /// It's designed to be used with the `common` method of `AespaSession`
360 | /// to apply these configurations in a unified and streamlined manner.
361 | public enum CommonContextOption {
    |             `- note: add '@available' attribute to enclosing enum
362 |     /// Sets the quality preset for the video recording session.
363 |     ///
    :
372 |     /// - Parameters:
373 |     ///   - position: An `AVCaptureDevice.Position` value indicating the camera position to be set.
374 |     case position(position: AVCaptureDevice.Position)
    |                             `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
375 |
376 |     /// Sets the orientation for the session.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:383:35: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
381 |     /// - Note: It sets the orientation of the video you are recording,
382 |     ///     not the orientation of the `AVCaptureVideoPreviewLayer`.
383 |     case orientation(orientation: AVCaptureVideoOrientation)
    |                                   `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
384 |
385 |     /// Sets the autofocusing mode for the video recording session.
/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/Aespa/Core/Context/Context.swift:390:22: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
359 | /// It's designed to be used with the `common` method of `AespaSession`
360 | /// to apply these configurations in a unified and streamlined manner.
361 | public enum CommonContextOption {
    |             `- note: add '@available' attribute to enclosing enum
362 |     /// Sets the quality preset for the video recording session.
363 |     ///
    :
388 |     ///   - mode: The focus mode(`AVCaptureDevice.FocusMode`) for the session.
389 |     ///   - point: The point in the camera's field of view that the auto focus should prioritize.
390 |     case focus(mode: AVCaptureDevice.FocusMode, point: CGPoint? = nil)
    |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
391 |
392 |     /// Sets the zoom factor for the video recording session.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:429:30: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
416 | ///
417 | /// It's designed to be used with methods of `AespaSession` to apply these configurations in a streamlined manner.
418 | public enum VideoContextOption {
    |             `- note: add '@available' attribute to enclosing enum
419 |     /// Mutes the audio input for the video recording session.
420 |     case mute
    :
427 |     /// - Parameters:
428 |     ///   - mode: An `AVCaptureVideoStabilizationMode` value indicating the stabilization mode to be set.
429 |     case stabilization(mode: AVCaptureVideoStabilizationMode)
    |                              `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
430 |
431 |     /// Sets the torch mode and level for the video recording session.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:439:22: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
416 | ///
417 | /// It's designed to be used with methods of `AespaSession` to apply these configurations in a streamlined manner.
418 | public enum VideoContextOption {
    |             `- note: add '@available' attribute to enclosing enum
419 |     /// Mutes the audio input for the video recording session.
420 |     case mute
    :
437 |     /// - Note: This function might throw an error if the torch mode is not supported,
438 |     ///   or the specified level is not within the acceptable range.
439 |     case torch(mode: AVCaptureDevice.TorchMode, level: Float)
    |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
440 |
441 |     /// This function provides a way to use a custom tuner to modify the current session.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:460:26: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
453 | ///
454 | /// These options are designed to be used with methods of `AespaSession` to apply configurations effectively.
455 | public enum PhotoContextOption {
    |             `- note: add '@available' attribute to enclosing enum
456 |     /// Sets the flash mode for the camera and returns the updated `AespaPhotoContext` instance.
457 |     /// The returned instance can be used for chaining configuration.
458 |     ///
459 |     /// - Parameter mode: The `AVCaptureDevice.FlashMode` to set for the camera.
460 |     case flashMode(mode: AVCaptureDevice.FlashMode)
    |                          `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
461 |
462 |     /// Sets the red eye reduction mode for the camera and returns the updated `AespaPhotoContext` instance.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift:475:41: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
453 | ///
454 | /// These options are designed to be used with methods of `AespaSession` to apply configurations effectively.
455 | public enum PhotoContextOption {
    |             `- note: add '@available' attribute to enclosing enum
456 |     /// Sets the flash mode for the camera and returns the updated `AespaPhotoContext` instance.
457 |     /// The returned instance can be used for chaining configuration.
    :
473 |     ///
474 |     /// - Parameter setting: The `AVCapturePhotoSettings` to use for photo capturing.
475 |     case custom(avCapturePhotoSettings: AVCapturePhotoSettings)
    |                                         `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
476 | }
477 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift:12:27: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
10 |
11 | protocol AespaCaptureConnectionRepresentable {
12 |     var videoOrientation: AVCaptureVideoOrientation { get set }
   |                           `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
13 |     var preferredVideoStabilizationMode: AVCaptureVideoStabilizationMode { get set }
14 |     var isVideoOrientationSupported: Bool { get }
/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/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift:13:42: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | protocol AespaCaptureConnectionRepresentable {
   |          `- note: add '@available' attribute to enclosing protocol
12 |     var videoOrientation: AVCaptureVideoOrientation { get set }
13 |     var preferredVideoStabilizationMode: AVCaptureVideoStabilizationMode { get set }
   |         |                                `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
   |         `- note: add '@available' attribute to enclosing property
14 |     var isVideoOrientationSupported: Bool { get }
15 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift:16:38: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
14 |     var isVideoOrientationSupported: Bool { get }
15 |
16 |     func orientation(to orientation: AVCaptureVideoOrientation)
   |                                      `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
17 |     func stabilizationMode(to mode: AVCaptureVideoStabilizationMode)
18 | }
/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/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift:17:37: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | protocol AespaCaptureConnectionRepresentable {
   |          `- note: add '@available' attribute to enclosing protocol
12 |     var videoOrientation: AVCaptureVideoOrientation { get set }
13 |     var preferredVideoStabilizationMode: AVCaptureVideoStabilizationMode { get set }
   :
15 |
16 |     func orientation(to orientation: AVCaptureVideoOrientation)
17 |     func stabilizationMode(to mode: AVCaptureVideoStabilizationMode)
   |          |                          `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
18 | }
19 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift:21:38: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
19 |
20 | extension AVCaptureConnection: AespaCaptureConnectionRepresentable {
21 |     func orientation(to orientation: AVCaptureVideoOrientation) {
   |                                      `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
22 |         self.videoOrientation = orientation
23 |     }
/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/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift:25:37: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
18 | }
19 |
20 | extension AVCaptureConnection: AespaCaptureConnectionRepresentable {
   | `- note: add '@available' attribute to enclosing extension
21 |     func orientation(to orientation: AVCaptureVideoOrientation) {
22 |         self.videoOrientation = orientation
23 |     }
24 |
25 |     func stabilizationMode(to mode: AVCaptureVideoStabilizationMode) {
   |          |                          `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
26 |         self.preferredVideoStabilizationMode = mode
27 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift:20:1: error: type 'AVCaptureConnection' does not conform to protocol 'AespaCaptureConnectionRepresentable'
18 | }
19 |
20 | extension AVCaptureConnection: AespaCaptureConnectionRepresentable {
   | `- error: type 'AVCaptureConnection' does not conform to protocol 'AespaCaptureConnectionRepresentable'
21 |     func orientation(to orientation: AVCaptureVideoOrientation) {
22 |         self.videoOrientation = orientation
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift:20:1: error: unavailable property 'videoOrientation' was used to satisfy a requirement of protocol 'AespaCaptureConnectionRepresentable'
10 |
11 | protocol AespaCaptureConnectionRepresentable {
12 |     var videoOrientation: AVCaptureVideoOrientation { get set }
   |         `- note: requirement 'videoOrientation' declared here
13 |     var preferredVideoStabilizationMode: AVCaptureVideoStabilizationMode { get set }
14 |     var isVideoOrientationSupported: Bool { get }
   :
18 | }
19 |
20 | extension AVCaptureConnection: AespaCaptureConnectionRepresentable {
   | `- error: unavailable property 'videoOrientation' was used to satisfy a requirement of protocol 'AespaCaptureConnectionRepresentable'
21 |     func orientation(to orientation: AVCaptureVideoOrientation) {
22 |         self.videoOrientation = orientation
/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' declared 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' declared here
1112 |
1113 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift:20:1: error: protocol 'AespaCaptureConnectionRepresentable' requires 'preferredVideoStabilizationMode' to be available in tvOS 15.0 and newer
11 | protocol AespaCaptureConnectionRepresentable {
12 |     var videoOrientation: AVCaptureVideoOrientation { get set }
13 |     var preferredVideoStabilizationMode: AVCaptureVideoStabilizationMode { get set }
   |         `- note: protocol requirement here
14 |     var isVideoOrientationSupported: Bool { get }
15 |
   :
18 | }
19 |
20 | extension AVCaptureConnection: AespaCaptureConnectionRepresentable {
   | `- error: protocol 'AespaCaptureConnectionRepresentable' requires 'preferredVideoStabilizationMode' to be available in tvOS 15.0 and newer
21 |     func orientation(to orientation: AVCaptureVideoOrientation) {
22 |         self.videoOrientation = orientation
/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:1213:54: note: 'preferredVideoStabilizationMode' declared here
1211 |     Enabling video stabilization introduces additional latency into the video capture pipeline and may consume more system memory depending on the stabilization mode and format. If the preferred stabilization mode isn't available, the activeVideoStabilizationMode will be set to AVCaptureVideoStabilizationModeOff. Clients may key-value observe the activeVideoStabilizationMode property to know which stabilization mode is in use or when it is off. The default value is AVCaptureVideoStabilizationModeOff. When setting this property to AVCaptureVideoStabilizationModeAuto, an appropriate stabilization mode will be chosen based on the format and frame rate. For apps linked before iOS 6.0, the default value is AVCaptureVideoStabilizationModeStandard for a video connection attached to an AVCaptureMovieFileOutput instance. For apps linked on or after iOS 6.0, the default value is always AVCaptureVideoStabilizationModeOff. Setting a video stabilization mode using this property may change the value of enablesVideoStabilizationWhenAvailable.
1212 |  */
1213 | @property(nonatomic) AVCaptureVideoStabilizationMode preferredVideoStabilizationMode API_AVAILABLE(ios(8.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(macos, visionos);
     |                                                      `- note: 'preferredVideoStabilizationMode' declared here
1214 |
1215 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift:20:1: error: unavailable property 'isVideoOrientationSupported' was used to satisfy a requirement of protocol 'AespaCaptureConnectionRepresentable'
12 |     var videoOrientation: AVCaptureVideoOrientation { get set }
13 |     var preferredVideoStabilizationMode: AVCaptureVideoStabilizationMode { get set }
14 |     var isVideoOrientationSupported: Bool { get }
   |         `- note: requirement 'isVideoOrientationSupported' declared here
15 |
16 |     func orientation(to orientation: AVCaptureVideoOrientation)
   :
18 | }
19 |
20 | extension AVCaptureConnection: AespaCaptureConnectionRepresentable {
   | `- error: unavailable property 'isVideoOrientationSupported' was used to satisfy a requirement of protocol 'AespaCaptureConnectionRepresentable'
21 |     func orientation(to orientation: AVCaptureVideoOrientation) {
22 |         self.videoOrientation = orientation
/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:1101:73: note: 'isVideoOrientationSupported' declared here
1099 |     This property is deprecated. Use -isVideoRotationAngleSupported: instead.
1100 |  */
1101 | @property(nonatomic, readonly, getter=isVideoOrientationSupported) BOOL supportsVideoOrientation API_DEPRECATED("Use -isVideoRotationAngleSupported: instead", macos(10.7, 14.0), ios(4.0, 17.0), macCatalyst(14.0, 17.0)) API_UNAVAILABLE(tvos, visionos);
     |                                                                         `- note: 'isVideoOrientationSupported' declared here
1102 |
1103 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift:20:11: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
18 | }
19 |
20 | extension AVCaptureConnection: AespaCaptureConnectionRepresentable {
   | |         `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
   | `- note: add '@available' attribute to enclosing extension
21 |     func orientation(to orientation: AVCaptureVideoOrientation) {
22 |         self.videoOrientation = orientation
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:13:20: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | protocol AespaCaptureDeviceRepresentable {
   |          `- note: add '@available' attribute to enclosing protocol
12 |     var hasTorch: Bool { get }
13 |     var focusMode: AVCaptureDevice.FocusMode { get set }
   |         |          `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |         `- note: add '@available' attribute to enclosing property
14 |     var isSubjectAreaChangeMonitoringEnabled: Bool { get set }
15 |     var flashMode: AVCaptureDevice.FlashMode { get set }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:15:20: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | protocol AespaCaptureDeviceRepresentable {
   |          `- note: add '@available' attribute to enclosing protocol
12 |     var hasTorch: Bool { get }
13 |     var focusMode: AVCaptureDevice.FocusMode { get set }
14 |     var isSubjectAreaChangeMonitoringEnabled: Bool { get set }
15 |     var flashMode: AVCaptureDevice.FlashMode { get set }
   |         |          `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |         `- note: add '@available' attribute to enclosing property
16 |     var videoZoomFactor: CGFloat { get set }
17 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:20:44: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | protocol AespaCaptureDeviceRepresentable {
   |          `- note: add '@available' attribute to enclosing protocol
12 |     var hasTorch: Bool { get }
13 |     var focusMode: AVCaptureDevice.FocusMode { get set }
   :
18 |     var maxResolution: Double? { get }
19 |
20 |     func isFocusModeSupported(_ focusMode: AVCaptureDevice.FocusMode) -> Bool
   |          |                                 `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
21 |
22 |     func zoomFactor(_ factor: CGFloat)
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:23:36: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | protocol AespaCaptureDeviceRepresentable {
   |          `- note: add '@available' attribute to enclosing protocol
12 |     var hasTorch: Bool { get }
13 |     var focusMode: AVCaptureDevice.FocusMode { get set }
   :
21 |
22 |     func zoomFactor(_ factor: CGFloat)
23 |     func setFocusMode(_ focusMode: AVCaptureDevice.FocusMode, point: CGPoint?) throws
   |          |                         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
24 |     func torchMode(_ torchMode: AVCaptureDevice.TorchMode)
25 |     func enableMonitoring(_ enabled: Bool)
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:24:33: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | protocol AespaCaptureDeviceRepresentable {
   |          `- note: add '@available' attribute to enclosing protocol
12 |     var hasTorch: Bool { get }
13 |     var focusMode: AVCaptureDevice.FocusMode { get set }
   :
22 |     func zoomFactor(_ factor: CGFloat)
23 |     func setFocusMode(_ focusMode: AVCaptureDevice.FocusMode, point: CGPoint?) throws
24 |     func torchMode(_ torchMode: AVCaptureDevice.TorchMode)
   |          |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
25 |     func enableMonitoring(_ enabled: Bool)
26 |     func setTorchModeOn(level torchLevel: Float) throws
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:30:33: error: 'TorchMode' is only available in tvOS 17.0 or newer
27 | }
28 |
29 | extension AVCaptureDevice: AespaCaptureDeviceRepresentable {
   | `- note: add '@available' attribute to enclosing extension
30 |     func torchMode(_ torchMode: TorchMode) {
   |          |                      `- error: 'TorchMode' is only available in tvOS 17.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
31 |         switch torchMode {
32 |         case .off:
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:47:36: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
27 | }
28 |
29 | extension AVCaptureDevice: AespaCaptureDeviceRepresentable {
   | `- note: add '@available' attribute to enclosing extension
30 |     func torchMode(_ torchMode: TorchMode) {
31 |         switch torchMode {
   :
45 |     }
46 |
47 |     func setFocusMode(_ focusMode: AVCaptureDevice.FocusMode, point: CGPoint?) throws {
   |          |                         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
48 |         if isAdjustingFocus {
49 |             throw AespaError.device(reason: .busy)
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:29:1: error: protocol 'AespaCaptureDeviceRepresentable' requires 'isSubjectAreaChangeMonitoringEnabled' to be available in tvOS 15.0 and newer
12 |     var hasTorch: Bool { get }
13 |     var focusMode: AVCaptureDevice.FocusMode { get set }
14 |     var isSubjectAreaChangeMonitoringEnabled: Bool { get set }
   |         `- note: protocol requirement here
15 |     var flashMode: AVCaptureDevice.FlashMode { get set }
16 |     var videoZoomFactor: CGFloat { get set }
   :
27 | }
28 |
29 | extension AVCaptureDevice: AespaCaptureDeviceRepresentable {
   | `- error: protocol 'AespaCaptureDeviceRepresentable' requires 'isSubjectAreaChangeMonitoringEnabled' to be available in tvOS 15.0 and newer
30 |     func torchMode(_ torchMode: TorchMode) {
31 |         switch torchMode {
/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:2012:72: note: 'isSubjectAreaChangeMonitoringEnabled' declared here
2010 |     The value of this property is a BOOL indicating whether the receiver should monitor the video subject area for changes, such as lighting changes, substantial movement, etc. If subject area change monitoring is enabled, the receiver sends an AVCaptureDeviceSubjectAreaDidChangeNotification whenever it detects a change to the subject area, at which time an interested client may wish to re-focus, adjust exposure, white balance, etc. The receiver must be locked for configuration using lockForConfiguration: before clients can set the value of this property.
2011 |  */
2012 | @property(nonatomic, getter=isSubjectAreaChangeMonitoringEnabled) BOOL subjectAreaChangeMonitoringEnabled API_AVAILABLE(ios(5.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(macos, visionos);
     |                                                                        `- note: 'isSubjectAreaChangeMonitoringEnabled' declared here
2013 |
2014 | @end
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:29:1: error: type 'AVCaptureDevice' does not conform to protocol 'AespaCaptureDeviceRepresentable'
27 | }
28 |
29 | extension AVCaptureDevice: AespaCaptureDeviceRepresentable {
   | `- error: type 'AVCaptureDevice' does not conform to protocol 'AespaCaptureDeviceRepresentable'
30 |     func torchMode(_ torchMode: TorchMode) {
31 |         switch torchMode {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:29:1: error: unavailable property 'flashMode' was used to satisfy a requirement of protocol 'AespaCaptureDeviceRepresentable'
13 |     var focusMode: AVCaptureDevice.FocusMode { get set }
14 |     var isSubjectAreaChangeMonitoringEnabled: Bool { get set }
15 |     var flashMode: AVCaptureDevice.FlashMode { get set }
   |         `- note: requirement 'flashMode' declared here
16 |     var videoZoomFactor: CGFloat { get set }
17 |
   :
27 | }
28 |
29 | extension AVCaptureDevice: AespaCaptureDeviceRepresentable {
   | `- error: unavailable property 'flashMode' was used to satisfy a requirement of protocol 'AespaCaptureDeviceRepresentable'
30 |     func torchMode(_ torchMode: TorchMode) {
31 |         switch torchMode {
/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:1032:41: note: 'flashMode' declared here
1030 |     When using AVCapturePhotoOutput, AVCaptureDevice's flashMode property is ignored. You specify flashMode on a per photo basis by setting the AVCapturePhotoSettings.flashMode property.
1031 |  */
1032 | @property(nonatomic) AVCaptureFlashMode flashMode API_DEPRECATED("Use AVCapturePhotoSettings.flashMode instead.", ios(4.0, 10.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos);
     |                                         `- note: 'flashMode' declared here
1033 |
1034 | @end
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:29:1: error: protocol 'AespaCaptureDeviceRepresentable' requires 'videoZoomFactor' to be available in tvOS 15.0 and newer
14 |     var isSubjectAreaChangeMonitoringEnabled: Bool { get set }
15 |     var flashMode: AVCaptureDevice.FlashMode { get set }
16 |     var videoZoomFactor: CGFloat { get set }
   |         `- note: protocol requirement here
17 |
18 |     var maxResolution: Double? { get }
   :
27 | }
28 |
29 | extension AVCaptureDevice: AespaCaptureDeviceRepresentable {
   | `- error: protocol 'AespaCaptureDeviceRepresentable' requires 'videoZoomFactor' to be available in tvOS 15.0 and newer
30 |     func torchMode(_ torchMode: TorchMode) {
31 |         switch torchMode {
/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:2068:30: note: 'videoZoomFactor' declared here
2066 |  @seealso -[AVCaptureDeviceFormat videoMaxZoomFactor], -[AVCaptureDeviceFormat videoZoomFactorUpscaleThreshold], -[AVCaptureDevice minAvailableVideoZoomFactor], -[AVCaptureDevice maxAvailableVideoZoomFactor],  -[AVCaptureDeviceFormat supportedVideoZoomFactorsForDepthDataDelivery], -[AVCaptureDeviceFormat videoMinZoomFactorForCenterStage] and -[AVCaptureDeviceFormat videoMaxZoomFactorForCenterStage]
2067 |  */
2068 | @property(nonatomic) CGFloat videoZoomFactor API_AVAILABLE(ios(7.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(macos, visionos);
     |                              `- note: 'videoZoomFactor' declared here
2069 |
2070 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:29:1: error: protocol 'AespaCaptureDeviceRepresentable' requires 'setTorchModeOn(level:)' to be available in tvOS 15.0 and newer
24 |     func torchMode(_ torchMode: AVCaptureDevice.TorchMode)
25 |     func enableMonitoring(_ enabled: Bool)
26 |     func setTorchModeOn(level torchLevel: Float) throws
   |          `- note: protocol requirement here
27 | }
28 |
29 | extension AVCaptureDevice: AespaCaptureDeviceRepresentable {
   | `- error: protocol 'AespaCaptureDeviceRepresentable' requires 'setTorchModeOn(level:)' to be available in tvOS 15.0 and newer
30 |     func torchMode(_ torchMode: TorchMode) {
31 |         switch torchMode {
/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:1139:1: note: 'setTorchModeOn(level:)' declared here
1137 |     This method sets the torch mode to AVCaptureTorchModeOn at a specified level. torchLevel must be a value between 0 and 1, or the special value AVCaptureMaxAvailableTorchLevel. The specified value may not be available if the iOS device is too hot. This method throws an NSInvalidArgumentException if set to an unsupported level. If the specified level is valid, but unavailable, the method returns NO with AVErrorTorchLevelUnavailable. -setTorchModeOnWithLevel:error: throws an NSGenericException if called without first obtaining exclusive access to the receiver using lockForConfiguration:. Clients can observe automatic changes to the receiver's torchMode by key value observing the torchMode property.
1138 |  */
1139 | - (BOOL)setTorchModeOnWithLevel:(float)torchLevel error:(NSError * _Nullable * _Nullable)outError API_AVAILABLE(macos(10.15), ios(6.0), macCatalyst(14.0), tvos(17.0)) API_UNAVAILABLE(visionos);
     | `- note: 'setTorchModeOn(level:)' declared here
1140 |
1141 | @end
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift:29:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
27 | }
28 |
29 | extension AVCaptureDevice: AespaCaptureDeviceRepresentable {
   | |         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   | `- note: add '@available' attribute to enclosing extension
30 |     func torchMode(_ torchMode: TorchMode) {
31 |         switch torchMode {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureFileOutput+AespaRepresentable.swift:15:37: error: 'AVCaptureFileOutputRecordingDelegate' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | protocol AespaFileOutputRepresentable {
   |          `- note: add '@available' attribute to enclosing protocol
12 |     func stopRecording()
13 |     func startRecording(
   |          `- note: add '@available' attribute to enclosing instance method
14 |         to outputFileURL: URL,
15 |         recordingDelegate delegate: AVCaptureFileOutputRecordingDelegate)
   |                                     `- error: 'AVCaptureFileOutputRecordingDelegate' is only available in tvOS 17.0 or newer
16 |     func getConnection(with mediaType: AVMediaType) -> AespaCaptureConnectionRepresentable?
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureFileOutput+AespaRepresentable.swift:19:11: error: 'AVCaptureFileOutput' is only available in tvOS 17.0 or newer
17 | }
18 |
19 | extension AVCaptureFileOutput: AespaFileOutputRepresentable {
   | |         `- error: 'AVCaptureFileOutput' is only available in tvOS 17.0 or newer
   | `- note: add '@available' attribute to enclosing extension
20 |     func getConnection(with mediaType: AVMediaType) -> AespaCaptureConnectionRepresentable? {
21 |         return connection(with: mediaType)
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCapturePhotoOutput+AespaRepresentable.swift:12:29: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | protocol AespaPhotoOutputRepresentable {
   |          `- note: add '@available' attribute to enclosing protocol
12 |     func capturePhoto(with: AVCapturePhotoSettings, delegate: AVCapturePhotoCaptureDelegate)
   |          |                  `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
13 |     func getConnection(with mediaType: AVMediaType) -> AespaCaptureConnectionRepresentable?
14 | }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCapturePhotoOutput+AespaRepresentable.swift:12:63: error: 'AVCapturePhotoCaptureDelegate' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | protocol AespaPhotoOutputRepresentable {
   |          `- note: add '@available' attribute to enclosing protocol
12 |     func capturePhoto(with: AVCapturePhotoSettings, delegate: AVCapturePhotoCaptureDelegate)
   |          |                                                    `- error: 'AVCapturePhotoCaptureDelegate' is only available in tvOS 17.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
13 |     func getConnection(with mediaType: AVMediaType) -> AespaCaptureConnectionRepresentable?
14 | }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCapturePhotoOutput+AespaRepresentable.swift:16:11: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
14 | }
15 |
16 | extension AVCapturePhotoOutput: AespaPhotoOutputRepresentable {
   | |         `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
   | `- note: add '@available' attribute to enclosing extension
17 |     func getConnection(with mediaType: AVMediaType) -> AespaCaptureConnectionRepresentable? {
18 |         return connection(with: mediaType)
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:16:27: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 12 | /// structs that interact with `AVCaptureDeviceInput` and
 13 | /// `AVCaptureMovieFileOutput` to setup and configure a camera session for recording videos.
 14 | public protocol AespaCoreSessionRepresentable {
    |                 `- note: add '@available' attribute to enclosing protocol
 15 |     /// The `AVCaptureSession` that coordinates the flow of data from AV input devices to outputs.
 16 |     var avCaptureSession: AVCaptureSession { get }
    |         |                 `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 17 |
 18 |     /// A Boolean value indicating whether the capture session is running.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:22:27: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
 12 | /// structs that interact with `AVCaptureDeviceInput` and
 13 | /// `AVCaptureMovieFileOutput` to setup and configure a camera session for recording videos.
 14 | public protocol AespaCoreSessionRepresentable {
    |                 `- note: add '@available' attribute to enclosing protocol
 15 |     /// The `AVCaptureSession` that coordinates the flow of data from AV input devices to outputs.
 16 |     var avCaptureSession: AVCaptureSession { get }
    :
 20 |
 21 |     /// The `AVCaptureDeviceInput` representing the audio input.
 22 |     var audioDeviceInput: AVCaptureDeviceInput? { get }
    |         |                 `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 23 |
 24 |     /// The `AVCaptureDeviceInput` representing the video input.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:25:27: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
 12 | /// structs that interact with `AVCaptureDeviceInput` and
 13 | /// `AVCaptureMovieFileOutput` to setup and configure a camera session for recording videos.
 14 | public protocol AespaCoreSessionRepresentable {
    |                 `- note: add '@available' attribute to enclosing protocol
 15 |     /// The `AVCaptureSession` that coordinates the flow of data from AV input devices to outputs.
 16 |     var avCaptureSession: AVCaptureSession { get }
    :
 23 |
 24 |     /// The `AVCaptureDeviceInput` representing the video input.
 25 |     var videoDeviceInput: AVCaptureDeviceInput? { get }
    |         |                 `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 26 |
 27 |     /// The `AVCaptureMovieFileOutput` for the video file output.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:28:26: error: 'AVCaptureMovieFileOutput' is only available in tvOS 17.0 or newer
 12 | /// structs that interact with `AVCaptureDeviceInput` and
 13 | /// `AVCaptureMovieFileOutput` to setup and configure a camera session for recording videos.
 14 | public protocol AespaCoreSessionRepresentable {
    |                 `- note: add '@available' attribute to enclosing protocol
 15 |     /// The `AVCaptureSession` that coordinates the flow of data from AV input devices to outputs.
 16 |     var avCaptureSession: AVCaptureSession { get }
    :
 26 |
 27 |     /// The `AVCaptureMovieFileOutput` for the video file output.
 28 |     var movieFileOutput: AVCaptureMovieFileOutput? { get }
    |         |                `- error: 'AVCaptureMovieFileOutput' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 29 |
 30 |     /// The `AVCaptureVideoPreviewLayer` for previewing the video being recorded.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:31:23: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 12 | /// structs that interact with `AVCaptureDeviceInput` and
 13 | /// `AVCaptureMovieFileOutput` to setup and configure a camera session for recording videos.
 14 | public protocol AespaCoreSessionRepresentable {
    |                 `- note: add '@available' attribute to enclosing protocol
 15 |     /// The `AVCaptureSession` that coordinates the flow of data from AV input devices to outputs.
 16 |     var avCaptureSession: AVCaptureSession { get }
    :
 29 |
 30 |     /// The `AVCaptureVideoPreviewLayer` for previewing the video being recorded.
 31 |     var previewLayer: AVCaptureVideoPreviewLayer { get }
    |         |             `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 32 |
 33 |     /// Starts the capture session. This method is synchronous and blocks until the session starts.
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:64:22: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 12 | /// structs that interact with `AVCaptureDeviceInput` and
 13 | /// `AVCaptureMovieFileOutput` to setup and configure a camera session for recording videos.
 14 | public protocol AespaCoreSessionRepresentable {
    |                 `- note: add '@available' attribute to enclosing protocol
 15 |     /// The `AVCaptureSession` that coordinates the flow of data from AV input devices to outputs.
 16 |     var avCaptureSession: AVCaptureSession { get }
    :
 61 |     /// Sets the position of the camera.
 62 |     /// Throws an error if the operation fails.
 63 |     func cameraPosition(
    |          `- note: add '@available' attribute to enclosing instance method
 64 |         to position: AVCaptureDevice.Position,
    |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 65 |         device deviceType: AVCaptureDevice.DeviceType?
 66 |     ) throws
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:65:28: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 12 | /// structs that interact with `AVCaptureDeviceInput` and
 13 | /// `AVCaptureMovieFileOutput` to setup and configure a camera session for recording videos.
 14 | public protocol AespaCoreSessionRepresentable {
    |                 `- note: add '@available' attribute to enclosing protocol
 15 |     /// The `AVCaptureSession` that coordinates the flow of data from AV input devices to outputs.
 16 |     var avCaptureSession: AVCaptureSession { get }
    :
 61 |     /// Sets the position of the camera.
 62 |     /// Throws an error if the operation fails.
 63 |     func cameraPosition(
    |          `- note: add '@available' attribute to enclosing instance method
 64 |         to position: AVCaptureDevice.Position,
 65 |         device deviceType: AVCaptureDevice.DeviceType?
    |                            `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 66 |     ) throws
 67 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:69:34: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 12 | /// structs that interact with `AVCaptureDeviceInput` and
 13 | /// `AVCaptureMovieFileOutput` to setup and configure a camera session for recording videos.
 14 | public protocol AespaCoreSessionRepresentable {
    |                 `- note: add '@available' attribute to enclosing protocol
 15 |     /// The `AVCaptureSession` that coordinates the flow of data from AV input devices to outputs.
 16 |     var avCaptureSession: AVCaptureSession { get }
    :
 67 |
 68 |     /// Sets the video quality preset.
 69 |     func videoQuality(to preset: AVCaptureSession.Preset) throws
    |          |                       `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 70 | }
 71 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:74:27: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
    |         |                 `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 75 |
 76 |     var audioDeviceInput: AVCaptureDeviceInput? {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:76:27: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
 75 |
 76 |     var audioDeviceInput: AVCaptureDeviceInput? {
    |         |                 `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 77 |         return self.inputs
 78 |             .compactMap { $0 as? AVCaptureDeviceInput } // Get inputs
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:83:27: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
    :
 81 |     }
 82 |
 83 |     var videoDeviceInput: AVCaptureDeviceInput? {
    |         |                 `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 84 |         return self.inputs
 85 |             .compactMap { $0 as? AVCaptureDeviceInput } // Get inputs
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:90:26: error: 'AVCaptureMovieFileOutput' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
    :
 88 |     }
 89 |
 90 |     var movieFileOutput: AVCaptureMovieFileOutput? {
    |         |                `- error: 'AVCaptureMovieFileOutput' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 91 |         let output = self.outputs.first {
 92 |             $0 as? AVCaptureMovieFileOutput != nil
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:98:22: error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
    :
 96 |     }
 97 |
 98 |     var photoOutput: AVCapturePhotoOutput? {
    |         |            `- error: 'AVCapturePhotoOutput' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 99 |         let output = self.outputs.first {
100 |             $0 as? AVCapturePhotoOutput != nil
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:106:23: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
    :
104 |     }
105 |
106 |     var previewLayer: AVCaptureVideoPreviewLayer {
    |         |             `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
107 |         let previewLayer = AVCaptureVideoPreviewLayer(session: self)
108 |         previewLayer.connection?.videoOrientation = .portrait // Fixed value for now
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:191:22: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
    :
188 |
189 |     // MARK: - Option related
190 |     func cameraPosition(
    |          `- note: add '@available' attribute to enclosing instance method
191 |         to position: AVCaptureDevice.Position,
    |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
192 |         device deviceType: AVCaptureDevice.DeviceType?
193 |     ) throws {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:192:28: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
    :
188 |
189 |     // MARK: - Option related
190 |     func cameraPosition(
    |          `- note: add '@available' attribute to enclosing instance method
191 |         to position: AVCaptureDevice.Position,
192 |         device deviceType: AVCaptureDevice.DeviceType?
    |                            `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
193 |     ) throws {
194 |         let session = self
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift:220:34: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 70 | }
 71 |
 72 | extension AespaCoreSession: AespaCoreSessionRepresentable {
    | `- note: add '@available' attribute to enclosing extension
 73 |     // MARK: - Vars
 74 |     var avCaptureSession: AVCaptureSession { self }
    :
218 |     }
219 |
220 |     func videoQuality(to preset: AVCaptureSession.Preset) {
    |          |                       `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
221 |         let session = self
222 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Capture/CapturePhotoProcessor.swift:12:18: error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | struct CapturePhotoProcessor: AespaCapturePhotoOutputProcessing {
   |        `- note: add '@available' attribute to enclosing struct
12 |     let setting: AVCapturePhotoSettings
   |                  `- error: 'AVCapturePhotoSettings' is only available in tvOS 17.0 or newer
13 |     let delegate: AVCapturePhotoCaptureDelegate
14 |     let autoVideoOrientationEnabled: Bool
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Capture/CapturePhotoProcessor.swift:13:19: error: 'AVCapturePhotoCaptureDelegate' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | struct CapturePhotoProcessor: AespaCapturePhotoOutputProcessing {
   |        `- note: add '@available' attribute to enclosing struct
12 |     let setting: AVCapturePhotoSettings
13 |     let delegate: AVCapturePhotoCaptureDelegate
   |                   `- error: 'AVCapturePhotoCaptureDelegate' is only available in tvOS 17.0 or newer
14 |     let autoVideoOrientationEnabled: Bool
15 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Record/StartRecordProcessor.swift:13:19: error: 'AVCaptureFileOutputRecordingDelegate' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | struct StartRecordProcessor: AespaMovieFileOutputProcessing {
   |        `- note: add '@available' attribute to enclosing struct
12 |     let filePath: URL
13 |     let delegate: AVCaptureFileOutputRecordingDelegate
   |                   `- error: 'AVCaptureFileOutputRecordingDelegate' is only available in tvOS 17.0 or newer
14 |     let autoVideoOrientationEnabled: Bool
15 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Connection/VideoOrientationTuner.swift:11:22: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
 9 |
10 | struct VideoOrientationTuner: AespaConnectionTuning {
11 |     var orientation: AVCaptureVideoOrientation
   |                      `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
12 |
13 |     func tune<T: AespaCaptureConnectionRepresentable>(_ connection: T) throws {
/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/Aespa/Tuner/Connection/VideoStabilizationTuner.swift:11:27: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | struct VideoStabilizationTuner: AespaConnectionTuning {
   |        `- note: add '@available' attribute to enclosing struct
11 |     var stabilzationMode: AVCaptureVideoStabilizationMode
   |                           `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
12 |
13 |     func tune<T: AespaCaptureConnectionRepresentable>(_ connection: T) {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/FocusTuner.swift:15:15: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
10 | import AVFoundation
11 |
12 | struct FocusTuner: AespaDeviceTuning {
   |        `- note: add '@available' attribute to enclosing struct
13 |     let needLock = true
14 |
15 |     let mode: AVCaptureDevice.FocusMode
   |               `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
16 |     let point: CGPoint?
17 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/TorchTuner.swift:13:20: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 9 | import AVFoundation
10 |
11 | struct TorchTuner: AespaDeviceTuning {
   |        `- note: add '@available' attribute to enclosing struct
12 |     let level: Float
13 |     let torchMode: AVCaptureDevice.TorchMode
   |                    `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
14 |
15 |     func tune<T>(_ device: T) throws where T: AespaCaptureDeviceRepresentable {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/CameraPositionTuner.swift:12:19: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | struct CameraPositionTuner: AespaSessionTuning {
   |        `- note: add '@available' attribute to enclosing struct
11 |     let needTransaction = true
12 |     var position: AVCaptureDevice.Position
   |                   `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
13 |     var devicePreference: AVCaptureDevice.DeviceType?
14 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/CameraPositionTuner.swift:13:27: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | struct CameraPositionTuner: AespaSessionTuning {
   |        `- note: add '@available' attribute to enclosing struct
11 |     let needTransaction = true
12 |     var position: AVCaptureDevice.Position
13 |     var devicePreference: AVCaptureDevice.DeviceType?
   |                           `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
14 |
15 |     init(position: AVCaptureDevice.Position, devicePreference: AVCaptureDevice.DeviceType? = nil) {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/CameraPositionTuner.swift:15:20: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | struct CameraPositionTuner: AespaSessionTuning {
   |        `- note: add '@available' attribute to enclosing struct
11 |     let needTransaction = true
12 |     var position: AVCaptureDevice.Position
13 |     var devicePreference: AVCaptureDevice.DeviceType?
14 |
15 |     init(position: AVCaptureDevice.Position, devicePreference: AVCaptureDevice.DeviceType? = nil) {
   |     |              `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |     `- note: add '@available' attribute to enclosing initializer
16 |         self.position = position
17 |         self.devicePreference = devicePreference
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/CameraPositionTuner.swift:15:64: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | struct CameraPositionTuner: AespaSessionTuning {
   |        `- note: add '@available' attribute to enclosing struct
11 |     let needTransaction = true
12 |     var position: AVCaptureDevice.Position
13 |     var devicePreference: AVCaptureDevice.DeviceType?
14 |
15 |     init(position: AVCaptureDevice.Position, devicePreference: AVCaptureDevice.DeviceType? = nil) {
   |     |                                                          `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |     `- note: add '@available' attribute to enclosing initializer
16 |         self.position = position
17 |         self.devicePreference = devicePreference
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/QualityTuner.swift:12:23: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | struct QualityTuner: AespaSessionTuning {
   |        `- note: add '@available' attribute to enclosing struct
11 |     let needTransaction = true
12 |     var videoQuality: AVCaptureSession.Preset
   |                       `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
13 |
14 |     func tune<T: AespaCoreSessionRepresentable>(_ session: T) throws {
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift:11:27: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | extension AVCaptureDevice.Position {
   | `- note: add '@available' attribute to enclosing extension
11 |     var chooseBestCamera: AVCaptureDevice? {
   |         |                 `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   |         `- note: add '@available' attribute to enclosing property
12 |         let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera,
13 |                                                                               .builtInTripleCamera,
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift:10:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 8 | import AVFoundation
 9 |
10 | extension AVCaptureDevice.Position {
   | |         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
   | `- note: add '@available' attribute to enclosing extension
11 |     var chooseBestCamera: AVCaptureDevice? {
12 |         let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera,
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift:34:11: error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
32 | import UIKit
33 |
34 | extension AVCapturePhoto {
   | |         `- error: 'AVCapturePhoto' is only available in tvOS 17.0 or newer
   | `- note: add '@available' attribute to enclosing extension
35 |     var image: UIImage? {
36 |         guard let imageData = fileDataRepresentation() else { return nil }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/UIKit+Extension.swift:12:29: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
10 |
11 | extension UIDeviceOrientation {
12 |     var toVideoOrientation: AVCaptureVideoOrientation {
   |                             `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
13 |         let currentOrientation = UIDevice.current.orientation
14 |         let previewOrientation: AVCaptureVideoOrientation
/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/Aespa/Util/Extension/UIKit+Extension.swift:11:11: error: 'UIDeviceOrientation' is unavailable in tvOS
 9 | import AVFoundation
10 |
11 | extension UIDeviceOrientation {
   |           `- error: 'UIDeviceOrientation' is unavailable in tvOS
12 |     var toVideoOrientation: AVCaptureVideoOrientation {
13 |         let currentOrientation = UIDevice.current.orientation
/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/Aespa/View/InteractivePreview.swift:57:44: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 46 | }
 47 |
 48 | public struct InteractivePreview: View {
    |               `- note: add '@available' attribute to enclosing struct
 49 |     private let option: InteractivePreviewOption
 50 |     private let preview: Preview
    :
 55 |
 56 |     // Focus
 57 |     @State private var preferredFocusMode: AVCaptureDevice.FocusMode = .continuousAutoFocus
    |                        |                   `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                        `- note: add '@available' attribute to enclosing property
 58 |     @State private var focusingLocation = CGPoint.zero
 59 |
macro expansion @State:2:24: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Aespa/View/InteractivePreview.swift:57:92: note: expanded code originates here
 46 | }
 47 |
 48 | public struct InteractivePreview: View {
    |               `- note: add '@available' attribute to enclosing struct
 49 |     private let option: InteractivePreviewOption
 50 |     private let preview: Preview
    :
 55 |
 56 |     // Focus
 57 |     @State private var preferredFocusMode: AVCaptureDevice.FocusMode = .continuousAutoFocus
    |     `- note: in expansion of macro 'State' on property 'preferredFocusMode' here
    +--- macro expansion @State ----------------------------------------
    | 1 | private var __preferredFocusMode = SwiftUICore.State._makeStorage(({
    | 2 |             let value: AVCaptureDevice.FocusMode = .continuousAutoFocus
    |   |                        `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    | 3 |             return value
    | 4 |         }))
    +-------------------------------------------------------------------
 58 |     @State private var focusingLocation = CGPoint.zero
 59 |
macro expansion @State:8:27: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Aespa/View/InteractivePreview.swift:57:92: note: expanded code originates here
 46 | }
 47 |
 48 | public struct InteractivePreview: View {
    |               `- note: add '@available' attribute to enclosing struct
 49 |     private let option: InteractivePreviewOption
 50 |     private let preview: Preview
    :
 55 |
 56 |     // Focus
 57 |     @State private var preferredFocusMode: AVCaptureDevice.FocusMode = .continuousAutoFocus
    |     `- note: in expansion of macro 'State' on property 'preferredFocusMode' here
    +--- macro expansion @State ----------------------------------------
    | 6 | @SwiftUICore._StatePropertyWrapperStorage(initialValue: "JHM1QWVzcGExOEludGVyYWN0aXZlUHJldmlld1YxOHByZWZlcnJlZEZvY3VzTW9kZTMzX0JGRjc3MUUxQTA3Q0IwQUJERkJDMjE1OUI0REVBNUY1TEw1U3RhdGVmTXBfMjBfaW5pdGlhbFN0b3JlZFZhbHVlX2ZNdV8=")
    | 7 | private var _preferredFocusMode: SwiftUICore.State<_>! = SwiftUICore._stateNil(of: {
    | 8 |         SwiftUICore.State<AVCaptureDevice.FocusMode>(initialValue: .continuousAutoFocus)
    |   |                           `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    | 9 |     })
    |10 |
    +-------------------------------------------------------------------
 58 |     @State private var focusingLocation = CGPoint.zero
 59 |
macro expansion @State:12:53: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Aespa/View/InteractivePreview.swift:57:92: note: expanded code originates here
 46 | }
 47 |
 48 | public struct InteractivePreview: View {
    |               `- note: add '@available' attribute to enclosing struct
 49 |     private let option: InteractivePreviewOption
 50 |     private let preview: Preview
    :
 55 |
 56 |     // Focus
 57 |     @State private var preferredFocusMode: AVCaptureDevice.FocusMode = .continuousAutoFocus
    |     `- note: in expansion of macro 'State' on property 'preferredFocusMode' here
    +--- macro expansion @State ----------------------------------------
    |10 |
    |11 | @SwiftUICore._StateProjectedValue
    |12 | private var $preferredFocusMode = SwiftUICore.State<AVCaptureDevice.FocusMode>(initialValue: .continuousAutoFocus).projectedValue
    |   |                                                     `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |13 |
    |14 | @SwiftUICore._StateInitialStoredValue("U3dpZnRVSUNvcmUuU3RhdGUuX21ha2VTdG9yYWdlKCh7IGxldCB2YWx1ZTogQVZDYXB0dXJlRGV2aWNlLkZvY3VzTW9kZSA9IC5jb250aW51b3VzQXV0b0ZvY3VzCnJldHVybiB2YWx1ZSB9KSk=")
    +-------------------------------------------------------------------
 58 |     @State private var focusingLocation = CGPoint.zero
 59 |
macro expansion @State:16:20: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/Aespa/View/InteractivePreview.swift:57:92: note: expanded code originates here
 46 | }
 47 |
 48 | public struct InteractivePreview: View {
    |               `- note: add '@available' attribute to enclosing struct
 49 |     private let option: InteractivePreviewOption
 50 |     private let preview: Preview
    :
 55 |
 56 |     // Focus
 57 |     @State private var preferredFocusMode: AVCaptureDevice.FocusMode = .continuousAutoFocus
    |     `- note: in expansion of macro 'State' on property 'preferredFocusMode' here
    +--- macro expansion @State ----------------------------------------
    |14 | @SwiftUICore._StateInitialStoredValue("U3dpZnRVSUNvcmUuU3RhdGUuX21ha2VTdG9yYWdlKCh7IGxldCB2YWx1ZTogQVZDYXB0dXJlRGV2aWNlLkZvY3VzTW9kZSA9IC5jb250aW51b3VzQXV0b0ZvY3VzCnJldHVybiB2YWx1ZSB9KSk=")
    |15 | private static var $s5Aespa18InteractivePreviewV18preferredFocusMode33_BFF771E1A07CB0ABDFBC2159B4DEA5F5LL5StatefMp_20_initialStoredValue_fMu_ = (SwiftUICore.State._makeStorage(initialValue: {
    |16 |             let x: AVCaptureDevice.FocusMode = .continuousAutoFocus
    |   |                    `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |17 |             return x
    |18 |         }()))
    +-------------------------------------------------------------------
 58 |     @State private var focusingLocation = CGPoint.zero
 59 |
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/View/InteractivePreview.swift:86:16: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 46 | }
 47 |
 48 | public struct InteractivePreview: View {
    |               `- note: add '@available' attribute to enclosing struct
 49 |     private let option: InteractivePreviewOption
 50 |     private let preview: Preview
    :
 84 |     }
 85 |
 86 |     var layer: AVCaptureVideoPreviewLayer {
    |         |      `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 87 |         preview.previewLayer
 88 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/View/InteractivePreview.swift:90:27: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 46 | }
 47 |
 48 | public struct InteractivePreview: View {
    |               `- note: add '@available' attribute to enclosing struct
 49 |     private let option: InteractivePreviewOption
 50 |     private let preview: Preview
    :
 88 |     }
 89 |
 90 |     var currentFocusMode: AVCaptureDevice.FocusMode? {
    |         |                 `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 91 |         session.currentFocusMode
 92 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/View/InteractivePreview.swift:94:32: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 46 | }
 47 |
 48 | public struct InteractivePreview: View {
    |               `- note: add '@available' attribute to enclosing struct
 49 |     private let option: InteractivePreviewOption
 50 |     private let preview: Preview
    :
 92 |     }
 93 |
 94 |     var currentCameraPosition: AVCaptureDevice.Position? {
    |         |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |         `- note: add '@available' attribute to enclosing property
 95 |         session.currentCameraPosition
 96 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Aespa/View/Preview.swift:15:23: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
10 | import AVFoundation
11 |
12 | struct Preview: UIViewControllerRepresentable {
   |        `- note: add '@available' attribute to enclosing struct
13 |     let session: AespaSession
14 |     let gravity: AVLayerVideoGravity
15 |     let previewLayer: AVCaptureVideoPreviewLayer
   |                       `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
16 |
17 |     init(
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/Aespa/Aespa.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaError.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaOption.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/AespaSession.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreAlbumManager.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreCamera.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreRecorder.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaCoreSession.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/AespaEventManager.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaPhotoContext.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/AespaVideoContext.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Context/Context.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureConnection+AespaRepresentable.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureDevice+AespaRepresentable.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCaptureFileOutput+AespaRepresentable.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AVCapturePhotoOutput+AespaRepresentable.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/AespaCoreSession+AespaRepresentable.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Core/Representable/Photos+AespaRepresentable.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Asset/PhotoAsset.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Asset/Video\Asset.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Event/VideoAssetEvent.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/File/PhotoFile.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/File/VideoFile.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Data/Proxy/AssetCachingProxy.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Loader/AespaLoading.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Loader/Asset/AssetLoader.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/AespaProcessing.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Asset/PhotoAssetAdditionProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Asset/VideoAssetAdditionProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Capture/CapturePhotoProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/File/FileWritingProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Record/FinishRecordProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Processor/Record/StartRecordProcessor.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/AespaTuning.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Connection/VideoOrientationTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Connection/VideoStabilizationTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/ChangeMonitoringTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/FocusTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/TorchTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Device/ZoomTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/AudioTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/CameraPositionTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/QualityTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Tuner/Session/SessionTerminationTuner.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Album/AlbumImporter.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Authorization/AuthorizationChecker.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/AVFoundation+Extension.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/SwiftUI+Extension.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Extension/UIKit+Extension.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/File/FilePathProvider.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/File/PhotoFileGenerator.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/File/VideoFileGenerator.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/Util/Log/Logger.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/View/InteractivePreview.swift /Users/admin/builder/spi-builder-workspace/Sources/Aespa/View/Preview.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/Aespa.build/Debug-appletvos/Aespa-t.build/Objects-normal/arm64/Aespa-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 -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/Aespa.build/Debug-appletvos/Aespa-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Aespa.build/Debug-appletvos/Aespa-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Aespa.build/Debug-appletvos/Aespa-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Aespa -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Aespa.build/Debug-appletvos/Aespa-t.build/Objects-normal/arm64/Aespa_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/Aespa.build/Debug-appletvos/Aespa-t.build/Objects-normal/arm64/Aespa.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Aespa.build/Debug-appletvos/Aespa-t.build/Objects-normal/arm64/Aespa.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Aespa.build/Debug-appletvos/Aespa-t.build/Objects-normal/arm64/Aespa-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Aespa.build/Debug-appletvos/Aespa-t.build/Objects-normal/arm64/Aespa-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Aespa.build/Debug-appletvos/Aespa-t.build/Objects-normal/arm64/Aespa-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Aespa.build/Debug-appletvos/Aespa-t.build/Objects-normal/arm64/Aespa.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Aespa.build/Debug-appletvos/Aespa-t.build/Objects-normal/arm64/Aespa.abi.json
SwiftCompile normal arm64 (in target 'Aespa' from project 'Aespa')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode

PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
2026-09-20 15:23:45.083 xcodebuild[765:4682] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
2026-09-20 15:23:45.184 xcodebuild[765:4682] [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\ Aespa (in target 'Aespa' from project 'Aespa')
	SwiftCompile normal arm64 (in target 'Aespa' from project 'Aespa')
	Building workspace Aespa with scheme Aespa
(3 failures)
BUILD FAILURE 6.4 tvOS