The Swift Package Index logo.Swift Package Index

Build Information

Failed to build WWDualCamera, reference 1.2.1 (52b1bb), with Swift 6.4 for tvOS using Xcode 27.0 on 21 Sep 2026 10:01:31 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 WWDualCamera -destination generic/platform=tvOS

Build Log

116 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:121:36: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
119 |     /// - Parameter inputs: [AVCaptureInput]
120 |     /// - Returns: AVCaptureMultiCamSession所剩下的outputs
121 |     func removeOutputs(_ outputs: [AVCaptureOutput]) -> [AVCaptureOutput] {
    |          |                         `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
122 |         outputs.forEach { multiSession.removeOutput($0) }
123 |         return multiSession.outputs
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:121:58: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
119 |     /// - Parameter inputs: [AVCaptureInput]
120 |     /// - Returns: AVCaptureMultiCamSession所剩下的outputs
121 |     func removeOutputs(_ outputs: [AVCaptureOutput]) -> [AVCaptureOutput] {
    |          |                                               `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
122 |         outputs.forEach { multiSession.removeOutput($0) }
123 |         return multiSession.outputs
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:128:33: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
126 |     /// 移除所有輸出裝置
127 |     /// - Returns: AVCaptureMultiCamSession所剩下的outputs
128 |     func removeAllOutputs() -> [AVCaptureOutput] {
    |          |                      `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
129 |         removeOutputs(multiSession.outputs)
130 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:135:44: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
133 |     /// - Parameter connection: AVCaptureConnection?
134 |     /// - Returns: Bool
135 |     func canRemoveConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          |                                 `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
136 |         return multiSession._canRemoveConnection(connection)
137 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:146:35: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
144 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
145 |     /// - Returns: [CameraSessionOutput]
146 |     func sessionOutputs(delegate: AVCaptureVideoDataOutputSampleBufferDelegate? = nil, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity = .resizeAspectFill, stabilizationMode: AVCaptureVideoStabilizationMode = .auto) -> [CameraSessionOutput] {
    |          |                        `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
147 |         return outputsSetting(delegate: delegate, inputs: inputs, videoGravity: videoGravity, isAlwaysDiscardsLateVideoFrames: true, stabilizationMode: stabilizationMode)
148 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:146:192: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
144 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
145 |     /// - Returns: [CameraSessionOutput]
146 |     func sessionOutputs(delegate: AVCaptureVideoDataOutputSampleBufferDelegate? = nil, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity = .resizeAspectFill, stabilizationMode: AVCaptureVideoStabilizationMode = .auto) -> [CameraSessionOutput] {
    |          |                                                                                                                                                                                     `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
147 |         return outputsSetting(delegate: delegate, inputs: inputs, videoGravity: videoGravity, isAlwaysDiscardsLateVideoFrames: true, stabilizationMode: stabilizationMode)
148 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:168:35: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
166 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
167 |     /// - Returns: [CameraSessionOutput]
168 |     func outputsSetting(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> [CameraSessionOutput] {
    |          |                        `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
169 |
170 |         var outputs: [CameraSessionOutput] = []
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:168:205: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
166 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
167 |     /// - Returns: [CameraSessionOutput]
168 |     func outputsSetting(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> [CameraSessionOutput] {
    |          |                                                                                                                                                                                                  `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
169 |
170 |         var outputs: [CameraSessionOutput] = []
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:189:61: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          |                                                  `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:189:201: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          |                                                                                                                                                                                              `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:35:44: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 33 |
 34 |     /// [是否支援多鏡頭同時動作](https://developer.apple.com/documentation/avfoundation/avcapturemulticamsession/3183002-multicamsupported)
 35 |     public var isMultiCamSupported: Bool { AVCaptureMultiCamSession.isMultiCamSupported }
    |                |                           |- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    |                |                           `- note: add 'if #available' version check
    |                `- note: add '@available' attribute to enclosing property
 36 |
 37 |     /// 是否正在預覽畫面
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:41:36: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 39 |
 40 |     /// 當前設備支持的最大同時使用鏡頭數
 41 |     public var supportCount: Int { AVCaptureMultiCamSession._supportCount() }
    |                |                   |- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    |                |                   `- note: add 'if #available' version check
    |                `- note: add '@available' attribute to enclosing property
 42 |
 43 |     private override init() {}
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:77: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                           `- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:102: error: 'builtInTelephotoCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                                                    `- error: 'builtInTelephotoCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:127: error: 'builtInUltraWideCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                                                                             `- error: 'builtInUltraWideCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:55:29: error: 'connections' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
 52 |     /// - Returns: Result<[AVCaptureConnection], Error>
 53 |     func start() -> [AVCaptureConnection] {
    |          `- note: add '@available' attribute to enclosing instance method
 54 |         multiSession.startRunning()
 55 |         return multiSession.connections
    |                             |- error: 'connections' is only available in tvOS 17.0 or newer
    |                             `- note: add 'if #available' version check
 56 |     }
 57 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:62:29: error: 'connections' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 58 |     /// 關閉執行
 59 |     /// - Returns: 有連上Session的Connection
 60 |     func stop() -> [AVCaptureConnection] {
    |          `- note: add '@available' attribute to enclosing instance method
 61 |         multiSession.stopRunning()
 62 |         return multiSession.connections
    |                             |- error: 'connections' is only available in tvOS 17.0 or newer
    |                             `- note: add 'if #available' version check
 63 |     }
 64 |
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift (in target 'WWDualCamera' from project 'WWDualCamera')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile WWDualCamera.swift
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:191:22: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
    |                      |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                      `- note: add 'if #available' version check
192 |         var sessionOutput: CameraSessionOutput = (input: nil, output: nil, previewLayer: nil, error: nil)
193 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:204:27: error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
    :
202 |
203 |             let queue = DispatchQueue(label: "\(Date().timeIntervalSince1970)")
204 |             let _output = AVCaptureVideoDataOutput._build(delegate: delegate, isAlwaysDiscardsLateVideoFrames: isAlwaysDiscardsLateVideoFrames, videoSettings: [:], queue: queue)
    |                           |- error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
    |                           `- note: add 'if #available' version check
205 |             guard multiSession._canAddOutput(_output, isConnections: true) else { sessionOutput.error = Constant.MyError.notAddOutput; break }
206 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:208:27: warning: result of call to '_stabilizationMode(_:device:)' is unused [#NoUsage]
206 |
207 |             let _previewLayer = multiSession._previewLayer(with: input.frame, videoGravity: videoGravity, isConnections: false)
208 |             _previewLayer._stabilizationMode(stabilizationMode, device: device)
    |                           `- warning: result of call to '_stabilizationMode(_:device:)' is unused [#NoUsage]
209 |             guard let videoPort = _input._port(forType: .video) else { break }
210 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:211:42: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
    :
209 |             guard let videoPort = _input._port(forType: .video) else { break }
210 |
211 |             let previewLayerConnection = AVCaptureConnection(inputPort: videoPort, videoPreviewLayer: _previewLayer)
    |                                          |- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |                                          `- note: add 'if #available' version check
212 |             guard multiSession._canAddConnection(previewLayerConnection) else { sessionOutput.error = Constant.MyError.notAddConnection; break }
213 |
SwiftCompile normal arm64 Compiling\ Extension.swift /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift (in target 'WWDualCamera' from project 'WWDualCamera')
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:18:34: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
  9 |
 10 | // MARK: - AVCaptureSession (function)
 11 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
 12 |
 13 |     /// 加入手機設備 (相機、麥克風…)
    :
 16 |     ///   - isConnections: Bool
 17 |     /// - Returns: Result<Bool, Error>
 18 |     func _canAddDevice(_ device: AVCaptureDevice, isConnections: Bool) -> Result<Bool, Error> {
    |          |                       `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 19 |
 20 |         switch device._captureInput() {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:11:11: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
  9 |
 10 | // MARK: - AVCaptureSession (function)
 11 | extension AVCaptureSession {
    | |         `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 12 |
 13 |     /// 加入手機設備 (相機、麥克風…)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:45: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                           `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:77: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                           `- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:102: error: 'builtInTelephotoCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                                                    `- error: 'builtInTelephotoCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:127: error: 'builtInUltraWideCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                                                                             `- error: 'builtInUltraWideCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:39:11: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | |         `- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:80:45: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 67 |
 68 | // MARK: - AVCaptureMultiCamSession
 69 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 70 |
 71 |     /// [硬體 / 系統的用量指標](https://xiaodongxie1024.github.io/2019/04/15/20190413_iOS_VideoCaptureExplain/)
    :
 78 |     /// - Parameter connection: AVCaptureConnection?
 79 |     /// - Returns: Bool
 80 |     func _canRemoveConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          |                                  `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 81 |
 82 |         return _configuration {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:69:11: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 67 |
 68 | // MARK: - AVCaptureMultiCamSession
 69 | extension AVCaptureMultiCamSession {
    | |         `- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 70 |
 71 |     /// [硬體 / 系統的用量指標](https://xiaodongxie1024.github.io/2019/04/15/20190413_iOS_VideoCaptureExplain/)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:40: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:107: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                                                                                         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:136: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                                                                                                                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:113:42: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
111 |     ///   - position: AVCaptureDevice.Position
112 |     /// - Returns: [AVCaptureDevice]
113 |     static func _discovery(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> [AVCaptureDevice] {
    |                 |                        `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
114 |
115 |         let devices = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: mediaType, position: position).devices
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:113:106: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
111 |     ///   - position: AVCaptureDevice.Position
112 |     /// - Returns: [AVCaptureDevice]
113 |     static func _discovery(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> [AVCaptureDevice] {
    |                 |                                                                                        `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
114 |
115 |         let devices = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: mediaType, position: position).devices
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:113:136: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
111 |     ///   - position: AVCaptureDevice.Position
112 |     /// - Returns: [AVCaptureDevice]
113 |     static func _discovery(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> [AVCaptureDevice] {
    |                 |                                                                                                                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
114 |
115 |         let devices = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: mediaType, position: position).devices
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:97:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | |         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:124:36: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
119 |
120 | // MARK: - AVCaptureDevice (function)
121 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
122 |
123 |     /// 取得該裝置的Input => NSCameraUsageDescription / NSMicrophoneUsageDescription
124 |     func _captureInput() -> Result<AVCaptureDeviceInput, Error> {
    |          |                         `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
125 |
126 |         do {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:121:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
119 |
120 | // MARK: - AVCaptureDevice (function)
121 | extension AVCaptureDevice {
    | |         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
122 |
123 |     /// 取得該裝置的Input => NSCameraUsageDescription / NSMicrophoneUsageDescription
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:141:51: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
134 |
135 | // MARK: - AVCaptureDeviceInput (function)
136 | extension AVCaptureDeviceInput {
    | `- note: add '@available' attribute to enclosing extension
137 |
138 |     /// 取得該媒體類型的Port
139 |     /// - Parameter mediaType: AVMediaType
140 |     /// - Returns: AVCaptureInput.Port?
141 |     func _port(forType mediaType: AVMediaType) -> AVCaptureInput.Port? {
    |          |                                        `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
142 |         return ports.first(where: { $0.mediaType == mediaType })
143 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:136:11: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
134 |
135 | // MARK: - AVCaptureDeviceInput (function)
136 | extension AVCaptureDeviceInput {
    | |         `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
137 |
138 |     /// 取得該媒體類型的Port
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:154:32: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
152 |     ///   - isConnections: [Bool](https://www.cnblogs.com/zouchenxi/p/14900858.html)
153 |     /// - Returns: Bool
154 |     func _canAddInput(_ input: AVCaptureInput?, isConnections: Bool) -> Bool {
    |          |                     `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
155 |
156 |         guard let input = input,
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:171:34: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
169 |     ///   - isConnections: Bool
170 |     /// - Returns: Bool
171 |     func _canAddOutput(_ output: AVCaptureOutput?, isConnections: Bool) -> Bool {
    |          |                       `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
172 |
173 |         guard let output = output,
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:186:42: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
184 |     /// - Parameter connection: AVCaptureConnection?
185 |     /// - Returns: Bool
186 |     func _canAddConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          |                               `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
187 |
188 |         return _configuration {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:207:103: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
205 |     ///   - isConnections: [Bool](https://developer.apple.com/documentation/avfoundation/avcapturevideopreviewlayer/1387426-init)
206 |     /// - Returns: AVCaptureVideoPreviewLayer
207 |     func _previewLayer(with frame: CGRect, videoGravity: AVLayerVideoGravity, isConnections: Bool) -> AVCaptureVideoPreviewLayer {
    |          |                                                                                            `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
208 |
209 |         let previewLayer = isConnections ? AVCaptureVideoPreviewLayer(session: self) : AVCaptureVideoPreviewLayer(sessionWithNoConnection: self)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:147:11: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | |         `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:228:34: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
217 |
218 | // MARK: - AVCaptureVideoDataOutput (static function)
219 | extension AVCaptureVideoDataOutput {
    | `- note: add '@available' attribute to enclosing extension
220 |
221 |     /// 建立AVCaptureVideoDataOutput (影像)
    :
226 |     ///   - isAlwaysDiscardsLateVideoFrames: [Bool](https://blog.csdn.net/github_36843038/article/details/114550865)
227 |     /// - Returns: AVCaptureVideoDataOutput
228 |     static func _build(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, isAlwaysDiscardsLateVideoFrames: Bool, videoSettings: [String : Any], queue: DispatchQueue?) -> AVCaptureVideoDataOutput {
    |                 |                `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
229 |
230 |         let output = AVCaptureVideoDataOutput()
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:228:177: error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
217 |
218 | // MARK: - AVCaptureVideoDataOutput (static function)
219 | extension AVCaptureVideoDataOutput {
    | `- note: add '@available' attribute to enclosing extension
220 |
221 |     /// 建立AVCaptureVideoDataOutput (影像)
    :
226 |     ///   - isAlwaysDiscardsLateVideoFrames: [Bool](https://blog.csdn.net/github_36843038/article/details/114550865)
227 |     /// - Returns: AVCaptureVideoDataOutput
228 |     static func _build(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, isAlwaysDiscardsLateVideoFrames: Bool, videoSettings: [String : Any], queue: DispatchQueue?) -> AVCaptureVideoDataOutput {
    |                 |                                                                                                                                                               `- error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
229 |
230 |         let output = AVCaptureVideoDataOutput()
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:219:11: error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
217 |
218 | // MARK: - AVCaptureVideoDataOutput (static function)
219 | extension AVCaptureVideoDataOutput {
    | |         `- error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
220 |
221 |     /// 建立AVCaptureVideoDataOutput (影像)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:248:37: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
239 |
240 | // MARK: - AVCaptureVideoPreviewLayer (function)
241 | extension AVCaptureVideoPreviewLayer {
    | `- note: add '@available' attribute to enclosing extension
242 |
243 |     /// 設定防手震模式
    :
246 |     ///   - device: AVCaptureDevice
247 |     /// - Returns: Bool
248 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                          `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
249 |         return connection?._stabilizationMode(mode, device: device) ?? false
250 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:248:78: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
239 |
240 | // MARK: - AVCaptureVideoPreviewLayer (function)
241 | extension AVCaptureVideoPreviewLayer {
    | `- note: add '@available' attribute to enclosing extension
242 |
243 |     /// 設定防手震模式
    :
246 |     ///   - device: AVCaptureDevice
247 |     /// - Returns: Bool
248 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                                                                   `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
249 |         return connection?._stabilizationMode(mode, device: device) ?? false
250 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:241:11: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
239 |
240 | // MARK: - AVCaptureVideoPreviewLayer (function)
241 | extension AVCaptureVideoPreviewLayer {
    | |         `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
242 |
243 |     /// 設定防手震模式
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:261:37: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
252 |
253 | // MARK: - AVCaptureConnection (function)
254 | extension AVCaptureConnection {
    | `- note: add '@available' attribute to enclosing extension
255 |
256 |     /// [設定防手震模式](https://stackoverflow.com/questions/77030040/how-to-activate-preferredvideostabilizationmode-for-avcapturesessionpresetphoto)
    :
259 |     ///   - device: AVCaptureDevice
260 |     /// - Returns: Bool
261 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                          `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
262 |
263 |         guard device.activeFormat.isVideoStabilizationModeSupported(mode) else { return false }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:261:78: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
252 |
253 | // MARK: - AVCaptureConnection (function)
254 | extension AVCaptureConnection {
    | `- note: add '@available' attribute to enclosing extension
255 |
256 |     /// [設定防手震模式](https://stackoverflow.com/questions/77030040/how-to-activate-preferredvideostabilizationmode-for-avcapturesessionpresetphoto)
    :
259 |     ///   - device: AVCaptureDevice
260 |     /// - Returns: Bool
261 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                                                                   `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
262 |
263 |         guard device.activeFormat.isVideoStabilizationModeSupported(mode) else { return false }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:254:11: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
252 |
253 | // MARK: - AVCaptureConnection (function)
254 | extension AVCaptureConnection {
    | |         `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
255 |
256 |     /// [設定防手震模式](https://stackoverflow.com/questions/77030040/how-to-activate-preferredvideostabilizationmode-for-avcapturesessionpresetphoto)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:44:16: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
 42 |     /// - Returns: [Bool](https://developer.apple.com/documentation/avfoundation/avcapturemulticamsession/3183002-multicamsupported)
 43 |     static func _isSupported() -> Bool {
    |                 `- note: add '@available' attribute to enclosing static method
 44 |         return AVCaptureMultiCamSession.isMultiCamSupported
    |                |- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    |                `- note: add 'if #available' version check
 45 |     }
 46 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:54:23: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
 53 |
 54 |         let session = AVCaptureMultiCamSession()
    |                       |- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    |                       `- note: add 'if #available' version check
 55 |         let devices = AVCaptureDevice._discovery(deviceTypes: deviceTypes, mediaType: .video, position: .unspecified)
 56 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:55:23: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
 53 |
 54 |         let session = AVCaptureMultiCamSession()
 55 |         let devices = AVCaptureDevice._discovery(deviceTypes: deviceTypes, mediaType: .video, position: .unspecified)
    |                       |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                       `- note: add 'if #available' version check
 56 |
 57 |         let count = devices.compactMap { device -> Bool? in
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:85:19: error: 'connections' is only available in tvOS 17.0 or newer
 67 |
 68 | // MARK: - AVCaptureMultiCamSession
 69 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 70 |
 71 |     /// [硬體 / 系統的用量指標](https://xiaodongxie1024.github.io/2019/04/15/20190413_iOS_VideoCaptureExplain/)
    :
 78 |     /// - Parameter connection: AVCaptureConnection?
 79 |     /// - Returns: Bool
 80 |     func _canRemoveConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          `- note: add '@available' attribute to enclosing instance method
 81 |
 82 |         return _configuration {
 83 |
 84 |             guard let connection = connection,
 85 |                   connections.contains(connection)
    |                   |- error: 'connections' is only available in tvOS 17.0 or newer
    |                   `- note: add 'if #available' version check
 86 |             else {
 87 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:90:13: error: 'removeConnection' is only available in tvOS 17.0 or newer
 67 |
 68 | // MARK: - AVCaptureMultiCamSession
 69 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 70 |
 71 |     /// [硬體 / 系統的用量指標](https://xiaodongxie1024.github.io/2019/04/15/20190413_iOS_VideoCaptureExplain/)
    :
 78 |     /// - Parameter connection: AVCaptureConnection?
 79 |     /// - Returns: Bool
 80 |     func _canRemoveConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          `- note: add '@available' attribute to enclosing instance method
 81 |
 82 |         return _configuration {
    :
 88 |             }
 89 |
 90 |             removeConnection(connection)
    |             |- error: 'removeConnection' is only available in tvOS 17.0 or newer
    |             `- note: add 'if #available' version check
 91 |             return true
 92 |         }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:162: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                                                                                                                                                |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 |                                                                                                                                                `- note: add 'if #available' version check
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:178: error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                                                                                                                                                                |- error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
    |                 |                                                                                                                                                                `- note: add 'if #available' version check
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:115:23: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
111 |     ///   - position: AVCaptureDevice.Position
112 |     /// - Returns: [AVCaptureDevice]
113 |     static func _discovery(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> [AVCaptureDevice] {
    |                 `- note: add '@available' attribute to enclosing static method
114 |
115 |         let devices = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: mediaType, position: position).devices
    |                       |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                       `- note: add 'if #available' version check
116 |         return devices
117 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:127:35: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
119 |
120 | // MARK: - AVCaptureDevice (function)
121 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
122 |
123 |     /// 取得該裝置的Input => NSCameraUsageDescription / NSMicrophoneUsageDescription
124 |     func _captureInput() -> Result<AVCaptureDeviceInput, Error> {
    |          `- note: add '@available' attribute to enclosing instance method
125 |
126 |         do {
127 |             let deviceInput = try AVCaptureDeviceInput(device: self)
    |                                   |- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
    |                                   `- note: add 'if #available' version check
128 |             return .success(deviceInput)
129 |         } catch {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:162:45: error: 'addInputWithNoConnections' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
152 |     ///   - isConnections: [Bool](https://www.cnblogs.com/zouchenxi/p/14900858.html)
153 |     /// - Returns: Bool
154 |     func _canAddInput(_ input: AVCaptureInput?, isConnections: Bool) -> Bool {
    |          `- note: add '@available' attribute to enclosing instance method
155 |
156 |         guard let input = input,
    :
160 |         }
161 |
162 |         (isConnections) ? addInput(input) : addInputWithNoConnections(input)
    |                                             |- error: 'addInputWithNoConnections' is only available in tvOS 17.0 or newer
    |                                             `- note: add 'if #available' version check
163 |         return true
164 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:179:47: error: 'addOutputWithNoConnections' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
169 |     ///   - isConnections: Bool
170 |     /// - Returns: Bool
171 |     func _canAddOutput(_ output: AVCaptureOutput?, isConnections: Bool) -> Bool {
    |          `- note: add '@available' attribute to enclosing instance method
172 |
173 |         guard let output = output,
    :
177 |         }
178 |
179 |         (isConnections) ? addOutput(output) : addOutputWithNoConnections(output)
    |                                               |- error: 'addOutputWithNoConnections' is only available in tvOS 17.0 or newer
    |                                               `- note: add 'if #available' version check
180 |         return true
181 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:191:19: error: 'canAddConnection' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
184 |     /// - Parameter connection: AVCaptureConnection?
185 |     /// - Returns: Bool
186 |     func _canAddConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          `- note: add '@available' attribute to enclosing instance method
187 |
188 |         return _configuration {
189 |
190 |             guard let connection = connection,
191 |                   canAddConnection(connection)
    |                   |- error: 'canAddConnection' is only available in tvOS 17.0 or newer
    |                   `- note: add 'if #available' version check
192 |             else {
193 |                 return false
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift (in target 'WWDualCamera' from project 'WWDualCamera')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Extension.swift
SwiftCompile normal arm64 Compiling\ Constant.swift /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Constant.swift (in target 'WWDualCamera' from project 'WWDualCamera')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Constant.swift (in target 'WWDualCamera' from project 'WWDualCamera')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Constant.swift
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
2026-09-21 06:01:21.599 xcodebuild[644:4173] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
	SwiftCompile normal arm64 (in target 'WWDualCamera' from project 'WWDualCamera')
	SwiftEmitModule normal arm64 Emitting\ module\ for\ WWDualCamera (in target 'WWDualCamera' from project 'WWDualCamera')
	Building workspace WWDualCamera with scheme WWDualCamera
(3 failures)
Command line invocation:
    /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/usr/bin/xcodebuild -IDEClonedSourcePackagesDirPathOverride=/Users/admin/builder/spi-builder-workspace/.dependencies -resolvePackageDependencies
Resolve Package Graph
Resolved source packages:
  WWDualCamera: /Users/admin/builder/spi-builder-workspace
resolved source packages: WWDualCamera
2026-09-21 06:01:27.762 xcodebuild[736:4567] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "WWDualCamera",
  "name" : "WWDualCamera",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    }
  ],
  "products" : [
    {
      "name" : "WWDualCamera",
      "targets" : [
        "WWDualCamera"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5"
  ],
  "targets" : [
    {
      "c99name" : "WWDualCamera",
      "module_type" : "SwiftTarget",
      "name" : "WWDualCamera",
      "path" : "Sources/WWDualCamera",
      "product_memberships" : [
        "WWDualCamera"
      ],
      "sources" : [
        "Constant.swift",
        "Extension.swift",
        "WWDualCamera.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
{
  "workspace" : {
    "name" : "WWDualCamera",
    "schemes" : [
      "WWDualCamera"
    ]
  }
}
2026-09-21 06:01:28.984 xcodebuild[744:4637] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun xcodebuild -IDEClonedSourcePackagesDirPathOverride=$PWD/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath $PWD/.derivedData build -scheme WWDualCamera -destination generic/platform=tvOS
Command line invocation:
    /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/usr/bin/xcodebuild -IDEClonedSourcePackagesDirPathOverride=/Users/admin/builder/spi-builder-workspace/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath /Users/admin/builder/spi-builder-workspace/.derivedData build -scheme WWDualCamera -destination generic/platform=tvOS
Resolve Package Graph
Resolved source packages:
  WWDualCamera: /Users/admin/builder/spi-builder-workspace
ComputePackagePrebuildTargetDependencyGraph
Prepare packages
CreateBuildRequest
SendProjectDescription
CreateBuildOperation
ComputeTargetDependencyGraph
note: Building targets in dependency order
note: Target dependency graph (2 targets)
    Target 'WWDualCamera-product' in project 'WWDualCamera'
        ➜ Explicit dependency on target 'WWDualCamera' in project 'WWDualCamera'
    Target 'WWDualCamera' in project 'WWDualCamera' (no dependencies)
GatherProvisioningInputs
CreateBuildDescription
ClangStatCache /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang-stat-cache /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang-stat-cache /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -o /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache
SwiftDriver WWDualCamera normal arm64 com.apple.xcode.tools.swift.compiler (in target 'WWDualCamera' from project 'WWDualCamera')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftDriver -- /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -parse-as-library -module-name WWDualCamera -Onone @/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera.SwiftFileList -DSWIFT_PACKAGE -DDEBUG -DSWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -DXcode -plugin-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins/testing -enable-experimental-feature DebugDescriptionMacro -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -target arm64-apple-tvos15.0 -g -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -Xfrontend -serialize-debugging-options -enable-testing -index-store-path /Users/admin/builder/spi-builder-workspace/.derivedData/Index.noindex/DataStore -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -swift-version 5 -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/Developer/Library/Frameworks -c -j10 -enable-batch-mode -incremental -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera-OutputFileMap.json -save-temps -no-color-diagnostics -explicit-module-build -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -clang-scanner-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex -sdk-module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules -emit-dependencies -emit-module -emit-module-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera.swiftmodule -serialize-diagnostics -dependency-scan-serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera-dependency-scan.dia -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -emit-const-values -const-gather-protocols-list /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera_const_extract_protocols.json -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -emit-objc-header -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera-Swift.h -working-directory /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -experimental-emit-module-separately -disable-cmo
SwiftCompile normal arm64 Compiling\ Extension.swift /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift (in target 'WWDualCamera' from project 'WWDualCamera')
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:18:34: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
  9 |
 10 | // MARK: - AVCaptureSession (function)
 11 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
 12 |
 13 |     /// 加入手機設備 (相機、麥克風…)
    :
 16 |     ///   - isConnections: Bool
 17 |     /// - Returns: Result<Bool, Error>
 18 |     func _canAddDevice(_ device: AVCaptureDevice, isConnections: Bool) -> Result<Bool, Error> {
    |          |                       `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 19 |
 20 |         switch device._captureInput() {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:11:11: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
  9 |
 10 | // MARK: - AVCaptureSession (function)
 11 | extension AVCaptureSession {
    | |         `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 12 |
 13 |     /// 加入手機設備 (相機、麥克風…)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:45: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                           `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:77: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                           `- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:102: error: 'builtInTelephotoCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                                                    `- error: 'builtInTelephotoCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:127: error: 'builtInUltraWideCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                                                                             `- error: 'builtInUltraWideCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:39:11: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | |         `- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:80:45: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 67 |
 68 | // MARK: - AVCaptureMultiCamSession
 69 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 70 |
 71 |     /// [硬體 / 系統的用量指標](https://xiaodongxie1024.github.io/2019/04/15/20190413_iOS_VideoCaptureExplain/)
    :
 78 |     /// - Parameter connection: AVCaptureConnection?
 79 |     /// - Returns: Bool
 80 |     func _canRemoveConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          |                                  `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 81 |
 82 |         return _configuration {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:69:11: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 67 |
 68 | // MARK: - AVCaptureMultiCamSession
 69 | extension AVCaptureMultiCamSession {
    | |         `- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 70 |
 71 |     /// [硬體 / 系統的用量指標](https://xiaodongxie1024.github.io/2019/04/15/20190413_iOS_VideoCaptureExplain/)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:40: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:107: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                                                                                         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:136: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                                                                                                                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:113:42: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
111 |     ///   - position: AVCaptureDevice.Position
112 |     /// - Returns: [AVCaptureDevice]
113 |     static func _discovery(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> [AVCaptureDevice] {
    |                 |                        `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
114 |
115 |         let devices = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: mediaType, position: position).devices
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:113:106: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
111 |     ///   - position: AVCaptureDevice.Position
112 |     /// - Returns: [AVCaptureDevice]
113 |     static func _discovery(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> [AVCaptureDevice] {
    |                 |                                                                                        `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
114 |
115 |         let devices = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: mediaType, position: position).devices
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:113:136: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
111 |     ///   - position: AVCaptureDevice.Position
112 |     /// - Returns: [AVCaptureDevice]
113 |     static func _discovery(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> [AVCaptureDevice] {
    |                 |                                                                                                                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
114 |
115 |         let devices = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: mediaType, position: position).devices
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:97:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | |         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:124:36: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
119 |
120 | // MARK: - AVCaptureDevice (function)
121 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
122 |
123 |     /// 取得該裝置的Input => NSCameraUsageDescription / NSMicrophoneUsageDescription
124 |     func _captureInput() -> Result<AVCaptureDeviceInput, Error> {
    |          |                         `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
125 |
126 |         do {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:121:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
119 |
120 | // MARK: - AVCaptureDevice (function)
121 | extension AVCaptureDevice {
    | |         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
122 |
123 |     /// 取得該裝置的Input => NSCameraUsageDescription / NSMicrophoneUsageDescription
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:141:51: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
134 |
135 | // MARK: - AVCaptureDeviceInput (function)
136 | extension AVCaptureDeviceInput {
    | `- note: add '@available' attribute to enclosing extension
137 |
138 |     /// 取得該媒體類型的Port
139 |     /// - Parameter mediaType: AVMediaType
140 |     /// - Returns: AVCaptureInput.Port?
141 |     func _port(forType mediaType: AVMediaType) -> AVCaptureInput.Port? {
    |          |                                        `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
142 |         return ports.first(where: { $0.mediaType == mediaType })
143 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:136:11: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
134 |
135 | // MARK: - AVCaptureDeviceInput (function)
136 | extension AVCaptureDeviceInput {
    | |         `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
137 |
138 |     /// 取得該媒體類型的Port
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:154:32: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
152 |     ///   - isConnections: [Bool](https://www.cnblogs.com/zouchenxi/p/14900858.html)
153 |     /// - Returns: Bool
154 |     func _canAddInput(_ input: AVCaptureInput?, isConnections: Bool) -> Bool {
    |          |                     `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
155 |
156 |         guard let input = input,
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:171:34: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
169 |     ///   - isConnections: Bool
170 |     /// - Returns: Bool
171 |     func _canAddOutput(_ output: AVCaptureOutput?, isConnections: Bool) -> Bool {
    |          |                       `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
172 |
173 |         guard let output = output,
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:186:42: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
184 |     /// - Parameter connection: AVCaptureConnection?
185 |     /// - Returns: Bool
186 |     func _canAddConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          |                               `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
187 |
188 |         return _configuration {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:207:103: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
205 |     ///   - isConnections: [Bool](https://developer.apple.com/documentation/avfoundation/avcapturevideopreviewlayer/1387426-init)
206 |     /// - Returns: AVCaptureVideoPreviewLayer
207 |     func _previewLayer(with frame: CGRect, videoGravity: AVLayerVideoGravity, isConnections: Bool) -> AVCaptureVideoPreviewLayer {
    |          |                                                                                            `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
208 |
209 |         let previewLayer = isConnections ? AVCaptureVideoPreviewLayer(session: self) : AVCaptureVideoPreviewLayer(sessionWithNoConnection: self)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:147:11: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | |         `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:228:34: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
217 |
218 | // MARK: - AVCaptureVideoDataOutput (static function)
219 | extension AVCaptureVideoDataOutput {
    | `- note: add '@available' attribute to enclosing extension
220 |
221 |     /// 建立AVCaptureVideoDataOutput (影像)
    :
226 |     ///   - isAlwaysDiscardsLateVideoFrames: [Bool](https://blog.csdn.net/github_36843038/article/details/114550865)
227 |     /// - Returns: AVCaptureVideoDataOutput
228 |     static func _build(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, isAlwaysDiscardsLateVideoFrames: Bool, videoSettings: [String : Any], queue: DispatchQueue?) -> AVCaptureVideoDataOutput {
    |                 |                `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
229 |
230 |         let output = AVCaptureVideoDataOutput()
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:228:177: error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
217 |
218 | // MARK: - AVCaptureVideoDataOutput (static function)
219 | extension AVCaptureVideoDataOutput {
    | `- note: add '@available' attribute to enclosing extension
220 |
221 |     /// 建立AVCaptureVideoDataOutput (影像)
    :
226 |     ///   - isAlwaysDiscardsLateVideoFrames: [Bool](https://blog.csdn.net/github_36843038/article/details/114550865)
227 |     /// - Returns: AVCaptureVideoDataOutput
228 |     static func _build(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, isAlwaysDiscardsLateVideoFrames: Bool, videoSettings: [String : Any], queue: DispatchQueue?) -> AVCaptureVideoDataOutput {
    |                 |                                                                                                                                                               `- error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
229 |
230 |         let output = AVCaptureVideoDataOutput()
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:219:11: error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
217 |
218 | // MARK: - AVCaptureVideoDataOutput (static function)
219 | extension AVCaptureVideoDataOutput {
    | |         `- error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
220 |
221 |     /// 建立AVCaptureVideoDataOutput (影像)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:248:37: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
239 |
240 | // MARK: - AVCaptureVideoPreviewLayer (function)
241 | extension AVCaptureVideoPreviewLayer {
    | `- note: add '@available' attribute to enclosing extension
242 |
243 |     /// 設定防手震模式
    :
246 |     ///   - device: AVCaptureDevice
247 |     /// - Returns: Bool
248 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                          `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
249 |         return connection?._stabilizationMode(mode, device: device) ?? false
250 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:248:78: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
239 |
240 | // MARK: - AVCaptureVideoPreviewLayer (function)
241 | extension AVCaptureVideoPreviewLayer {
    | `- note: add '@available' attribute to enclosing extension
242 |
243 |     /// 設定防手震模式
    :
246 |     ///   - device: AVCaptureDevice
247 |     /// - Returns: Bool
248 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                                                                   `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
249 |         return connection?._stabilizationMode(mode, device: device) ?? false
250 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:241:11: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
239 |
240 | // MARK: - AVCaptureVideoPreviewLayer (function)
241 | extension AVCaptureVideoPreviewLayer {
    | |         `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
242 |
243 |     /// 設定防手震模式
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:261:37: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
252 |
253 | // MARK: - AVCaptureConnection (function)
254 | extension AVCaptureConnection {
    | `- note: add '@available' attribute to enclosing extension
255 |
256 |     /// [設定防手震模式](https://stackoverflow.com/questions/77030040/how-to-activate-preferredvideostabilizationmode-for-avcapturesessionpresetphoto)
    :
259 |     ///   - device: AVCaptureDevice
260 |     /// - Returns: Bool
261 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                          `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
262 |
263 |         guard device.activeFormat.isVideoStabilizationModeSupported(mode) else { return false }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:261:78: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
252 |
253 | // MARK: - AVCaptureConnection (function)
254 | extension AVCaptureConnection {
    | `- note: add '@available' attribute to enclosing extension
255 |
256 |     /// [設定防手震模式](https://stackoverflow.com/questions/77030040/how-to-activate-preferredvideostabilizationmode-for-avcapturesessionpresetphoto)
    :
259 |     ///   - device: AVCaptureDevice
260 |     /// - Returns: Bool
261 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                                                                   `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
262 |
263 |         guard device.activeFormat.isVideoStabilizationModeSupported(mode) else { return false }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:254:11: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
252 |
253 | // MARK: - AVCaptureConnection (function)
254 | extension AVCaptureConnection {
    | |         `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
255 |
256 |     /// [設定防手震模式](https://stackoverflow.com/questions/77030040/how-to-activate-preferredvideostabilizationmode-for-avcapturesessionpresetphoto)
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift (in target 'WWDualCamera' from project 'WWDualCamera')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Extension.swift
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:44:16: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
 42 |     /// - Returns: [Bool](https://developer.apple.com/documentation/avfoundation/avcapturemulticamsession/3183002-multicamsupported)
 43 |     static func _isSupported() -> Bool {
    |                 `- note: add '@available' attribute to enclosing static method
 44 |         return AVCaptureMultiCamSession.isMultiCamSupported
    |                |- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    |                `- note: add 'if #available' version check
 45 |     }
 46 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:54:23: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
 53 |
 54 |         let session = AVCaptureMultiCamSession()
    |                       |- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    |                       `- note: add 'if #available' version check
 55 |         let devices = AVCaptureDevice._discovery(deviceTypes: deviceTypes, mediaType: .video, position: .unspecified)
 56 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:55:23: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
 53 |
 54 |         let session = AVCaptureMultiCamSession()
 55 |         let devices = AVCaptureDevice._discovery(deviceTypes: deviceTypes, mediaType: .video, position: .unspecified)
    |                       |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                       `- note: add 'if #available' version check
 56 |
 57 |         let count = devices.compactMap { device -> Bool? in
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:85:19: error: 'connections' is only available in tvOS 17.0 or newer
 67 |
 68 | // MARK: - AVCaptureMultiCamSession
 69 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 70 |
 71 |     /// [硬體 / 系統的用量指標](https://xiaodongxie1024.github.io/2019/04/15/20190413_iOS_VideoCaptureExplain/)
    :
 78 |     /// - Parameter connection: AVCaptureConnection?
 79 |     /// - Returns: Bool
 80 |     func _canRemoveConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          `- note: add '@available' attribute to enclosing instance method
 81 |
 82 |         return _configuration {
 83 |
 84 |             guard let connection = connection,
 85 |                   connections.contains(connection)
    |                   |- error: 'connections' is only available in tvOS 17.0 or newer
    |                   `- note: add 'if #available' version check
 86 |             else {
 87 |                 return false
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:90:13: error: 'removeConnection' is only available in tvOS 17.0 or newer
 67 |
 68 | // MARK: - AVCaptureMultiCamSession
 69 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 70 |
 71 |     /// [硬體 / 系統的用量指標](https://xiaodongxie1024.github.io/2019/04/15/20190413_iOS_VideoCaptureExplain/)
    :
 78 |     /// - Parameter connection: AVCaptureConnection?
 79 |     /// - Returns: Bool
 80 |     func _canRemoveConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          `- note: add '@available' attribute to enclosing instance method
 81 |
 82 |         return _configuration {
    :
 88 |             }
 89 |
 90 |             removeConnection(connection)
    |             |- error: 'removeConnection' is only available in tvOS 17.0 or newer
    |             `- note: add 'if #available' version check
 91 |             return true
 92 |         }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:162: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                                                                                                                                                |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 |                                                                                                                                                `- note: add 'if #available' version check
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:178: error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                                                                                                                                                                |- error: 'default(_:for:position:)' is only available in tvOS 17.0 or newer
    |                 |                                                                                                                                                                `- note: add 'if #available' version check
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:115:23: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
111 |     ///   - position: AVCaptureDevice.Position
112 |     /// - Returns: [AVCaptureDevice]
113 |     static func _discovery(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> [AVCaptureDevice] {
    |                 `- note: add '@available' attribute to enclosing static method
114 |
115 |         let devices = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: mediaType, position: position).devices
    |                       |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                       `- note: add 'if #available' version check
116 |         return devices
117 |     }
SwiftEmitModule normal arm64 Emitting\ module\ for\ WWDualCamera (in target 'WWDualCamera' from project 'WWDualCamera')
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:18:34: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
  9 |
 10 | // MARK: - AVCaptureSession (function)
 11 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
 12 |
 13 |     /// 加入手機設備 (相機、麥克風…)
    :
 16 |     ///   - isConnections: Bool
 17 |     /// - Returns: Result<Bool, Error>
 18 |     func _canAddDevice(_ device: AVCaptureDevice, isConnections: Bool) -> Result<Bool, Error> {
    |          |                       `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 19 |
 20 |         switch device._captureInput() {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:11:11: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
  9 |
 10 | // MARK: - AVCaptureSession (function)
 11 | extension AVCaptureSession {
    | |         `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 12 |
 13 |     /// 加入手機設備 (相機、麥克風…)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:45: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                           `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:77: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                           `- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:102: error: 'builtInTelephotoCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                                                    `- error: 'builtInTelephotoCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:127: error: 'builtInUltraWideCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                                                                             `- error: 'builtInUltraWideCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:39:11: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | |         `- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:80:45: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 67 |
 68 | // MARK: - AVCaptureMultiCamSession
 69 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 70 |
 71 |     /// [硬體 / 系統的用量指標](https://xiaodongxie1024.github.io/2019/04/15/20190413_iOS_VideoCaptureExplain/)
    :
 78 |     /// - Parameter connection: AVCaptureConnection?
 79 |     /// - Returns: Bool
 80 |     func _canRemoveConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          |                                  `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 81 |
 82 |         return _configuration {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:69:11: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 67 |
 68 | // MARK: - AVCaptureMultiCamSession
 69 | extension AVCaptureMultiCamSession {
    | |         `- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 70 |
 71 |     /// [硬體 / 系統的用量指標](https://xiaodongxie1024.github.io/2019/04/15/20190413_iOS_VideoCaptureExplain/)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:40: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:107: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                                                                                         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:105:136: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
103 |     ///   - position: AVCaptureDevice.Position
104 |     /// - Returns: AVCaptureDevice?
105 |     static func _default(_ deviceType: AVCaptureDevice.DeviceType, for mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> AVCaptureDevice? { return AVCaptureDevice.default(deviceType, for: mediaType, position: position) }
    |                 |                                                                                                                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
106 |
107 |     /// 搜尋影音裝置
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:113:42: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
111 |     ///   - position: AVCaptureDevice.Position
112 |     /// - Returns: [AVCaptureDevice]
113 |     static func _discovery(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> [AVCaptureDevice] {
    |                 |                        `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
114 |
115 |         let devices = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: mediaType, position: position).devices
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:113:106: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
111 |     ///   - position: AVCaptureDevice.Position
112 |     /// - Returns: [AVCaptureDevice]
113 |     static func _discovery(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> [AVCaptureDevice] {
    |                 |                                                                                        `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
114 |
115 |         let devices = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: mediaType, position: position).devices
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:113:136: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
    :
111 |     ///   - position: AVCaptureDevice.Position
112 |     /// - Returns: [AVCaptureDevice]
113 |     static func _discovery(deviceTypes: [AVCaptureDevice.DeviceType], mediaType: AVMediaType?, position: AVCaptureDevice.Position) -> [AVCaptureDevice] {
    |                 |                                                                                                                      `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
114 |
115 |         let devices = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes, mediaType: mediaType, position: position).devices
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:97:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 95 |
 96 | // MARK: - AVCaptureDevice (static function)
 97 | extension AVCaptureDevice {
    | |         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
 98 |
 99 |     /// [取得該選項的影音裝置](https://www.wwdcnotes.com/notes/wwdc19/249/)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:124:36: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
119 |
120 | // MARK: - AVCaptureDevice (function)
121 | extension AVCaptureDevice {
    | `- note: add '@available' attribute to enclosing extension
122 |
123 |     /// 取得該裝置的Input => NSCameraUsageDescription / NSMicrophoneUsageDescription
124 |     func _captureInput() -> Result<AVCaptureDeviceInput, Error> {
    |          |                         `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
125 |
126 |         do {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:121:11: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
119 |
120 | // MARK: - AVCaptureDevice (function)
121 | extension AVCaptureDevice {
    | |         `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
122 |
123 |     /// 取得該裝置的Input => NSCameraUsageDescription / NSMicrophoneUsageDescription
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:141:51: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
134 |
135 | // MARK: - AVCaptureDeviceInput (function)
136 | extension AVCaptureDeviceInput {
    | `- note: add '@available' attribute to enclosing extension
137 |
138 |     /// 取得該媒體類型的Port
139 |     /// - Parameter mediaType: AVMediaType
140 |     /// - Returns: AVCaptureInput.Port?
141 |     func _port(forType mediaType: AVMediaType) -> AVCaptureInput.Port? {
    |          |                                        `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
142 |         return ports.first(where: { $0.mediaType == mediaType })
143 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:136:11: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
134 |
135 | // MARK: - AVCaptureDeviceInput (function)
136 | extension AVCaptureDeviceInput {
    | |         `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
137 |
138 |     /// 取得該媒體類型的Port
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:154:32: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
152 |     ///   - isConnections: [Bool](https://www.cnblogs.com/zouchenxi/p/14900858.html)
153 |     /// - Returns: Bool
154 |     func _canAddInput(_ input: AVCaptureInput?, isConnections: Bool) -> Bool {
    |          |                     `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
155 |
156 |         guard let input = input,
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:171:34: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
169 |     ///   - isConnections: Bool
170 |     /// - Returns: Bool
171 |     func _canAddOutput(_ output: AVCaptureOutput?, isConnections: Bool) -> Bool {
    |          |                       `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
172 |
173 |         guard let output = output,
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:186:42: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
184 |     /// - Parameter connection: AVCaptureConnection?
185 |     /// - Returns: Bool
186 |     func _canAddConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          |                               `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
187 |
188 |         return _configuration {
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:207:103: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
    :
205 |     ///   - isConnections: [Bool](https://developer.apple.com/documentation/avfoundation/avcapturevideopreviewlayer/1387426-init)
206 |     /// - Returns: AVCaptureVideoPreviewLayer
207 |     func _previewLayer(with frame: CGRect, videoGravity: AVLayerVideoGravity, isConnections: Bool) -> AVCaptureVideoPreviewLayer {
    |          |                                                                                            `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
208 |
209 |         let previewLayer = isConnections ? AVCaptureVideoPreviewLayer(session: self) : AVCaptureVideoPreviewLayer(sessionWithNoConnection: self)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:147:11: error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
145 |
146 | // MARK: - AVCaptureSession (function)
147 | extension AVCaptureSession {
    | |         `- error: 'AVCaptureSession' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
148 |
149 |     /// 將影音的Input加入Session (可以不連接)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:228:34: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
217 |
218 | // MARK: - AVCaptureVideoDataOutput (static function)
219 | extension AVCaptureVideoDataOutput {
    | `- note: add '@available' attribute to enclosing extension
220 |
221 |     /// 建立AVCaptureVideoDataOutput (影像)
    :
226 |     ///   - isAlwaysDiscardsLateVideoFrames: [Bool](https://blog.csdn.net/github_36843038/article/details/114550865)
227 |     /// - Returns: AVCaptureVideoDataOutput
228 |     static func _build(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, isAlwaysDiscardsLateVideoFrames: Bool, videoSettings: [String : Any], queue: DispatchQueue?) -> AVCaptureVideoDataOutput {
    |                 |                `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
229 |
230 |         let output = AVCaptureVideoDataOutput()
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:228:177: error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
217 |
218 | // MARK: - AVCaptureVideoDataOutput (static function)
219 | extension AVCaptureVideoDataOutput {
    | `- note: add '@available' attribute to enclosing extension
220 |
221 |     /// 建立AVCaptureVideoDataOutput (影像)
    :
226 |     ///   - isAlwaysDiscardsLateVideoFrames: [Bool](https://blog.csdn.net/github_36843038/article/details/114550865)
227 |     /// - Returns: AVCaptureVideoDataOutput
228 |     static func _build(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, isAlwaysDiscardsLateVideoFrames: Bool, videoSettings: [String : Any], queue: DispatchQueue?) -> AVCaptureVideoDataOutput {
    |                 |                                                                                                                                                               `- error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
229 |
230 |         let output = AVCaptureVideoDataOutput()
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:219:11: error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
217 |
218 | // MARK: - AVCaptureVideoDataOutput (static function)
219 | extension AVCaptureVideoDataOutput {
    | |         `- error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
220 |
221 |     /// 建立AVCaptureVideoDataOutput (影像)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:248:37: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
239 |
240 | // MARK: - AVCaptureVideoPreviewLayer (function)
241 | extension AVCaptureVideoPreviewLayer {
    | `- note: add '@available' attribute to enclosing extension
242 |
243 |     /// 設定防手震模式
    :
246 |     ///   - device: AVCaptureDevice
247 |     /// - Returns: Bool
248 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                          `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
249 |         return connection?._stabilizationMode(mode, device: device) ?? false
250 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:248:78: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
239 |
240 | // MARK: - AVCaptureVideoPreviewLayer (function)
241 | extension AVCaptureVideoPreviewLayer {
    | `- note: add '@available' attribute to enclosing extension
242 |
243 |     /// 設定防手震模式
    :
246 |     ///   - device: AVCaptureDevice
247 |     /// - Returns: Bool
248 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                                                                   `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
249 |         return connection?._stabilizationMode(mode, device: device) ?? false
250 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:241:11: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
239 |
240 | // MARK: - AVCaptureVideoPreviewLayer (function)
241 | extension AVCaptureVideoPreviewLayer {
    | |         `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
242 |
243 |     /// 設定防手震模式
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:261:37: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
252 |
253 | // MARK: - AVCaptureConnection (function)
254 | extension AVCaptureConnection {
    | `- note: add '@available' attribute to enclosing extension
255 |
256 |     /// [設定防手震模式](https://stackoverflow.com/questions/77030040/how-to-activate-preferredvideostabilizationmode-for-avcapturesessionpresetphoto)
    :
259 |     ///   - device: AVCaptureDevice
260 |     /// - Returns: Bool
261 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                          `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
262 |
263 |         guard device.activeFormat.isVideoStabilizationModeSupported(mode) else { return false }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:261:78: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
252 |
253 | // MARK: - AVCaptureConnection (function)
254 | extension AVCaptureConnection {
    | `- note: add '@available' attribute to enclosing extension
255 |
256 |     /// [設定防手震模式](https://stackoverflow.com/questions/77030040/how-to-activate-preferredvideostabilizationmode-for-avcapturesessionpresetphoto)
    :
259 |     ///   - device: AVCaptureDevice
260 |     /// - Returns: Bool
261 |     func _stabilizationMode(_ mode: AVCaptureVideoStabilizationMode, device: AVCaptureDevice) -> Bool {
    |          |                                                                   `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
262 |
263 |         guard device.activeFormat.isVideoStabilizationModeSupported(mode) else { return false }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:254:11: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
252 |
253 | // MARK: - AVCaptureConnection (function)
254 | extension AVCaptureConnection {
    | |         `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    | `- note: add '@available' attribute to enclosing extension
255 |
256 |     /// [設定防手震模式](https://stackoverflow.com/questions/77030040/how-to-activate-preferredvideostabilizationmode-for-avcapturesessionpresetphoto)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:16:21: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    |                      `- note: add '@available' attribute to enclosing type alias
 15 |         frame: CGRect,                              // 放在哪個位置上面
 16 |         deviceType: AVCaptureDevice.DeviceType,     // 鏡頭裝置類型
    |                     `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 17 |         position: AVCaptureDevice.Position          // 鏡頭前後位置
 18 |     )
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:17:19: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    |                      `- note: add '@available' attribute to enclosing type alias
 15 |         frame: CGRect,                              // 放在哪個位置上面
 16 |         deviceType: AVCaptureDevice.DeviceType,     // 鏡頭裝置類型
 17 |         position: AVCaptureDevice.Position          // 鏡頭前後位置
    |                   `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 18 |     )
 19 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:21:16: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 18 |     )
 19 |
 20 |     public typealias CameraSessionOutput = (
    |                      `- note: add '@available' attribute to enclosing type alias
 21 |         input: AVCaptureDeviceInput?,               // 裝置輸入
    |                `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
 22 |         output: AVCaptureVideoDataOutput?,          // 影像輸出
 23 |         previewLayer: AVCaptureVideoPreviewLayer?,  // 預覽畫面
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:22:17: error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 18 |     )
 19 |
 20 |     public typealias CameraSessionOutput = (
    |                      `- note: add '@available' attribute to enclosing type alias
 21 |         input: AVCaptureDeviceInput?,               // 裝置輸入
 22 |         output: AVCaptureVideoDataOutput?,          // 影像輸出
    |                 `- error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
 23 |         previewLayer: AVCaptureVideoPreviewLayer?,  // 預覽畫面
 24 |         error: Error?                               // 錯誤
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:23:23: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 18 |     )
 19 |
 20 |     public typealias CameraSessionOutput = (
    |                      `- note: add '@available' attribute to enclosing type alias
 21 |         input: AVCaptureDeviceInput?,               // 裝置輸入
 22 |         output: AVCaptureVideoDataOutput?,          // 影像輸出
 23 |         previewLayer: AVCaptureVideoPreviewLayer?,  // 預覽畫面
    |                       `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 24 |         error: Error?                               // 錯誤
 25 |     )
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:32:31: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 30 |     )
 31 |
 32 |     public let multiSession = AVCaptureMultiCamSession()
    |                               `- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 33 |
 34 |     /// [是否支援多鏡頭同時動作](https://developer.apple.com/documentation/avfoundation/avcapturemulticamsession/3183002-multicamsupported)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:53:22: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
 52 |     /// - Returns: Result<[AVCaptureConnection], Error>
 53 |     func start() -> [AVCaptureConnection] {
    |          |           `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 54 |         multiSession.startRunning()
 55 |         return multiSession.connections
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:60:21: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 58 |     /// 關閉執行
 59 |     /// - Returns: 有連上Session的Connection
 60 |     func stop() -> [AVCaptureConnection] {
    |          |          `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 61 |         multiSession.stopRunning()
 62 |         return multiSession.connections
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:70:23: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 68 |     ///   - inputs: [AVCaptureInput]
 69 |     ///   - isConnections: Bool
 70 |     func addInputs<T: AVCaptureInput>(_ inputs: [T], isConnections: Bool = true) -> Bool {
    |          |            `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 71 |
 72 |         var isSuccess = true
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:83:24: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 81 |     ///   - isConnections: Bool
 82 |     /// - Returns: Bool
 83 |     func addOutputs<T: AVCaptureOutput>(_ outputs: [T], isConnections: Bool = true) -> Bool {
    |          |             `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 84 |
 85 |         var isSuccess = true
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:94:41: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 92 |     /// - Parameter connection: AVCaptureConnection?
 93 |     /// - Returns: Result<[AVCaptureConnection], Error>
 94 |     func canAddConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          |                              `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 95 |         return multiSession._canAddConnection(connection)
 96 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:100:33: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 98 |     /// 相關的設定 (切換硬體)
 99 |     /// - Parameter action: AVCaptureMultiCamSession
100 |     func configuration(action: (AVCaptureMultiCamSession) -> Void) {
    |          |                      `- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
101 |         multiSession._configuration { action(multiSession) }
102 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:107:34: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
105 |     /// - Parameter inputs: [AVCaptureInput]
106 |     /// - Returns: AVCaptureMultiCamSession所剩下的inputs
107 |     func removeInputs(_ inputs: [AVCaptureInput]) -> [AVCaptureInput] {
    |          |                       `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
108 |         inputs.forEach { multiSession.removeInput($0) }
109 |         return multiSession.inputs
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:107:55: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
105 |     /// - Parameter inputs: [AVCaptureInput]
106 |     /// - Returns: AVCaptureMultiCamSession所剩下的inputs
107 |     func removeInputs(_ inputs: [AVCaptureInput]) -> [AVCaptureInput] {
    |          |                                            `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
108 |         inputs.forEach { multiSession.removeInput($0) }
109 |         return multiSession.inputs
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:114:32: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
112 |     /// 移除所有輸入裝置
113 |     /// - Returns: AVCaptureMultiCamSession所剩下的inputs
114 |     func removeAllInputs() -> [AVCaptureInput] {
    |          |                     `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
115 |         removeInputs(multiSession.inputs)
116 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:121:36: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
119 |     /// - Parameter inputs: [AVCaptureInput]
120 |     /// - Returns: AVCaptureMultiCamSession所剩下的outputs
121 |     func removeOutputs(_ outputs: [AVCaptureOutput]) -> [AVCaptureOutput] {
    |          |                         `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
122 |         outputs.forEach { multiSession.removeOutput($0) }
123 |         return multiSession.outputs
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:121:58: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
119 |     /// - Parameter inputs: [AVCaptureInput]
120 |     /// - Returns: AVCaptureMultiCamSession所剩下的outputs
121 |     func removeOutputs(_ outputs: [AVCaptureOutput]) -> [AVCaptureOutput] {
    |          |                                               `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
122 |         outputs.forEach { multiSession.removeOutput($0) }
123 |         return multiSession.outputs
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:128:33: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
126 |     /// 移除所有輸出裝置
127 |     /// - Returns: AVCaptureMultiCamSession所剩下的outputs
128 |     func removeAllOutputs() -> [AVCaptureOutput] {
    |          |                      `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
129 |         removeOutputs(multiSession.outputs)
130 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:135:44: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
133 |     /// - Parameter connection: AVCaptureConnection?
134 |     /// - Returns: Bool
135 |     func canRemoveConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          |                                 `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
136 |         return multiSession._canRemoveConnection(connection)
137 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:146:35: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
144 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
145 |     /// - Returns: [CameraSessionOutput]
146 |     func sessionOutputs(delegate: AVCaptureVideoDataOutputSampleBufferDelegate? = nil, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity = .resizeAspectFill, stabilizationMode: AVCaptureVideoStabilizationMode = .auto) -> [CameraSessionOutput] {
    |          |                        `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
147 |         return outputsSetting(delegate: delegate, inputs: inputs, videoGravity: videoGravity, isAlwaysDiscardsLateVideoFrames: true, stabilizationMode: stabilizationMode)
148 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:146:192: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
144 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
145 |     /// - Returns: [CameraSessionOutput]
146 |     func sessionOutputs(delegate: AVCaptureVideoDataOutputSampleBufferDelegate? = nil, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity = .resizeAspectFill, stabilizationMode: AVCaptureVideoStabilizationMode = .auto) -> [CameraSessionOutput] {
    |          |                                                                                                                                                                                     `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
147 |         return outputsSetting(delegate: delegate, inputs: inputs, videoGravity: videoGravity, isAlwaysDiscardsLateVideoFrames: true, stabilizationMode: stabilizationMode)
148 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:168:35: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
166 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
167 |     /// - Returns: [CameraSessionOutput]
168 |     func outputsSetting(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> [CameraSessionOutput] {
    |          |                        `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
169 |
170 |         var outputs: [CameraSessionOutput] = []
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:168:205: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
166 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
167 |     /// - Returns: [CameraSessionOutput]
168 |     func outputsSetting(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> [CameraSessionOutput] {
    |          |                                                                                                                                                                                                  `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
169 |
170 |         var outputs: [CameraSessionOutput] = []
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:189:61: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          |                                                  `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:189:201: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          |                                                                                                                                                                                              `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
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/WWDualCamera/Constant.swift /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift -target arm64-apple-tvos15.0 -disable-cross-import-overlay-search -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/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera-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/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name WWDualCamera -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera_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/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/WWDualCamera.build/Debug-appletvos/WWDualCamera-t.build/Objects-normal/arm64/WWDualCamera.abi.json
SwiftCompile normal arm64 (in target 'WWDualCamera' from project 'WWDualCamera')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode

SwiftCompile normal arm64 Compiling\ Constant.swift /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Constant.swift (in target 'WWDualCamera' from project 'WWDualCamera')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Constant.swift (in target 'WWDualCamera' from project 'WWDualCamera')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Constant.swift
SwiftCompile normal arm64 Compiling\ WWDualCamera.swift /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift (in target 'WWDualCamera' from project 'WWDualCamera')
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:16:21: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    |                      `- note: add '@available' attribute to enclosing type alias
 15 |         frame: CGRect,                              // 放在哪個位置上面
 16 |         deviceType: AVCaptureDevice.DeviceType,     // 鏡頭裝置類型
    |                     `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 17 |         position: AVCaptureDevice.Position          // 鏡頭前後位置
 18 |     )
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:17:19: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    |                      `- note: add '@available' attribute to enclosing type alias
 15 |         frame: CGRect,                              // 放在哪個位置上面
 16 |         deviceType: AVCaptureDevice.DeviceType,     // 鏡頭裝置類型
 17 |         position: AVCaptureDevice.Position          // 鏡頭前後位置
    |                   `- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
 18 |     )
 19 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:21:16: error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 18 |     )
 19 |
 20 |     public typealias CameraSessionOutput = (
    |                      `- note: add '@available' attribute to enclosing type alias
 21 |         input: AVCaptureDeviceInput?,               // 裝置輸入
    |                `- error: 'AVCaptureDeviceInput' is only available in tvOS 17.0 or newer
 22 |         output: AVCaptureVideoDataOutput?,          // 影像輸出
 23 |         previewLayer: AVCaptureVideoPreviewLayer?,  // 預覽畫面
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:22:17: error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 18 |     )
 19 |
 20 |     public typealias CameraSessionOutput = (
    |                      `- note: add '@available' attribute to enclosing type alias
 21 |         input: AVCaptureDeviceInput?,               // 裝置輸入
 22 |         output: AVCaptureVideoDataOutput?,          // 影像輸出
    |                 `- error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
 23 |         previewLayer: AVCaptureVideoPreviewLayer?,  // 預覽畫面
 24 |         error: Error?                               // 錯誤
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:23:23: error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 18 |     )
 19 |
 20 |     public typealias CameraSessionOutput = (
    |                      `- note: add '@available' attribute to enclosing type alias
 21 |         input: AVCaptureDeviceInput?,               // 裝置輸入
 22 |         output: AVCaptureVideoDataOutput?,          // 影像輸出
 23 |         previewLayer: AVCaptureVideoPreviewLayer?,  // 預覽畫面
    |                       `- error: 'AVCaptureVideoPreviewLayer' is only available in tvOS 17.0 or newer
 24 |         error: Error?                               // 錯誤
 25 |     )
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:32:31: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 30 |     )
 31 |
 32 |     public let multiSession = AVCaptureMultiCamSession()
    |                               `- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 33 |
 34 |     /// [是否支援多鏡頭同時動作](https://developer.apple.com/documentation/avfoundation/avcapturemulticamsession/3183002-multicamsupported)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:53:22: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
 52 |     /// - Returns: Result<[AVCaptureConnection], Error>
 53 |     func start() -> [AVCaptureConnection] {
    |          |           `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 54 |         multiSession.startRunning()
 55 |         return multiSession.connections
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:60:21: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 58 |     /// 關閉執行
 59 |     /// - Returns: 有連上Session的Connection
 60 |     func stop() -> [AVCaptureConnection] {
    |          |          `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 61 |         multiSession.stopRunning()
 62 |         return multiSession.connections
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:70:23: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 68 |     ///   - inputs: [AVCaptureInput]
 69 |     ///   - isConnections: Bool
 70 |     func addInputs<T: AVCaptureInput>(_ inputs: [T], isConnections: Bool = true) -> Bool {
    |          |            `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 71 |
 72 |         var isSuccess = true
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:83:24: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 81 |     ///   - isConnections: Bool
 82 |     /// - Returns: Bool
 83 |     func addOutputs<T: AVCaptureOutput>(_ outputs: [T], isConnections: Bool = true) -> Bool {
    |          |             `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 84 |
 85 |         var isSuccess = true
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:94:41: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 92 |     /// - Parameter connection: AVCaptureConnection?
 93 |     /// - Returns: Result<[AVCaptureConnection], Error>
 94 |     func canAddConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          |                              `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 95 |         return multiSession._canAddConnection(connection)
 96 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:100:33: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 98 |     /// 相關的設定 (切換硬體)
 99 |     /// - Parameter action: AVCaptureMultiCamSession
100 |     func configuration(action: (AVCaptureMultiCamSession) -> Void) {
    |          |                      `- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
101 |         multiSession._configuration { action(multiSession) }
102 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:107:34: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
105 |     /// - Parameter inputs: [AVCaptureInput]
106 |     /// - Returns: AVCaptureMultiCamSession所剩下的inputs
107 |     func removeInputs(_ inputs: [AVCaptureInput]) -> [AVCaptureInput] {
    |          |                       `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
108 |         inputs.forEach { multiSession.removeInput($0) }
109 |         return multiSession.inputs
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:107:55: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
105 |     /// - Parameter inputs: [AVCaptureInput]
106 |     /// - Returns: AVCaptureMultiCamSession所剩下的inputs
107 |     func removeInputs(_ inputs: [AVCaptureInput]) -> [AVCaptureInput] {
    |          |                                            `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
108 |         inputs.forEach { multiSession.removeInput($0) }
109 |         return multiSession.inputs
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:114:32: error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
112 |     /// 移除所有輸入裝置
113 |     /// - Returns: AVCaptureMultiCamSession所剩下的inputs
114 |     func removeAllInputs() -> [AVCaptureInput] {
    |          |                     `- error: 'AVCaptureInput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
115 |         removeInputs(multiSession.inputs)
116 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:121:36: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
119 |     /// - Parameter inputs: [AVCaptureInput]
120 |     /// - Returns: AVCaptureMultiCamSession所剩下的outputs
121 |     func removeOutputs(_ outputs: [AVCaptureOutput]) -> [AVCaptureOutput] {
    |          |                         `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
122 |         outputs.forEach { multiSession.removeOutput($0) }
123 |         return multiSession.outputs
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:121:58: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
119 |     /// - Parameter inputs: [AVCaptureInput]
120 |     /// - Returns: AVCaptureMultiCamSession所剩下的outputs
121 |     func removeOutputs(_ outputs: [AVCaptureOutput]) -> [AVCaptureOutput] {
    |          |                                               `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
122 |         outputs.forEach { multiSession.removeOutput($0) }
123 |         return multiSession.outputs
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:128:33: error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
126 |     /// 移除所有輸出裝置
127 |     /// - Returns: AVCaptureMultiCamSession所剩下的outputs
128 |     func removeAllOutputs() -> [AVCaptureOutput] {
    |          |                      `- error: 'AVCaptureOutput' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
129 |         removeOutputs(multiSession.outputs)
130 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:135:44: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
133 |     /// - Parameter connection: AVCaptureConnection?
134 |     /// - Returns: Bool
135 |     func canRemoveConnection(_ connection: AVCaptureConnection?) -> Bool {
    |          |                                 `- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
136 |         return multiSession._canRemoveConnection(connection)
137 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:146:35: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
144 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
145 |     /// - Returns: [CameraSessionOutput]
146 |     func sessionOutputs(delegate: AVCaptureVideoDataOutputSampleBufferDelegate? = nil, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity = .resizeAspectFill, stabilizationMode: AVCaptureVideoStabilizationMode = .auto) -> [CameraSessionOutput] {
    |          |                        `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
147 |         return outputsSetting(delegate: delegate, inputs: inputs, videoGravity: videoGravity, isAlwaysDiscardsLateVideoFrames: true, stabilizationMode: stabilizationMode)
148 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:146:192: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
144 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
145 |     /// - Returns: [CameraSessionOutput]
146 |     func sessionOutputs(delegate: AVCaptureVideoDataOutputSampleBufferDelegate? = nil, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity = .resizeAspectFill, stabilizationMode: AVCaptureVideoStabilizationMode = .auto) -> [CameraSessionOutput] {
    |          |                                                                                                                                                                                     `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
147 |         return outputsSetting(delegate: delegate, inputs: inputs, videoGravity: videoGravity, isAlwaysDiscardsLateVideoFrames: true, stabilizationMode: stabilizationMode)
148 |     }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:168:35: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
166 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
167 |     /// - Returns: [CameraSessionOutput]
168 |     func outputsSetting(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> [CameraSessionOutput] {
    |          |                        `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
169 |
170 |         var outputs: [CameraSessionOutput] = []
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:168:205: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
166 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
167 |     /// - Returns: [CameraSessionOutput]
168 |     func outputsSetting(delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, inputs: [CameraSessionInput], videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> [CameraSessionOutput] {
    |          |                                                                                                                                                                                                  `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
169 |
170 |         var outputs: [CameraSessionOutput] = []
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:189:61: error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          |                                                  `- error: 'AVCaptureVideoDataOutputSampleBufferDelegate' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:189:201: error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          |                                                                                                                                                                                              `- error: 'AVCaptureVideoStabilizationMode' is only available in tvOS 17.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:35:44: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 33 |
 34 |     /// [是否支援多鏡頭同時動作](https://developer.apple.com/documentation/avfoundation/avcapturemulticamsession/3183002-multicamsupported)
 35 |     public var isMultiCamSupported: Bool { AVCaptureMultiCamSession.isMultiCamSupported }
    |                |                           |- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    |                |                           `- note: add 'if #available' version check
    |                `- note: add '@available' attribute to enclosing property
 36 |
 37 |     /// 是否正在預覽畫面
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:41:36: error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
 10 |
 11 | /// MARK: - 產生雙鏡頭輸出
 12 | open class WWDualCamera: NSObject {
    |            `- note: add '@available' attribute to enclosing class
 13 |
 14 |     public typealias CameraSessionInput = (
    :
 39 |
 40 |     /// 當前設備支持的最大同時使用鏡頭數
 41 |     public var supportCount: Int { AVCaptureMultiCamSession._supportCount() }
    |                |                   |- error: 'AVCaptureMultiCamSession' is only available in tvOS 17.0 or newer
    |                |                   `- note: add 'if #available' version check
    |                `- note: add '@available' attribute to enclosing property
 42 |
 43 |     private override init() {}
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:77: error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                           `- error: 'builtInWideAngleCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:102: error: 'builtInTelephotoCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                                                    `- error: 'builtInTelephotoCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/Extension.swift:50:127: error: 'builtInUltraWideCamera' is only available in tvOS 17.0 or newer
 37 |
 38 | // MARK: - AVCaptureMultiCamSession (static function)
 39 | extension AVCaptureMultiCamSession {
    | `- note: add '@available' attribute to enclosing extension
 40 |
 41 |     /// [是否支援多鏡頭同時動作](https://applealmond.com/posts/58750)
    :
 48 |     /// - Parameter deviceTypes: 要支援的類型
 49 |     /// - Returns: Int
 50 |     static func _supportCount(deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInWideAngleCamera, .builtInTelephotoCamera, .builtInUltraWideCamera]) -> Int {
    |                 |                                                                                                             `- error: 'builtInUltraWideCamera' is only available in tvOS 17.0 or newer
    |                 `- note: add '@available' attribute to enclosing static method
 51 |
 52 |         guard _isSupported() else { return 1 }
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:55:29: error: 'connections' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
 52 |     /// - Returns: Result<[AVCaptureConnection], Error>
 53 |     func start() -> [AVCaptureConnection] {
    |          `- note: add '@available' attribute to enclosing instance method
 54 |         multiSession.startRunning()
 55 |         return multiSession.connections
    |                             |- error: 'connections' is only available in tvOS 17.0 or newer
    |                             `- note: add 'if #available' version check
 56 |     }
 57 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:62:29: error: 'connections' is only available in tvOS 17.0 or newer
 47 |
 48 | /// MARK: - 公開工具
 49 | public extension WWDualCamera {
    |        `- note: add '@available' attribute to enclosing extension
 50 |
 51 |     /// 開始執行
    :
 58 |     /// 關閉執行
 59 |     /// - Returns: 有連上Session的Connection
 60 |     func stop() -> [AVCaptureConnection] {
    |          `- note: add '@available' attribute to enclosing instance method
 61 |         multiSession.stopRunning()
 62 |         return multiSession.connections
    |                             |- error: 'connections' is only available in tvOS 17.0 or newer
    |                             `- note: add 'if #available' version check
 63 |     }
 64 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:191:22: error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
    |                      |- error: 'AVCaptureDevice' is only available in tvOS 17.0 or newer
    |                      `- note: add 'if #available' version check
192 |         var sessionOutput: CameraSessionOutput = (input: nil, output: nil, previewLayer: nil, error: nil)
193 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:204:27: error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
    :
202 |
203 |             let queue = DispatchQueue(label: "\(Date().timeIntervalSince1970)")
204 |             let _output = AVCaptureVideoDataOutput._build(delegate: delegate, isAlwaysDiscardsLateVideoFrames: isAlwaysDiscardsLateVideoFrames, videoSettings: [:], queue: queue)
    |                           |- error: 'AVCaptureVideoDataOutput' is only available in tvOS 17.0 or newer
    |                           `- note: add 'if #available' version check
205 |             guard multiSession._canAddOutput(_output, isConnections: true) else { sessionOutput.error = Constant.MyError.notAddOutput; break }
206 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:208:27: warning: result of call to '_stabilizationMode(_:device:)' is unused [#NoUsage]
206 |
207 |             let _previewLayer = multiSession._previewLayer(with: input.frame, videoGravity: videoGravity, isConnections: false)
208 |             _previewLayer._stabilizationMode(stabilizationMode, device: device)
    |                           `- warning: result of call to '_stabilizationMode(_:device:)' is unused [#NoUsage]
209 |             guard let videoPort = _input._port(forType: .video) else { break }
210 |
/Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift:211:42: error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
156 |
157 | /// MARK: - 小工具
158 | private extension WWDualCamera {
    |         `- note: add '@available' attribute to enclosing extension
159 |
160 |     /// 多影像輸出設定
    :
187 |     ///   - stabilizationMode: AVCaptureVideoStabilizationMode
188 |     /// - Returns: CameraSessionOutput
189 |     func outputSetting(input: CameraSessionInput, delegate: AVCaptureVideoDataOutputSampleBufferDelegate?, videoGravity: AVLayerVideoGravity, isAlwaysDiscardsLateVideoFrames: Bool, stabilizationMode: AVCaptureVideoStabilizationMode) -> CameraSessionOutput {
    |          `- note: add '@available' attribute to enclosing instance method
190 |
191 |         let device = AVCaptureDevice._default(input.deviceType, for: .video, position: input.position)
    :
209 |             guard let videoPort = _input._port(forType: .video) else { break }
210 |
211 |             let previewLayerConnection = AVCaptureConnection(inputPort: videoPort, videoPreviewLayer: _previewLayer)
    |                                          |- error: 'AVCaptureConnection' is only available in tvOS 17.0 or newer
    |                                          `- note: add 'if #available' version check
212 |             guard multiSession._canAddConnection(previewLayerConnection) else { sessionOutput.error = Constant.MyError.notAddConnection; break }
213 |
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/WWDualCamera/WWDualCamera.swift (in target 'WWDualCamera' from project 'WWDualCamera')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile WWDualCamera.swift
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
2026-09-21 06:01:29.905 xcodebuild[745:4664] [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\ WWDualCamera (in target 'WWDualCamera' from project 'WWDualCamera')
	SwiftCompile normal arm64 (in target 'WWDualCamera' from project 'WWDualCamera')
	Building workspace WWDualCamera with scheme WWDualCamera
(3 failures)
BUILD FAILURE 6.4 tvOS