Build Information
Failed to build Prism, reference main (5483af), with Swift 6.4 for tvOS using Xcode 27.0 on 12 Oct 2026 18:37:40 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 Prism-Package -destination generic/platform=tvOSBuild Log
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraDevice.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraSession+Cinematic.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Controls.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraSession+Controls.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+DeviceObservers.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraSession+DeviceObservers.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraSession+Features.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Format.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraSession+Format.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Metadata.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraSession+Metadata.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+NightCapture.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraSession+NightCapture.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+State.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraSession+State.swift
tionEnabled = false
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+NightCapture.swift:189:35: error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
28 | }
29 |
30 | extension PRMCameraSession {
| `- note: add '@available' attribute to enclosing extension
31 | // MARK: - Planning
32 |
:
160 | /// stabilization and low-light noise reduction off the frames (both blend frames over
161 | /// time). Returns once a frame confirmed the exposure.
162 | func applyNightExposure(_ lease: PRMNightCaptureLease) async throws {
| `- note: add '@available' attribute to enclosing instance method
163 | let device = lease.device
164 | try device.prm_withConfigurationLock {
:
187 | if #available(iOS 27.0, *) {
188 | connection.automaticallyEnablesLowLightVideoNoiseReduction = false
189 | if connection.isLowLightVideoNoiseReductionEnabled {
| |- error: 'isLowLightVideoNoiseReductionEnabled' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
190 | connection.isLowLightVideoNoiseReductionEnabled = false
191 | }
SwiftCompile normal arm64 Compiling\ PRMPortraitBokehFilter.swift,\ PRMStylizeFilter.swift,\ PRMBasicFilterRenderer.swift,\ PRMBufferPoolAllocator.swift,\ PRMFilter.swift,\ PRMFilterChain.swift,\ PRMFilterPipeline.swift,\ PRMFilterRenderer.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMPortraitBokehFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMStylizeFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBasicFilterRenderer.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBufferPoolAllocator.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterChain.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterPipeline.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterRenderer.swift (in target 'PrismCore' from project 'Prism')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMPortraitBokehFilter.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMPortraitBokehFilter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMStylizeFilter.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMStylizeFilter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBasicFilterRenderer.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMBasicFilterRenderer.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBufferPoolAllocator.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMBufferPoolAllocator.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilter.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMFilter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterChain.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMFilterChain.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterPipeline.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMFilterPipeline.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterRenderer.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMFilterRenderer.swift
SwiftEmitModule normal arm64 Emitting\ module\ for\ PrismCore (in target 'PrismCore' from project 'Prism')
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:18:34: error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
15 |
16 | @available(iOS 26.0, *)
17 | extension PRMCinematicFocusMode {
| `- note: add '@available' attribute to enclosing extension
18 | init(_ mode: AVCaptureDevice.CinematicVideoFocusMode) {
| | `- error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing initializer
19 | switch mode {
20 | case .strong: self = .strong
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:26:33: error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
15 |
16 | @available(iOS 26.0, *)
17 | extension PRMCinematicFocusMode {
| `- note: add '@available' attribute to enclosing extension
18 | init(_ mode: AVCaptureDevice.CinematicVideoFocusMode) {
19 | switch mode {
:
24 | }
25 |
26 | var avMode: AVCaptureDevice.CinematicVideoFocusMode {
| | `- error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
27 | switch self {
28 | case .none: .none
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:59:20: error: 'AVCaptureSceneMonitoringStatus' is only available in tvOS 26.0 or newer
50 | /// A scene condition that keeps Cinematic Video from working well. Mirrors
51 | /// `AVCaptureSceneMonitoringStatus` (iOS 26). Surface it as a "scene too dark" hint.
52 | public enum PRMSceneMonitoringStatus: Sendable, Hashable {
| `- note: add '@available' attribute to enclosing enum
53 | /// The scene is too dark for Cinematic Video to work optimally.
54 | case notEnoughLight
:
57 |
58 | @available(iOS 26.0, *)
59 | init(_ status: AVCaptureSceneMonitoringStatus) {
| | `- error: 'AVCaptureSceneMonitoringStatus' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing initializer
60 | self = status == .notEnoughLight ? .notEnoughLight : .other(status.rawValue)
61 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:34:36: error: 'AspectRatio' is unavailable in tvOS
32 | @available(iOS 26.0, *)
33 | extension PRMAspectRatio {
34 | init?(_ ratio: AVCaptureDevice.AspectRatio) {
| `- error: 'AspectRatio' is unavailable in tvOS
35 | switch ratio {
36 | case .ratio1x1: self = .ratio1x1
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2838:19: note: 'AspectRatio' has been explicitly marked unavailable here
2836 |
2837 | /// String constants describing the different video aspect ratios you can configure for a particular device.
2838 | typedef NSString *AVCaptureAspectRatio NS_TYPED_ENUM NS_SWIFT_NAME(AVCaptureDevice.AspectRatio) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'AspectRatio' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:45:40: error: 'AspectRatio' is unavailable in tvOS
43 | }
44 |
45 | var avAspectRatio: AVCaptureDevice.AspectRatio {
| `- error: 'AspectRatio' is unavailable in tvOS
46 | switch self {
47 | case .ratio1x1: .ratio1x1
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2838:19: note: 'AspectRatio' has been explicitly marked unavailable here
2836 |
2837 | /// String constants describing the different video aspect ratios you can configure for a particular device.
2838 | typedef NSString *AVCaptureAspectRatio NS_TYPED_ENUM NS_SWIFT_NAME(AVCaptureDevice.AspectRatio) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'AspectRatio' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:70:22: error: 'AVCaptureFraming' is unavailable in tvOS
68 |
69 | @available(iOS 26.0, *)
70 | init?(_ framing: AVCaptureFraming) {
| `- error: 'AVCaptureFraming' is unavailable in tvOS
71 | guard let ratio = PRMAspectRatio(framing.aspectRatio) else { return nil }
72 | self.init(aspectRatio: ratio, zoomFactor: framing.zoomFactor)
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2940:12: note: 'AVCaptureFraming' has been explicitly marked unavailable here
2938 | /// An ``AVCaptureSmartFramingMonitor`` provides framing recommendations using this object.
2939 | API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos)
2940 | @interface AVCaptureFraming : NSObject
| `- note: 'AVCaptureFraming' has been explicitly marked unavailable here
2941 |
2942 | AV_INIT_UNAVAILABLE
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMRotationCoordinator.swift:82:60: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
80 | /// one orientation. External cameras return 0.
81 | @available(iOS 27.0, *)
82 | public func videoRotationAngle(relativeTo orientation: AVCaptureVideoOrientation) -> CGFloat {
| `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
83 | coordinator.videoRotationAngleRelative(toDeviceOrientation: orientation)
84 | }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:104:28: note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
102 |
103 | /// Constants indicating video orientation, for use with AVCaptureDeviceRotationCoordinator.
104 | typedef NS_ENUM(NSInteger, AVCaptureVideoOrientation) {
| `- note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
105 | /// Indicates that video should be oriented vertically, port on the bottom.
106 | AVCaptureVideoOrientationPortrait = 1,
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionHealth.swift:32:20: error: 'AVCaptureCameraLensSmudgeDetectionStatus' is only available in tvOS 26.0 or newer
19 |
20 | /// Result of iOS 26 camera-lens smudge detection.
21 | public enum PRMLensSmudgeStatus: Sendable, Equatable {
| `- note: add '@available' attribute to enclosing enum
22 | /// Detection is off, or unsupported on this device / format / OS.
23 | case disabled
:
30 |
31 | @available(iOS 26.0, *)
32 | init(_ status: AVCaptureCameraLensSmudgeDetectionStatus) {
| | `- error: 'AVCaptureCameraLensSmudgeDetectionStatus' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing initializer
33 | switch status {
34 | case .smudgeNotDetected: self = .clean
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift:44:66: error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
42 | public func photoOutput(
43 | _ output: AVCapturePhotoOutput,
44 | didFinishCapturingDeferredPhotoProxy deferredPhotoProxy: AVCaptureDeferredPhotoProxy?,
| `- error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
45 | error: (any Error)?
46 | ) {
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:2343:12: note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2341 | */
2342 | API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos)
2343 | @interface AVCaptureDeferredPhotoProxy : AVCapturePhoto
| `- note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2344 |
2345 | AV_INIT_UNAVAILABLE
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift:42:17: error: cannot override 'photoOutput' which has been marked unavailable
40 | /// proxy is a failure with no follow-up; the capture is identified (and failed) in
41 | /// `didFinishCaptureFor`, which carries the resolved settings this callback lacks.
42 | public func photoOutput(
| `- error: cannot override 'photoOutput' which has been marked unavailable
43 | _ output: AVCapturePhotoOutput,
44 | didFinishCapturingDeferredPhotoProxy deferredPhotoProxy: AVCaptureDeferredPhotoProxy?,
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:1071:1: note: 'photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)' has been explicitly marked unavailable here
1069 | Delegates are required to implement this method if they opt in for deferred photo processing, otherwise an NSInvalidArgumentException will be thrown from the -[AVCapturePhotoOutput capturePhotoWithSettings:delegate:] method.
1070 | */
1071 | - (void)captureOutput:(AVCapturePhotoOutput *)output didFinishCapturingDeferredPhotoProxy:(nullable AVCaptureDeferredPhotoProxy *)deferredPhotoProxy error:(nullable NSError *)error NS_SWIFT_NAME(photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)) API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)' has been explicitly marked unavailable here
1072 |
1073 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:101:21: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
| | `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
| `- note: add '@available' attribute to enclosing initializer
102 | switch signal {
103 | case .subjectMotion: self = .subjectMotion
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:112:19: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
102 | switch signal {
:
110 | }
111 |
112 | var avSignal: AVCaptureDeviceExposureSignal {
| | `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
| `- note: add '@available' attribute to enclosing property
113 | switch self {
114 | case .subjectMotion: .subjectMotion
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:122:39: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
102 | switch signal {
:
120 | }
121 |
122 | static func set(from signals: Set<AVCaptureDeviceExposureSignal>) -> Set<Self> {
| | `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
| `- note: add '@available' attribute to enclosing static method
123 | Set(signals.compactMap(Self.init))
124 | }
Failed frontend command:
/Applications/Xcode-27.0.0.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/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources/resource_bundle_accessor.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Framing.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+ManualControls.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Observers.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+SessionHealth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Tracking.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraActor.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraConfiguration.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraDevice.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Cinematic.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Controls.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+DeviceObservers.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Features.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Format.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+Metadata.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+NightCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession+State.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraState.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMMetadataRouter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMPermissions.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMRotationCoordinator.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionError.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionHealth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMVideoFrameRouter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightMerger.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightPlanner.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightRegistration.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightStacker.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTone.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTypes.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMDepthCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMLivePhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMNightModeCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMOutputResolver.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Encoding.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoSettings.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitPhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitReadiness.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMRecording.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMVideoRecorder.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureConnection+Stabilization.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+AspectRatio.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Configuration.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Depth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FrameRate.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+HDR.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+ISO.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Lens.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Modes.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+SmudgeDetection.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Torch.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCapturePhotoOutput+Readiness.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMLens.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMBlurFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMColorFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMDistortionFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMPortraitBokehFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMStylizeFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBasicFilterRenderer.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMBufferPoolAllocator.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterChain.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterPipeline.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMFilterRenderer.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMRenderContext.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMVideoFrame.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMBurstLog.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMImage.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog+Categories.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMStreamRegistry.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMTempFile.swift -target arm64-apple-tvos18.0 -module-can-import-version UIKit 9127.0.84.1 9127.0.84 -disable-cross-import-overlay-search -swift-module-cross-import Vision /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Vision.framework/Modules/Vision.swiftcrossimport/FoundationModels.swiftoverlay -swift-module-cross-import Vision /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/Vision.framework/Modules/Vision.swiftcrossimport/FoundationModels.swiftoverlay -load-resolved-plugin /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libPreviewsMacros.dylib\#/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#PreviewsMacros -load-resolved-plugin /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -load-resolved-plugin /Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftUIMacros.dylib\#/Applications/Xcode-27.0.0.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/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0.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.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.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0.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\=5 -profile-generate -profile-coverage-mapping -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_AVAILABLE -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-e829b21a6f8c9b70876ba0858053c044509235ffd515576fb835ffc8f67461e5.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/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name PrismCore -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore_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.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/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/Objects-normal/arm64/PrismCore.abi.json
SwiftCompile normal arm64 (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
SwiftCompile normal arm64 Compiling\ AVCaptureDevice+Exposure.swift,\ AVCaptureDevice+FocusTracking.swift,\ AVCaptureDevice+FrameRate.swift,\ AVCaptureDevice+HDR.swift,\ AVCaptureDevice+ISO.swift,\ AVCaptureDevice+Lens.swift,\ AVCaptureDevice+Modes.swift,\ AVCaptureDevice+SmudgeDetection.swift,\ AVCaptureDevice+Torch.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FrameRate.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+HDR.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+ISO.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Lens.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Modes.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+SmudgeDetection.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Torch.swift (in target 'PrismCore' from project 'Prism')
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:139:29: error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
2 | import CoreMedia
3 |
4 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
5 | // MARK: - Exposure Mode
6 |
:
134 | /// `NSInvalidArgumentException` on a manual bracket from a format that refuses custom
135 | /// exposure at the current values, so on iOS 27 the active format also has to accept it.
136 | var prm_supportsManualExposureCapture: Bool {
| `- note: add '@available' attribute to enclosing property
137 | guard isExposureModeSupported(.custom), !prm_isVirtualMultiCameraDevice else { return false }
138 | guard #available(iOS 27.0, *) else { return true }
139 | return activeFormat.supportsExposureModeCustom(
| |- error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
140 | lensAperture: Self.currentLensAperture,
141 | duration: Self.currentExposureDuration,
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:140:32: error: 'currentLensAperture' is only available in tvOS 27.0 or newer
2 | import CoreMedia
3 |
4 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
5 | // MARK: - Exposure Mode
6 |
:
134 | /// `NSInvalidArgumentException` on a manual bracket from a format that refuses custom
135 | /// exposure at the current values, so on iOS 27 the active format also has to accept it.
136 | var prm_supportsManualExposureCapture: Bool {
| `- note: add '@available' attribute to enclosing property
137 | guard isExposureModeSupported(.custom), !prm_isVirtualMultiCameraDevice else { return false }
138 | guard #available(iOS 27.0, *) else { return true }
139 | return activeFormat.supportsExposureModeCustom(
140 | lensAperture: Self.currentLensAperture,
| |- error: 'currentLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
141 | duration: Self.currentExposureDuration,
142 | iso: Self.currentISO
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:219:20: error: 'isFocusRectOfInterestSupported' is only available in tvOS 26.0 or newer
2 | import CoreMedia
3 |
4 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
5 | // MARK: - Exposure Mode
6 |
:
199 | /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 | /// focuses without touching exposure.
201 | func prm_setFocusAndExposure(
| `- note: add '@available' attribute to enclosing instance method
202 | focusMode: AVCaptureDevice.FocusMode,
203 | exposureMode: AVCaptureDevice.ExposureMode?,
:
217 | try prm_withConfigurationLock {
218 | if isFocusPointOfInterestSupported, isFocusModeSupported(focusMode) {
219 | if isFocusRectOfInterestSupported {
| |- error: 'isFocusRectOfInterestSupported' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
220 | focusRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minFocusRectOfInterestSize)
221 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:220:21: error: 'focusRectOfInterest' is only available in tvOS 26.0 or newer
2 | import CoreMedia
3 |
4 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
5 | // MARK: - Exposure Mode
6 |
:
199 | /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 | /// focuses without touching exposure.
201 | func prm_setFocusAndExposure(
| `- note: add '@available' attribute to enclosing instance method
202 | focusMode: AVCaptureDevice.FocusMode,
203 | exposureMode: AVCaptureDevice.ExposureMode?,
:
218 | if isFocusPointOfInterestSupported, isFocusModeSupported(focusMode) {
219 | if isFocusRectOfInterestSupported {
220 | focusRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minFocusRectOfInterestSize)
| |- error: 'focusRectOfInterest' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
221 | } else {
222 | focusPointOfInterest = center
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:220:93: error: 'minFocusRectOfInterestSize' is only available in tvOS 26.0 or newer
2 | import CoreMedia
3 |
4 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
5 | // MARK: - Exposure Mode
6 |
:
199 | /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 | /// focuses without touching exposure.
201 | func prm_setFocusAndExposure(
| `- note: add '@available' attribute to enclosing instance method
202 | focusMode: AVCaptureDevice.FocusMode,
203 | exposureMode: AVCaptureDevice.ExposureMode?,
:
218 | if isFocusPointOfInterestSupported, isFocusModeSupported(focusMode) {
219 | if isFocusRectOfInterestSupported {
220 | focusRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minFocusRectOfInterestSize)
| |- error: 'minFocusRectOfInterestSize' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
221 | } else {
222 | focusPointOfInterest = center
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:227:20: error: 'isExposureRectOfInterestSupported' is only available in tvOS 26.0 or newer
2 | import CoreMedia
3 |
4 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
5 | // MARK: - Exposure Mode
6 |
:
199 | /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 | /// focuses without touching exposure.
201 | func prm_setFocusAndExposure(
| `- note: add '@available' attribute to enclosing instance method
202 | focusMode: AVCaptureDevice.FocusMode,
203 | exposureMode: AVCaptureDevice.ExposureMode?,
:
225 | }
226 | if let exposureMode, isExposurePointOfInterestSupported, isExposureModeSupported(exposureMode) {
227 | if isExposureRectOfInterestSupported {
| |- error: 'isExposureRectOfInterestSupported' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
228 | exposureRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minExposureRectOfInterestSize)
229 | } else {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:228:21: error: 'exposureRectOfInterest' is only available in tvOS 26.0 or newer
2 | import CoreMedia
3 |
4 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
5 | // MARK: - Exposure Mode
6 |
:
199 | /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 | /// focuses without touching exposure.
201 | func prm_setFocusAndExposure(
| `- note: add '@available' attribute to enclosing instance method
202 | focusMode: AVCaptureDevice.FocusMode,
203 | exposureMode: AVCaptureDevice.ExposureMode?,
:
226 | if let exposureMode, isExposurePointOfInterestSupported, isExposureModeSupported(exposureMode) {
227 | if isExposureRectOfInterestSupported {
228 | exposureRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minExposureRectOfInterestSize)
| |- error: 'exposureRectOfInterest' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
229 | } else {
230 | exposurePointOfInterest = center
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:228:96: error: 'minExposureRectOfInterestSize' is only available in tvOS 26.0 or newer
2 | import CoreMedia
3 |
4 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
5 | // MARK: - Exposure Mode
6 |
:
199 | /// iOS 26 or the device doesn't support rects for that axis. A `nil` `exposureMode`
200 | /// focuses without touching exposure.
201 | func prm_setFocusAndExposure(
| `- note: add '@available' attribute to enclosing instance method
202 | focusMode: AVCaptureDevice.FocusMode,
203 | exposureMode: AVCaptureDevice.ExposureMode?,
:
226 | if let exposureMode, isExposurePointOfInterestSupported, isExposureModeSupported(exposureMode) {
227 | if isExposureRectOfInterestSupported {
228 | exposureRectOfInterest = Self.prm_clampedRectOfInterest(rect, minimumSize: minExposureRectOfInterestSize)
| |- error: 'minExposureRectOfInterestSize' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
229 | } else {
230 | exposurePointOfInterest = center
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:242:40: error: 'isFocusRectOfInterestSupported' is only available in tvOS 26.0 or newer
2 | import CoreMedia
3 |
4 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
5 | // MARK: - Exposure Mode
6 |
:
239 | /// device space. Use it to size a focus indicator to what the camera actually meters.
240 | /// `nil` before iOS 26 or when the device doesn't support focus rects.
241 | func prm_defaultFocusRect(for devicePoint: CGPoint) -> CGRect? {
| `- note: add '@available' attribute to enclosing instance method
242 | guard #available(iOS 26.0, *), isFocusRectOfInterestSupported else { return nil }
| |- error: 'isFocusRectOfInterestSupported' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
243 | let rect = defaultRectForFocusPoint(ofInterest: devicePoint)
244 | return rect.isNull ? nil : rect
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift:243:20: error: 'defaultRectForFocusPoint(ofInterest:)' is only available in tvOS 26.0 or newer
2 | import CoreMedia
3 |
4 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
5 | // MARK: - Exposure Mode
6 |
:
239 | /// device space. Use it to size a focus indicator to what the camera actually meters.
240 | /// `nil` before iOS 26 or when the device doesn't support focus rects.
241 | func prm_defaultFocusRect(for devicePoint: CGPoint) -> CGRect? {
| `- note: add '@available' attribute to enclosing instance method
242 | guard #available(iOS 26.0, *), isFocusRectOfInterestSupported else { return nil }
243 | let rect = defaultRectForFocusPoint(ofInterest: devicePoint)
| |- error: 'defaultRectForFocusPoint(ofInterest:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
244 | return rect.isNull ? nil : rect
245 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:13:29: error: 'isContinuousAutoFocusTrackingSupported' is only available in tvOS 27.0 or newer
7 | // manage the metadata output yourself.
8 |
9 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
10 | /// Whether the active format supports continuous autofocus tracking (iOS 27).
11 | var prm_isContinuousAutoFocusTrackingSupported: Bool {
| `- note: add '@available' attribute to enclosing property
12 | guard #available(iOS 27.0, *) else { return false }
13 | return activeFormat.isContinuousAutoFocusTrackingSupported
| |- error: 'isContinuousAutoFocusTrackingSupported' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
14 | }
15 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:19:16: error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
7 | // manage the metadata output yourself.
8 |
9 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
10 | /// Whether the active format supports continuous autofocus tracking (iOS 27).
11 | var prm_isContinuousAutoFocusTrackingSupported: Bool {
:
15 |
16 | /// Whether tracking is enabled (iOS 27). `false` before that.
17 | var prm_isContinuousAutoFocusTrackingEnabled: Bool {
| `- note: add '@available' attribute to enclosing property
18 | guard #available(iOS 27.0, *) else { return false }
19 | return isContinuousAutoFocusTrackingEnabled
| |- error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
20 | }
21 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:25:16: error: 'isContinuousAutoFocusTrackingSubjectAcquired' is only available in tvOS 27.0 or newer
7 | // manage the metadata output yourself.
8 |
9 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
10 | /// Whether the active format supports continuous autofocus tracking (iOS 27).
11 | var prm_isContinuousAutoFocusTrackingSupported: Bool {
:
21 |
22 | /// Whether a subject is being tracked right now (iOS 27). `false` before that.
23 | var prm_isContinuousAutoFocusTrackingSubjectAcquired: Bool {
| `- note: add '@available' attribute to enclosing property
24 | guard #available(iOS 27.0, *) else { return false }
25 | return isContinuousAutoFocusTrackingSubjectAcquired
| |- error: 'isContinuousAutoFocusTrackingSubjectAcquired' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
26 | }
27 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:31:16: error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
7 | // manage the metadata output yourself.
8 |
9 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
10 | /// Whether the active format supports continuous autofocus tracking (iOS 27).
11 | var prm_isContinuousAutoFocusTrackingSupported: Bool {
:
27 |
28 | /// Current tracking lens-position bias (iOS 27). `0` before that.
29 | var prm_continuousAutoFocusTrackingBias: Float {
| `- note: add '@available' attribute to enclosing property
30 | guard #available(iOS 27.0, *) else { return 0 }
31 | return continuousAutoFocusTrackingLensPositionBias
| |- error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
32 | }
33 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:51:35: error: 'isContinuousAutoFocusTrackingSupported' is only available in tvOS 27.0 or newer
7 | // manage the metadata output yourself.
8 |
9 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
10 | /// Whether the active format supports continuous autofocus tracking (iOS 27).
11 | var prm_isContinuousAutoFocusTrackingSupported: Bool {
:
45 | /// active format doesn't support tracking. AVFoundation also refuses while Cinematic
46 | /// Video is enabled; the session layer guards that.
47 | func prm_setContinuousAutoFocusTracking(_ enabled: Bool) throws {
| `- note: add '@available' attribute to enclosing instance method
48 | guard #available(iOS 27.0, *) else {
49 | throw PRMSessionError.unsupportedConfiguration("Continuous autofocus tracking requires iOS 27")
50 | }
51 | if enabled, !activeFormat.isContinuousAutoFocusTrackingSupported {
| |- error: 'isContinuousAutoFocusTrackingSupported' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
52 | throw PRMSessionError.unsupportedConfiguration("The active format doesn't support continuous autofocus tracking")
53 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:56:17: error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
7 | // manage the metadata output yourself.
8 |
9 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
10 | /// Whether the active format supports continuous autofocus tracking (iOS 27).
11 | var prm_isContinuousAutoFocusTrackingSupported: Bool {
:
45 | /// active format doesn't support tracking. AVFoundation also refuses while Cinematic
46 | /// Video is enabled; the session layer guards that.
47 | func prm_setContinuousAutoFocusTracking(_ enabled: Bool) throws {
| `- note: add '@available' attribute to enclosing instance method
48 | guard #available(iOS 27.0, *) else {
49 | throw PRMSessionError.unsupportedConfiguration("Continuous autofocus tracking requires iOS 27")
:
54 | try prm_withConfigurationLock {
55 | if enabled {
56 | isContinuousAutoFocusTrackingEnabled = true
| |- error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
57 | // Tracking would otherwise be retargeted to the frame center every time the
58 | // subject-area-change handler re-centers focus.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:61:23: error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
7 | // manage the metadata output yourself.
8 |
9 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
10 | /// Whether the active format supports continuous autofocus tracking (iOS 27).
11 | var prm_isContinuousAutoFocusTrackingSupported: Bool {
:
45 | /// active format doesn't support tracking. AVFoundation also refuses while Cinematic
46 | /// Video is enabled; the session layer guards that.
47 | func prm_setContinuousAutoFocusTracking(_ enabled: Bool) throws {
| `- note: add '@available' attribute to enclosing instance method
48 | guard #available(iOS 27.0, *) else {
49 | throw PRMSessionError.unsupportedConfiguration("Continuous autofocus tracking requires iOS 27")
:
59 | isSubjectAreaChangeMonitoringEnabled = false
60 | } else {
61 | guard isContinuousAutoFocusTrackingEnabled else { return }
| |- error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
62 | continuousAutoFocusTrackingLensPositionBias = 0
63 | isContinuousAutoFocusTrackingEnabled = false
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:62:17: error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
7 | // manage the metadata output yourself.
8 |
9 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
10 | /// Whether the active format supports continuous autofocus tracking (iOS 27).
11 | var prm_isContinuousAutoFocusTrackingSupported: Bool {
:
45 | /// active format doesn't support tracking. AVFoundation also refuses while Cinematic
46 | /// Video is enabled; the session layer guards that.
47 | func prm_setContinuousAutoFocusTracking(_ enabled: Bool) throws {
| `- note: add '@available' attribute to enclosing instance method
48 | guard #available(iOS 27.0, *) else {
49 | throw PRMSessionError.unsupportedConfiguration("Continuous autofocus tracking requires iOS 27")
:
60 | } else {
61 | guard isContinuousAutoFocusTrackingEnabled else { return }
62 | continuousAutoFocusTrackingLensPositionBias = 0
| |- error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
63 | isContinuousAutoFocusTrackingEnabled = false
64 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:63:17: error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
7 | // manage the metadata output yourself.
8 |
9 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
10 | /// Whether the active format supports continuous autofocus tracking (iOS 27).
11 | var prm_isContinuousAutoFocusTrackingSupported: Bool {
:
45 | /// active format doesn't support tracking. AVFoundation also refuses while Cinematic
46 | /// Video is enabled; the session layer guards that.
47 | func prm_setContinuousAutoFocusTracking(_ enabled: Bool) throws {
| `- note: add '@available' attribute to enclosing instance method
48 | guard #available(iOS 27.0, *) else {
49 | throw PRMSessionError.unsupportedConfiguration("Continuous autofocus tracking requires iOS 27")
:
61 | guard isContinuousAutoFocusTrackingEnabled else { return }
62 | continuousAutoFocusTrackingLensPositionBias = 0
63 | isContinuousAutoFocusTrackingEnabled = false
| |- error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
64 | }
65 | if focusMode == .continuousAutoFocus {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:81:40: error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
7 | // manage the metadata output yourself.
8 |
9 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
10 | /// Whether the active format supports continuous autofocus tracking (iOS 27).
11 | var prm_isContinuousAutoFocusTrackingSupported: Bool {
:
78 | ///
79 | /// - Throws: ``PRMSessionError/unsupportedConfiguration(_:)`` unless tracking is enabled.
80 | func prm_setContinuousAutoFocusTrackingBias(_ bias: Float, retargetingAt devicePoint: CGPoint? = nil) throws {
| `- note: add '@available' attribute to enclosing instance method
81 | guard #available(iOS 27.0, *), isContinuousAutoFocusTrackingEnabled else {
| |- error: 'isContinuousAutoFocusTrackingEnabled' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
82 | throw PRMSessionError.unsupportedConfiguration("Enable continuous autofocus tracking before setting its bias")
83 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift:85:13: error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
7 | // manage the metadata output yourself.
8 |
9 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
10 | /// Whether the active format supports continuous autofocus tracking (iOS 27).
11 | var prm_isContinuousAutoFocusTrackingSupported: Bool {
:
78 | ///
79 | /// - Throws: ``PRMSessionError/unsupportedConfiguration(_:)`` unless tracking is enabled.
80 | func prm_setContinuousAutoFocusTrackingBias(_ bias: Float, retargetingAt devicePoint: CGPoint? = nil) throws {
| `- note: add '@available' attribute to enclosing instance method
81 | guard #available(iOS 27.0, *), isContinuousAutoFocusTrackingEnabled else {
82 | throw PRMSessionError.unsupportedConfiguration("Enable continuous autofocus tracking before setting its bias")
83 | }
84 | try prm_withConfigurationLock {
85 | continuousAutoFocusTrackingLensPositionBias = Self.prm_clampedTrackingBias(bias)
| |- error: 'continuousAutoFocusTrackingLensPositionBias' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
86 | if let devicePoint, isFocusPointOfInterestSupported {
87 | focusPointOfInterest = Self.prm_clampedUnitPoint(devicePoint)
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Exposure.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+Exposure.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FocusTracking.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+FocusTracking.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+FrameRate.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+FrameRate.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+HDR.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+HDR.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+ISO.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+ISO.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Lens.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+Lens.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Modes.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+Modes.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+SmudgeDetection.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+SmudgeDetection.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Torch.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+Torch.swift
SwiftCompile normal arm64 Compiling\ PRMCameraSession.swift,\ PRMCameraState.swift,\ PRMCinematicVideo.swift,\ PRMDetectedObject.swift,\ PRMFraming.swift,\ PRMMetadataRouter.swift,\ PRMPermissions.swift,\ PRMRotationCoordinator.swift,\ PRMSessionError.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraState.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMMetadataRouter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMPermissions.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMRotationCoordinator.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionError.swift (in target 'PrismCore' from project 'Prism')
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:319:25: error: 'configuresApplicationAudioSessionForBluetoothHighQualityRecording' is unavailable in tvOS
317 | attachAudioDevice()
318 | if #available(iOS 26.0, *) {
319 | session.configuresApplicationAudioSessionForBluetoothHighQualityRecording =
| `- error: 'configuresApplicationAudioSessionForBluetoothHighQualityRecording' is unavailable in tvOS
320 | configuration.enableBluetoothHighQualityRecording
321 | }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureSession.h:569:27: note: 'configuresApplicationAudioSessionForBluetoothHighQualityRecording' has been explicitly marked unavailable here
567 | ///
568 | /// The value of this property is a `BOOL` indicating whether the receiver should configure the application's audio session for bluetooth high quality recording (AirPods as a high quality microphone). When this property is set to `true`, the ``AVCaptureSession`` will opt in for high quality bluetooth recording, allowing users of your app to select AirPods as the active mic source for capture. This property has no effect when ``usesApplicationAudioSession`` is set to `false`. The default value is `false`.
569 | @property(nonatomic) BOOL configuresApplicationAudioSessionForBluetoothHighQualityRecording API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos);
| `- note: 'configuresApplicationAudioSessionForBluetoothHighQualityRecording' has been explicitly marked unavailable here
570 | /*!
571 | @property automaticallyConfiguresCaptureDeviceForWideColor
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:379:93: error: 'lowLatency' is unavailable in tvOS
377 | var supportsLowLatency = false
378 | if #available(iOS 26.0, *), let device = videoDevice {
379 | supportsLowLatency = device.activeFormat.isVideoStabilizationModeSupported(.lowLatency)
| `- error: 'lowLatency' is unavailable in tvOS
380 | }
381 | connection.prm_setStabilization(Self.previewStabilizationMode(
AVFoundation.AVCaptureVideoStabilizationMode.lowLatency:3:8: note: 'lowLatency' has been explicitly marked unavailable here
1 | enum AVCaptureVideoStabilizationMode {
2 | @available(tvOS, unavailable)
3 | case lowLatency}
| `- note: 'lowLatency' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:402:21: error: 'lowLatency' is unavailable in tvOS
400 | guard requested != .off, hasMovieOutput, supportsLowLatency else { return .off }
401 | if #available(iOS 26.0, *) {
402 | return .lowLatency
| `- error: 'lowLatency' is unavailable in tvOS
403 | }
404 | return .off
AVFoundation.AVCaptureVideoStabilizationMode.lowLatency:3:8: note: 'lowLatency' has been explicitly marked unavailable here
1 | enum AVCaptureVideoStabilizationMode {
2 | @available(tvOS, unavailable)
3 | case lowLatency}
| `- note: 'lowLatency' has been explicitly marked unavailable here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:1082:48: error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
16 | /// on the actor.
17 | @PRMCameraActor
18 | public final class PRMCameraSession {
| `- note: add '@available' attribute to enclosing class
19 | // MARK: - Properties
20 |
:
1076 | /// Cinematic Video runs on when it's enabled at configure and the usual camera has no
1077 | /// Cinematic Video format (the Triple camera on Pro iPhones).
1078 | nonisolated static func videoDeviceTypes(for configuration: PRMCameraConfiguration) -> [AVCaptureDevice.DeviceType] {
| `- note: add '@available' attribute to enclosing static method
1079 | guard #available(iOS 26.0, *), configuration.enableCinematicVideo,
1080 | let cinematic = PRMCameraDevice.cinematicVideoDeviceType(at: configuration.cameraPosition),
1081 | let usual = bestVideoDevice(position: configuration.cameraPosition, types: configuration.deviceTypes),
1082 | !usual.formats.contains(where: \.isCinematicVideoCaptureSupported)
| |- error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
1083 | else { return configuration.deviceTypes }
1084 | return [cinematic] + configuration.deviceTypes.filter { $0 != cinematic }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:1180:19: error: 'isCameraSensorOrientationCompensationSupported' is unavailable in tvOS
1178 | applyDeferredStart(to: output, isPreview: false)
1179 | if #available(iOS 26.0, *), let compensation = configuration.enableCameraSensorOrientationCompensation,
1180 | output.isCameraSensorOrientationCompensationSupported {
| `- error: 'isCameraSensorOrientationCompensationSupported' is unavailable in tvOS
1181 | output.isCameraSensorOrientationCompensationEnabled = compensation
1182 | }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:804:92: note: 'isCameraSensorOrientationCompensationSupported' has been explicitly marked unavailable here
802 | Value is YES for camera configurations which support compensation for the sensor orientation, which is applied to HEIC, JPEG, and uncompressed processed photos only; compensation is never applied to Bayer RAW or Apple ProRaw captures.
803 | */
804 | @property(nonatomic, readonly, getter=isCameraSensorOrientationCompensationSupported) BOOL cameraSensorOrientationCompensationSupported API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'isCameraSensorOrientationCompensationSupported' has been explicitly marked unavailable here
805 |
806 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:1181:20: error: 'isCameraSensorOrientationCompensationEnabled' is unavailable in tvOS
1179 | if #available(iOS 26.0, *), let compensation = configuration.enableCameraSensorOrientationCompensation,
1180 | output.isCameraSensorOrientationCompensationSupported {
1181 | output.isCameraSensorOrientationCompensationEnabled = compensation
| `- error: 'isCameraSensorOrientationCompensationEnabled' is unavailable in tvOS
1182 | }
1183 |
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:813:80: note: 'isCameraSensorOrientationCompensationEnabled' has been explicitly marked unavailable here
811 | Default is YES when cameraSensorOrientationCompensationSupported is YES. Set to NO if your app does not require sensor orientation compensation.
812 | */
813 | @property(nonatomic, getter=isCameraSensorOrientationCompensationEnabled) BOOL cameraSensorOrientationCompensationEnabled API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'isCameraSensorOrientationCompensationEnabled' has been explicitly marked unavailable here
814 |
815 | @end
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:1213:35: error: 'isAutoDeferredPhotoDeliverySupported' is unavailable in tvOS
1211 | "Auto-deferred photo delivery",
1212 | requested: configuration.enableAutoDeferredPhotoDelivery,
1213 | supported: output.isAutoDeferredPhotoDeliverySupported
| `- error: 'isAutoDeferredPhotoDeliverySupported' is unavailable in tvOS
1214 | ) { output.isAutoDeferredPhotoDeliveryEnabled = true }
1215 | applyPhotoOutputFeature(
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:382:82: note: 'isAutoDeferredPhotoDeliverySupported' has been explicitly marked unavailable here
380 | Automatic deferred photo delivery can produce a lightweight photo representation, called a "proxy", at the time of capture that can later be processed to completion while improving camera responsiveness. When it's appropriate for the receiver to deliver a photo proxy for deferred processing, the delegate callback -captureOutput:didFinishCapturingDeferredPhotoProxy:error: will be invoked instead of -captureOutput:didFinishProcessingPhoto:error:. See the documentation for AVCaptureDeferredPhotoProxy for more details.
381 | */
382 | @property(nonatomic, readonly, getter=isAutoDeferredPhotoDeliverySupported) BOOL autoDeferredPhotoDeliverySupported API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'isAutoDeferredPhotoDeliverySupported' has been explicitly marked unavailable here
383 |
384 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift:1214:24: error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
1212 | requested: configuration.enableAutoDeferredPhotoDelivery,
1213 | supported: output.isAutoDeferredPhotoDeliverySupported
1214 | ) { output.isAutoDeferredPhotoDeliveryEnabled = true }
| `- error: 'isAutoDeferredPhotoDeliveryEnabled' is unavailable in tvOS
1215 | applyPhotoOutputFeature(
1216 | "Zero shutter lag",
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:392:70: note: 'isAutoDeferredPhotoDeliveryEnabled' has been explicitly marked unavailable here
390 | Setting this value to either YES or NO requires a lengthy reconfiguration of the capture pipeline, so you should set this property before calling -[AVCaptureSession startRunning]. Setting this property to YES throws an NSInvalidArgumentException if autoDeferredPhotoDeliverySupported is NO.
391 | */
392 | @property(nonatomic, getter=isAutoDeferredPhotoDeliveryEnabled) BOOL autoDeferredPhotoDeliveryEnabled API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'isAutoDeferredPhotoDeliveryEnabled' has been explicitly marked unavailable here
393 |
394 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:18:34: error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
15 |
16 | @available(iOS 26.0, *)
17 | extension PRMCinematicFocusMode {
| `- note: add '@available' attribute to enclosing extension
18 | init(_ mode: AVCaptureDevice.CinematicVideoFocusMode) {
| | `- error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing initializer
19 | switch mode {
20 | case .strong: self = .strong
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:26:33: error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
15 |
16 | @available(iOS 26.0, *)
17 | extension PRMCinematicFocusMode {
| `- note: add '@available' attribute to enclosing extension
18 | init(_ mode: AVCaptureDevice.CinematicVideoFocusMode) {
19 | switch mode {
:
24 | }
25 |
26 | var avMode: AVCaptureDevice.CinematicVideoFocusMode {
| | `- error: 'CinematicVideoFocusMode' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing property
27 | switch self {
28 | case .none: .none
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:59:20: error: 'AVCaptureSceneMonitoringStatus' is only available in tvOS 26.0 or newer
50 | /// A scene condition that keeps Cinematic Video from working well. Mirrors
51 | /// `AVCaptureSceneMonitoringStatus` (iOS 26). Surface it as a "scene too dark" hint.
52 | public enum PRMSceneMonitoringStatus: Sendable, Hashable {
| `- note: add '@available' attribute to enclosing enum
53 | /// The scene is too dark for Cinematic Video to work optimally.
54 | case notEnoughLight
:
57 |
58 | @available(iOS 26.0, *)
59 | init(_ status: AVCaptureSceneMonitoringStatus) {
| | `- error: 'AVCaptureSceneMonitoringStatus' is only available in tvOS 26.0 or newer
| `- note: add '@available' attribute to enclosing initializer
60 | self = status == .notEnoughLight ? .notEnoughLight : .other(status.rawValue)
61 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift:60:27: error: 'notEnoughLight' is only available in tvOS 26.0 or newer
50 | /// A scene condition that keeps Cinematic Video from working well. Mirrors
51 | /// `AVCaptureSceneMonitoringStatus` (iOS 26). Surface it as a "scene too dark" hint.
52 | public enum PRMSceneMonitoringStatus: Sendable, Hashable {
| `- note: add '@available' attribute to enclosing enum
53 | /// The scene is too dark for Cinematic Video to work optimally.
54 | case notEnoughLight
:
57 |
58 | @available(iOS 26.0, *)
59 | init(_ status: AVCaptureSceneMonitoringStatus) {
| `- note: add '@available' attribute to enclosing initializer
60 | self = status == .notEnoughLight ? .notEnoughLight : .other(status.rawValue)
| |- error: 'notEnoughLight' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
61 | }
62 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:81:47: error: 'objectID' is only available in tvOS 26.0 or newer
4 | /// the iOS 27 focus-tracked subject, or the faces / bodies / pets that Cinematic Video
5 | /// detects. Delivered on ``PRMCamera/detectedObjectsStream()``.
6 | public struct PRMDetectedObject: Sendable, Equatable {
| `- note: add '@available' attribute to enclosing struct
7 | /// What the metadata output detected.
8 | public enum Kind: Sendable, Hashable {
:
73 | }
74 |
75 | init(_ object: AVMetadataObject) {
| `- note: add '@available' attribute to enclosing initializer
76 | var objectID: Int?
77 | var groupID: Int?
:
79 | var isFixedFocus = false
80 | if #available(iOS 26.0, *) {
81 | objectID = Self.identifier(object.objectID)
| |- error: 'objectID' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
82 | groupID = Self.identifier(object.groupID)
83 | let mode = PRMCinematicFocusMode(object.cinematicVideoFocusMode)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:82:46: error: 'groupID' is only available in tvOS 26.0 or newer
4 | /// the iOS 27 focus-tracked subject, or the faces / bodies / pets that Cinematic Video
5 | /// detects. Delivered on ``PRMCamera/detectedObjectsStream()``.
6 | public struct PRMDetectedObject: Sendable, Equatable {
| `- note: add '@available' attribute to enclosing struct
7 | /// What the metadata output detected.
8 | public enum Kind: Sendable, Hashable {
:
73 | }
74 |
75 | init(_ object: AVMetadataObject) {
| `- note: add '@available' attribute to enclosing initializer
76 | var objectID: Int?
77 | var groupID: Int?
:
80 | if #available(iOS 26.0, *) {
81 | objectID = Self.identifier(object.objectID)
82 | groupID = Self.identifier(object.groupID)
| |- error: 'groupID' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
83 | let mode = PRMCinematicFocusMode(object.cinematicVideoFocusMode)
84 | focusMode = mode == .none ? nil : mode
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:83:53: error: 'cinematicVideoFocusMode' is only available in tvOS 26.0 or newer
4 | /// the iOS 27 focus-tracked subject, or the faces / bodies / pets that Cinematic Video
5 | /// detects. Delivered on ``PRMCamera/detectedObjectsStream()``.
6 | public struct PRMDetectedObject: Sendable, Equatable {
| `- note: add '@available' attribute to enclosing struct
7 | /// What the metadata output detected.
8 | public enum Kind: Sendable, Hashable {
:
73 | }
74 |
75 | init(_ object: AVMetadataObject) {
| `- note: add '@available' attribute to enclosing initializer
76 | var objectID: Int?
77 | var groupID: Int?
:
81 | objectID = Self.identifier(object.objectID)
82 | groupID = Self.identifier(object.groupID)
83 | let mode = PRMCinematicFocusMode(object.cinematicVideoFocusMode)
| |- error: 'cinematicVideoFocusMode' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
84 | focusMode = mode == .none ? nil : mode
85 | isFixedFocus = object.isFixedFocus
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:85:35: error: 'isFixedFocus' is only available in tvOS 26.0 or newer
4 | /// the iOS 27 focus-tracked subject, or the faces / bodies / pets that Cinematic Video
5 | /// detects. Delivered on ``PRMCamera/detectedObjectsStream()``.
6 | public struct PRMDetectedObject: Sendable, Equatable {
| `- note: add '@available' attribute to enclosing struct
7 | /// What the metadata output detected.
8 | public enum Kind: Sendable, Hashable {
:
73 | }
74 |
75 | init(_ object: AVMetadataObject) {
| `- note: add '@available' attribute to enclosing initializer
76 | var objectID: Int?
77 | var groupID: Int?
:
83 | let mode = PRMCinematicFocusMode(object.cinematicVideoFocusMode)
84 | focusMode = mode == .none ? nil : mode
85 | isFixedFocus = object.isFixedFocus
| |- error: 'isFixedFocus' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
86 | }
87 | self.init(
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:101:46: error: 'focusTrackedObject' is only available in tvOS 27.0 or newer
97 | }
98 |
99 | extension PRMDetectedObject.Kind {
| `- note: add '@available' attribute to enclosing extension
100 | init(_ type: AVMetadataObject.ObjectType) {
| `- note: add '@available' attribute to enclosing initializer
101 | if #available(iOS 27.0, *), type == .focusTrackedObject {
| |- error: 'focusTrackedObject' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
102 | self = .focusTracked
103 | return
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:106:25: error: 'catHead' is only available in tvOS 26.0 or newer
97 | }
98 |
99 | extension PRMDetectedObject.Kind {
| `- note: add '@available' attribute to enclosing extension
100 | init(_ type: AVMetadataObject.ObjectType) {
| `- note: add '@available' attribute to enclosing initializer
101 | if #available(iOS 27.0, *), type == .focusTrackedObject {
102 | self = .focusTracked
:
104 | }
105 | if #available(iOS 26.0, *) {
106 | if type == .catHead {
| |- error: 'catHead' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
107 | self = .catHead
108 | return
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift:110:25: error: 'dogHead' is only available in tvOS 26.0 or newer
97 | }
98 |
99 | extension PRMDetectedObject.Kind {
| `- note: add '@available' attribute to enclosing extension
100 | init(_ type: AVMetadataObject.ObjectType) {
| `- note: add '@available' attribute to enclosing initializer
101 | if #available(iOS 27.0, *), type == .focusTrackedObject {
102 | self = .focusTracked
:
108 | return
109 | }
110 | if type == .dogHead {
| |- error: 'dogHead' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
111 | self = .dogHead
112 | return
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:34:36: error: 'AspectRatio' is unavailable in tvOS
32 | @available(iOS 26.0, *)
33 | extension PRMAspectRatio {
34 | init?(_ ratio: AVCaptureDevice.AspectRatio) {
| `- error: 'AspectRatio' is unavailable in tvOS
35 | switch ratio {
36 | case .ratio1x1: self = .ratio1x1
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2838:19: note: 'AspectRatio' has been explicitly marked unavailable here
2836 |
2837 | /// String constants describing the different video aspect ratios you can configure for a particular device.
2838 | typedef NSString *AVCaptureAspectRatio NS_TYPED_ENUM NS_SWIFT_NAME(AVCaptureDevice.AspectRatio) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'AspectRatio' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:45:40: error: 'AspectRatio' is unavailable in tvOS
43 | }
44 |
45 | var avAspectRatio: AVCaptureDevice.AspectRatio {
| `- error: 'AspectRatio' is unavailable in tvOS
46 | switch self {
47 | case .ratio1x1: .ratio1x1
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2838:19: note: 'AspectRatio' has been explicitly marked unavailable here
2836 |
2837 | /// String constants describing the different video aspect ratios you can configure for a particular device.
2838 | typedef NSString *AVCaptureAspectRatio NS_TYPED_ENUM NS_SWIFT_NAME(AVCaptureDevice.AspectRatio) API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'AspectRatio' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:70:22: error: 'AVCaptureFraming' is unavailable in tvOS
68 |
69 | @available(iOS 26.0, *)
70 | init?(_ framing: AVCaptureFraming) {
| `- error: 'AVCaptureFraming' is unavailable in tvOS
71 | guard let ratio = PRMAspectRatio(framing.aspectRatio) else { return nil }
72 | self.init(aspectRatio: ratio, zoomFactor: framing.zoomFactor)
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2940:12: note: 'AVCaptureFraming' has been explicitly marked unavailable here
2938 | /// An ``AVCaptureSmartFramingMonitor`` provides framing recommendations using this object.
2939 | API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos)
2940 | @interface AVCaptureFraming : NSObject
| `- note: 'AVCaptureFraming' has been explicitly marked unavailable here
2941 |
2942 | AV_INIT_UNAVAILABLE
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:36:15: error: 'ratio1x1' is unavailable in tvOS
34 | init?(_ ratio: AVCaptureDevice.AspectRatio) {
35 | switch ratio {
36 | case .ratio1x1: self = .ratio1x1
| `- error: 'ratio1x1' is unavailable in tvOS
37 | case .ratio16x9: self = .ratio16x9
38 | case .ratio9x16: self = .ratio9x16
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2841:39: note: 'ratio1x1' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
2841 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio1x1 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'ratio1x1' has been explicitly marked unavailable here
2842 |
2843 | /// An aspect ratio of 16x9.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:37:15: error: 'ratio16x9' is unavailable in tvOS
35 | switch ratio {
36 | case .ratio1x1: self = .ratio1x1
37 | case .ratio16x9: self = .ratio16x9
| `- error: 'ratio16x9' is unavailable in tvOS
38 | case .ratio9x16: self = .ratio9x16
39 | case .ratio4x3: self = .ratio4x3
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2844:39: note: 'ratio16x9' has been explicitly marked unavailable here
2842 |
2843 | /// An aspect ratio of 16x9.
2844 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio16x9 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'ratio16x9' has been explicitly marked unavailable here
2845 |
2846 | /// An aspect ratio of 9x16.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:38:15: error: 'ratio9x16' is unavailable in tvOS
36 | case .ratio1x1: self = .ratio1x1
37 | case .ratio16x9: self = .ratio16x9
38 | case .ratio9x16: self = .ratio9x16
| `- error: 'ratio9x16' is unavailable in tvOS
39 | case .ratio4x3: self = .ratio4x3
40 | case .ratio3x4: self = .ratio3x4
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2847:39: note: 'ratio9x16' has been explicitly marked unavailable here
2845 |
2846 | /// An aspect ratio of 9x16.
2847 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio9x16 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'ratio9x16' has been explicitly marked unavailable here
2848 |
2849 | /// An aspect ratio of 4x3.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:39:15: error: 'ratio4x3' is unavailable in tvOS
37 | case .ratio16x9: self = .ratio16x9
38 | case .ratio9x16: self = .ratio9x16
39 | case .ratio4x3: self = .ratio4x3
| `- error: 'ratio4x3' is unavailable in tvOS
40 | case .ratio3x4: self = .ratio3x4
41 | default: return nil
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2850:39: note: 'ratio4x3' has been explicitly marked unavailable here
2848 |
2849 | /// An aspect ratio of 4x3.
2850 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio4x3 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'ratio4x3' has been explicitly marked unavailable here
2851 |
2852 | /// An aspect ratio of 3x4.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:40:15: error: 'ratio3x4' is unavailable in tvOS
38 | case .ratio9x16: self = .ratio9x16
39 | case .ratio4x3: self = .ratio4x3
40 | case .ratio3x4: self = .ratio3x4
| `- error: 'ratio3x4' is unavailable in tvOS
41 | default: return nil
42 | }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2853:39: note: 'ratio3x4' has been explicitly marked unavailable here
2851 |
2852 | /// An aspect ratio of 3x4.
2853 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio3x4 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'ratio3x4' has been explicitly marked unavailable here
2854 |
2855 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:47:26: error: 'ratio1x1' is unavailable in tvOS
45 | var avAspectRatio: AVCaptureDevice.AspectRatio {
46 | switch self {
47 | case .ratio1x1: .ratio1x1
| `- error: 'ratio1x1' is unavailable in tvOS
48 | case .ratio16x9: .ratio16x9
49 | case .ratio9x16: .ratio9x16
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2841:39: note: 'ratio1x1' has been explicitly marked unavailable here
2839 |
2840 | /// An aspect ratio of 1x1.
2841 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio1x1 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'ratio1x1' has been explicitly marked unavailable here
2842 |
2843 | /// An aspect ratio of 16x9.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:48:27: error: 'ratio16x9' is unavailable in tvOS
46 | switch self {
47 | case .ratio1x1: .ratio1x1
48 | case .ratio16x9: .ratio16x9
| `- error: 'ratio16x9' is unavailable in tvOS
49 | case .ratio9x16: .ratio9x16
50 | case .ratio4x3: .ratio4x3
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2844:39: note: 'ratio16x9' has been explicitly marked unavailable here
2842 |
2843 | /// An aspect ratio of 16x9.
2844 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio16x9 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'ratio16x9' has been explicitly marked unavailable here
2845 |
2846 | /// An aspect ratio of 9x16.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:49:27: error: 'ratio9x16' is unavailable in tvOS
47 | case .ratio1x1: .ratio1x1
48 | case .ratio16x9: .ratio16x9
49 | case .ratio9x16: .ratio9x16
| `- error: 'ratio9x16' is unavailable in tvOS
50 | case .ratio4x3: .ratio4x3
51 | case .ratio3x4: .ratio3x4
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2847:39: note: 'ratio9x16' has been explicitly marked unavailable here
2845 |
2846 | /// An aspect ratio of 9x16.
2847 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio9x16 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'ratio9x16' has been explicitly marked unavailable here
2848 |
2849 | /// An aspect ratio of 4x3.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:50:26: error: 'ratio4x3' is unavailable in tvOS
48 | case .ratio16x9: .ratio16x9
49 | case .ratio9x16: .ratio9x16
50 | case .ratio4x3: .ratio4x3
| `- error: 'ratio4x3' is unavailable in tvOS
51 | case .ratio3x4: .ratio3x4
52 | }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2850:39: note: 'ratio4x3' has been explicitly marked unavailable here
2848 |
2849 | /// An aspect ratio of 4x3.
2850 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio4x3 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'ratio4x3' has been explicitly marked unavailable here
2851 |
2852 | /// An aspect ratio of 3x4.
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift:51:26: error: 'ratio3x4' is unavailable in tvOS
49 | case .ratio9x16: .ratio9x16
50 | case .ratio4x3: .ratio4x3
51 | case .ratio3x4: .ratio3x4
| `- error: 'ratio3x4' is unavailable in tvOS
52 | }
53 | }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2853:39: note: 'ratio3x4' has been explicitly marked unavailable here
2851 |
2852 | /// An aspect ratio of 3x4.
2853 | AVF_EXPORT AVCaptureAspectRatio const AVCaptureAspectRatio3x4 API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'ratio3x4' has been explicitly marked unavailable here
2854 |
2855 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMRotationCoordinator.swift:82:60: error: 'AVCaptureVideoOrientation' is unavailable in tvOS
80 | /// one orientation. External cameras return 0.
81 | @available(iOS 27.0, *)
82 | public func videoRotationAngle(relativeTo orientation: AVCaptureVideoOrientation) -> CGFloat {
| `- error: 'AVCaptureVideoOrientation' is unavailable in tvOS
83 | coordinator.videoRotationAngleRelative(toDeviceOrientation: orientation)
84 | }
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:104:28: note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
102 |
103 | /// Constants indicating video orientation, for use with AVCaptureDeviceRotationCoordinator.
104 | typedef NS_ENUM(NSInteger, AVCaptureVideoOrientation) {
| `- note: 'AVCaptureVideoOrientation' has been explicitly marked unavailable here
105 | /// Indicates that video should be oriented vertically, port on the bottom.
106 | AVCaptureVideoOrientationPortrait = 1,
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraSession.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraSession.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraState.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraState.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCinematicVideo.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCinematicVideo.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMDetectedObject.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMDetectedObject.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMFraming.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMFraming.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMMetadataRouter.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMMetadataRouter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMPermissions.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMPermissions.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMRotationCoordinator.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMRotationCoordinator.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionError.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMSessionError.swift
SwiftCompile normal arm64 Compiling\ PRMRenderContext.swift,\ PRMVideoFrame.swift,\ PRMBurstLog.swift,\ PRMImage.swift,\ PRMLog+Categories.swift,\ PRMLog.swift,\ PRMStreamRegistry.swift,\ PRMTempFile.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMRenderContext.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMVideoFrame.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMBurstLog.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMImage.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog+Categories.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMStreamRegistry.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMTempFile.swift (in target 'PrismCore' from project 'Prism')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMRenderContext.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMRenderContext.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/PRMVideoFrame.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMVideoFrame.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMBurstLog.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMBurstLog.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMImage.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMImage.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog+Categories.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMLog+Categories.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMLog.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMLog.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMStreamRegistry.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMStreamRegistry.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Utilities/PRMTempFile.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMTempFile.swift
SwiftCompile normal arm64 Compiling\ AVCaptureDevice+WhiteBalance.swift,\ AVCaptureDevice+Zoom.swift,\ AVCapturePhotoOutput+Readiness.swift,\ PRMExposureValue.swift,\ PRMLens.swift,\ PRMBlurFilter.swift,\ PRMColorFilter.swift,\ PRMDistortionFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCapturePhotoOutput+Readiness.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMLens.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMBlurFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMColorFilter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMDistortionFilter.swift (in target 'PrismCore' from project 'Prism')
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift:48:30: error: 'tungsten' is only available in tvOS 26.0 or newer
25 | /// non-zero tint. ``temperatureAndTint`` returns those values; ``temperature`` stays the
26 | /// nominal Kelvin used on earlier systems.
27 | enum PRMWhiteBalancePreset: Sendable, CaseIterable {
| `- note: add '@available' attribute to enclosing enum
28 | case tungsten // ~3200K
29 | case fluorescent // ~4000K
:
44 |
45 | @available(iOS 26.0, *)
46 | private var systemValues: AVCaptureDevice.WhiteBalanceTemperatureAndTintValues? {
| `- note: add '@available' attribute to enclosing property
47 | switch self {
48 | case .tungsten: .tungsten
| |- error: 'tungsten' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
49 | case .fluorescent: .fluorescent
50 | case .daylight: .daylight
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift:49:33: error: 'fluorescent' is only available in tvOS 26.0 or newer
25 | /// non-zero tint. ``temperatureAndTint`` returns those values; ``temperature`` stays the
26 | /// nominal Kelvin used on earlier systems.
27 | enum PRMWhiteBalancePreset: Sendable, CaseIterable {
| `- note: add '@available' attribute to enclosing enum
28 | case tungsten // ~3200K
29 | case fluorescent // ~4000K
:
44 |
45 | @available(iOS 26.0, *)
46 | private var systemValues: AVCaptureDevice.WhiteBalanceTemperatureAndTintValues? {
| `- note: add '@available' attribute to enclosing property
47 | switch self {
48 | case .tungsten: .tungsten
49 | case .fluorescent: .fluorescent
| |- error: 'fluorescent' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
50 | case .daylight: .daylight
51 | case .cloudy: .cloudy
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift:50:30: error: 'daylight' is only available in tvOS 26.0 or newer
25 | /// non-zero tint. ``temperatureAndTint`` returns those values; ``temperature`` stays the
26 | /// nominal Kelvin used on earlier systems.
27 | enum PRMWhiteBalancePreset: Sendable, CaseIterable {
| `- note: add '@available' attribute to enclosing enum
28 | case tungsten // ~3200K
29 | case fluorescent // ~4000K
:
44 |
45 | @available(iOS 26.0, *)
46 | private var systemValues: AVCaptureDevice.WhiteBalanceTemperatureAndTintValues? {
| `- note: add '@available' attribute to enclosing property
47 | switch self {
48 | case .tungsten: .tungsten
49 | case .fluorescent: .fluorescent
50 | case .daylight: .daylight
| |- error: 'daylight' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
51 | case .cloudy: .cloudy
52 | case .shade: .shadow
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift:51:28: error: 'cloudy' is only available in tvOS 26.0 or newer
25 | /// non-zero tint. ``temperatureAndTint`` returns those values; ``temperature`` stays the
26 | /// nominal Kelvin used on earlier systems.
27 | enum PRMWhiteBalancePreset: Sendable, CaseIterable {
| `- note: add '@available' attribute to enclosing enum
28 | case tungsten // ~3200K
29 | case fluorescent // ~4000K
:
44 |
45 | @available(iOS 26.0, *)
46 | private var systemValues: AVCaptureDevice.WhiteBalanceTemperatureAndTintValues? {
| `- note: add '@available' attribute to enclosing property
47 | switch self {
48 | case .tungsten: .tungsten
49 | case .fluorescent: .fluorescent
50 | case .daylight: .daylight
51 | case .cloudy: .cloudy
| |- error: 'cloudy' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
52 | case .shade: .shadow
53 | case .flash: nil
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift:52:27: error: 'shadow' is only available in tvOS 26.0 or newer
25 | /// non-zero tint. ``temperatureAndTint`` returns those values; ``temperature`` stays the
26 | /// nominal Kelvin used on earlier systems.
27 | enum PRMWhiteBalancePreset: Sendable, CaseIterable {
| `- note: add '@available' attribute to enclosing enum
28 | case tungsten // ~3200K
29 | case fluorescent // ~4000K
:
44 |
45 | @available(iOS 26.0, *)
46 | private var systemValues: AVCaptureDevice.WhiteBalanceTemperatureAndTintValues? {
| `- note: add '@available' attribute to enclosing property
47 | switch self {
48 | case .tungsten: .tungsten
:
50 | case .daylight: .daylight
51 | case .cloudy: .cloudy
52 | case .shade: .shadow
| |- error: 'shadow' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
53 | case .flash: nil
54 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift:140:23: error: 'nominalFocalLengthIn35mmFilm' is unavailable in tvOS
138 | var prm_nominalFocalLength35mm: Double {
139 | guard #available(iOS 26.0, *) else { return 0 }
140 | return Double(nominalFocalLengthIn35mmFilm)
| `- error: 'nominalFocalLengthIn35mmFilm' is unavailable in tvOS
141 | }
142 |
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCaptureDevice.h:2963:38: note: 'nominalFocalLengthIn35mmFilm' has been explicitly marked unavailable here
2961 | ///
2962 | /// This property value is `0` for virtual devices and external cameras.
2963 | @property(nonatomic, readonly) float nominalFocalLengthIn35mmFilm API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'nominalFocalLengthIn35mmFilm' has been explicitly marked unavailable here
2964 | @end
2965 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift:158:40: error: 'isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported' is only available in tvOS 27.0 or newer
4 | private let sensorWidth35mm: Double = 36.0
5 |
6 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
7 | // MARK: - Set Zoom
8 |
:
155 | /// - Throws: ``PRMSessionError/unsupportedConfiguration(_:)`` before iOS 27, when the
156 | /// device doesn't support locking, or when it has no constituent of `type`.
157 | func prm_lockPrimaryConstituent(to type: AVCaptureDevice.DeviceType?) throws {
| `- note: add '@available' attribute to enclosing instance method
158 | guard #available(iOS 27.0, *), isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported else {
| |- error: 'isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
159 | throw PRMSessionError.unsupportedConfiguration("Locking to one lens requires iOS 27 and a virtual camera that supports it")
160 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift:171:13: error: 'setPrimaryConstituentDeviceSwitchingBehaviorLockedWith' is only available in tvOS 27.0 or newer
4 | private let sensorWidth35mm: Double = 36.0
5 |
6 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
7 | // MARK: - Set Zoom
8 |
:
155 | /// - Throws: ``PRMSessionError/unsupportedConfiguration(_:)`` before iOS 27, when the
156 | /// device doesn't support locking, or when it has no constituent of `type`.
157 | func prm_lockPrimaryConstituent(to type: AVCaptureDevice.DeviceType?) throws {
| `- note: add '@available' attribute to enclosing instance method
158 | guard #available(iOS 27.0, *), isPrimaryConstituentDeviceSwitchingBehaviorLockedWithDeviceSupported else {
159 | throw PRMSessionError.unsupportedConfiguration("Locking to one lens requires iOS 27 and a virtual camera that supports it")
:
169 | }
170 | try prm_withConfigurationLock {
171 | setPrimaryConstituentDeviceSwitchingBehaviorLockedWith(constituent)
| |- error: 'setPrimaryConstituentDeviceSwitchingBehaviorLockedWith' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
172 | }
173 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:101:21: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
| | `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
| `- note: add '@available' attribute to enclosing initializer
102 | switch signal {
103 | case .subjectMotion: self = .subjectMotion
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:112:19: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
102 | switch signal {
:
110 | }
111 |
112 | var avSignal: AVCaptureDeviceExposureSignal {
| | `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
| `- note: add '@available' attribute to enclosing property
113 | switch self {
114 | case .subjectMotion: .subjectMotion
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:122:39: error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
102 | switch signal {
:
120 | }
121 |
122 | static func set(from signals: Set<AVCaptureDeviceExposureSignal>) -> Set<Self> {
| | `- error: 'AVCaptureDeviceExposureSignal' is only available in tvOS 27.0 or newer
| `- note: add '@available' attribute to enclosing static method
123 | Set(signals.compactMap(Self.init))
124 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:103:15: error: 'subjectMotion' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
| `- note: add '@available' attribute to enclosing initializer
102 | switch signal {
103 | case .subjectMotion: self = .subjectMotion
| |- error: 'subjectMotion' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
104 | case .groupPhoto: self = .groupPhoto
105 | case .document: self = .document
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:104:15: error: 'groupPhoto' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
| `- note: add '@available' attribute to enclosing initializer
102 | switch signal {
103 | case .subjectMotion: self = .subjectMotion
104 | case .groupPhoto: self = .groupPhoto
| |- error: 'groupPhoto' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
105 | case .document: self = .document
106 | case .starburst: self = .starburst
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:105:15: error: 'document' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
| `- note: add '@available' attribute to enclosing initializer
102 | switch signal {
103 | case .subjectMotion: self = .subjectMotion
104 | case .groupPhoto: self = .groupPhoto
105 | case .document: self = .document
| |- error: 'document' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
106 | case .starburst: self = .starburst
107 | case .flicker: self = .flicker
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:106:15: error: 'starburst' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
| `- note: add '@available' attribute to enclosing initializer
102 | switch signal {
103 | case .subjectMotion: self = .subjectMotion
104 | case .groupPhoto: self = .groupPhoto
105 | case .document: self = .document
106 | case .starburst: self = .starburst
| |- error: 'starburst' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
107 | case .flicker: self = .flicker
108 | default: return nil
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:107:15: error: 'flicker' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
| `- note: add '@available' attribute to enclosing initializer
102 | switch signal {
103 | case .subjectMotion: self = .subjectMotion
:
105 | case .document: self = .document
106 | case .starburst: self = .starburst
107 | case .flicker: self = .flicker
| |- error: 'flicker' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
108 | default: return nil
109 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:114:31: error: 'subjectMotion' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
102 | switch signal {
:
110 | }
111 |
112 | var avSignal: AVCaptureDeviceExposureSignal {
| `- note: add '@available' attribute to enclosing property
113 | switch self {
114 | case .subjectMotion: .subjectMotion
| |- error: 'subjectMotion' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
115 | case .groupPhoto: .groupPhoto
116 | case .document: .document
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:115:28: error: 'groupPhoto' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
102 | switch signal {
:
110 | }
111 |
112 | var avSignal: AVCaptureDeviceExposureSignal {
| `- note: add '@available' attribute to enclosing property
113 | switch self {
114 | case .subjectMotion: .subjectMotion
115 | case .groupPhoto: .groupPhoto
| |- error: 'groupPhoto' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
116 | case .document: .document
117 | case .starburst: .starburst
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:116:26: error: 'document' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
102 | switch signal {
:
110 | }
111 |
112 | var avSignal: AVCaptureDeviceExposureSignal {
| `- note: add '@available' attribute to enclosing property
113 | switch self {
114 | case .subjectMotion: .subjectMotion
115 | case .groupPhoto: .groupPhoto
116 | case .document: .document
| |- error: 'document' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
117 | case .starburst: .starburst
118 | case .flicker: .flicker
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift:117:27: error: 'starburst' is only available in tvOS 27.0 or newer
98 |
99 | @available(iOS 27.0, *)
100 | extension PRMExposureSignal {
| `- note: add '@available' attribute to enclosing extension
101 | init?(_ signal: AVCaptureDeviceExposureSignal) {
102 | switch signal {
:
110 | }
111 |
112 | var avSignal: AVCaptureDeviceExposureSignal {
| `- note: add '@available' attribute to enclosing property
113 | switch self {
114 | case .subjectMotion: .subjectMotion
115 | case .groupPhoto: .groupPhoto
116 | case .document: .document
117 | case .starburst: .starburst
| |- error: 'starburst' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
118 | case .flicker: .flicker
119 | }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+WhiteBalance.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+WhiteBalance.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Zoom.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+Zoom.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCapturePhotoOutput+Readiness.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCapturePhotoOutput+Readiness.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMExposureValue.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMExposureValue.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/PRMLens.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMLens.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMBlurFilter.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMBlurFilter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMColorFilter.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMColorFilter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Filter/Filters/PRMDistortionFilter.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMDistortionFilter.swift
SwiftCompile normal arm64 Compiling\ resource_bundle_accessor.swift,\ PRMCamera+Framing.swift,\ PRMCamera+ManualControls.swift,\ PRMCamera+Observers.swift,\ PRMCamera+SessionHealth.swift,\ PRMCamera+Tracking.swift,\ PRMCamera.swift,\ PRMCameraActor.swift,\ PRMCameraConfiguration.swift /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources/resource_bundle_accessor.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Framing.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+ManualControls.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Observers.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+SessionHealth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Tracking.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraActor.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraConfiguration.swift (in target 'PrismCore' from project 'Prism')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Prism.build/Debug-appletvos/PrismCore-t.build/DerivedSources/resource_bundle_accessor.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile resource_bundle_accessor.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Framing.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCamera+Framing.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+ManualControls.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCamera+ManualControls.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Observers.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCamera+Observers.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+SessionHealth.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCamera+SessionHealth.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera+Tracking.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCamera+Tracking.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCamera.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCamera.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraActor.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraActor.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMCameraConfiguration.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMCameraConfiguration.swift
SwiftCompile normal arm64 Compiling\ PRMPortraitReadiness.swift,\ PRMRecording.swift,\ PRMVideoRecorder.swift,\ AVCaptureConnection+Stabilization.swift,\ AVCaptureDevice+Aperture.swift,\ AVCaptureDevice+AspectRatio.swift,\ AVCaptureDevice+Cinematic.swift,\ AVCaptureDevice+Configuration.swift,\ AVCaptureDevice+Depth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitReadiness.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMRecording.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMVideoRecorder.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureConnection+Stabilization.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+AspectRatio.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Configuration.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Depth.swift (in target 'PrismCore' from project 'Prism')
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:15:22: error: 'minLensAperture' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
10 | /// Supported lens 𝑓-number range for the active format, or `nil` when the aperture is
11 | /// fixed or the OS is older than iOS 27.
12 | var prm_lensApertureRange: ClosedRange<Float>? {
| `- note: add '@available' attribute to enclosing property
13 | guard #available(iOS 27.0, *) else { return nil }
14 | let format = activeFormat
15 | guard format.minLensAperture > 0, format.maxLensAperture > format.minLensAperture else { return nil }
| |- error: 'minLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
16 | return format.minLensAperture ... format.maxLensAperture
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:15:50: error: 'maxLensAperture' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
10 | /// Supported lens 𝑓-number range for the active format, or `nil` when the aperture is
11 | /// fixed or the OS is older than iOS 27.
12 | var prm_lensApertureRange: ClosedRange<Float>? {
| `- note: add '@available' attribute to enclosing property
13 | guard #available(iOS 27.0, *) else { return nil }
14 | let format = activeFormat
15 | guard format.minLensAperture > 0, format.maxLensAperture > format.minLensAperture else { return nil }
| |- error: 'maxLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
16 | return format.minLensAperture ... format.maxLensAperture
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:15:75: error: 'minLensAperture' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
10 | /// Supported lens 𝑓-number range for the active format, or `nil` when the aperture is
11 | /// fixed or the OS is older than iOS 27.
12 | var prm_lensApertureRange: ClosedRange<Float>? {
| `- note: add '@available' attribute to enclosing property
13 | guard #available(iOS 27.0, *) else { return nil }
14 | let format = activeFormat
15 | guard format.minLensAperture > 0, format.maxLensAperture > format.minLensAperture else { return nil }
| |- error: 'minLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
16 | return format.minLensAperture ... format.maxLensAperture
17 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:16:23: error: 'minLensAperture' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
10 | /// Supported lens 𝑓-number range for the active format, or `nil` when the aperture is
11 | /// fixed or the OS is older than iOS 27.
12 | var prm_lensApertureRange: ClosedRange<Float>? {
| `- note: add '@available' attribute to enclosing property
13 | guard #available(iOS 27.0, *) else { return nil }
14 | let format = activeFormat
15 | guard format.minLensAperture > 0, format.maxLensAperture > format.minLensAperture else { return nil }
16 | return format.minLensAperture ... format.maxLensAperture
| |- error: 'minLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
17 | }
18 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:16:50: error: 'maxLensAperture' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
10 | /// Supported lens 𝑓-number range for the active format, or `nil` when the aperture is
11 | /// fixed or the OS is older than iOS 27.
12 | var prm_lensApertureRange: ClosedRange<Float>? {
| `- note: add '@available' attribute to enclosing property
13 | guard #available(iOS 27.0, *) else { return nil }
14 | let format = activeFormat
15 | guard format.minLensAperture > 0, format.maxLensAperture > format.minLensAperture else { return nil }
16 | return format.minLensAperture ... format.maxLensAperture
| |- error: 'maxLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
17 | }
18 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:25:27: error: 'automaticallyAdjustsLensAperture' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
20 | /// (`automaticallyAdjustsLensAperture` / `…ExposureDuration` / `…ISO`); derived from
21 | /// `exposureMode` before that.
22 | var prm_autoExposureAxes: PRMExposureAxes {
| `- note: add '@available' attribute to enclosing property
23 | guard #available(iOS 27.0, *) else { return PRMExposureAxes(exposureMode: exposureMode) }
24 | return PRMExposureAxes(
25 | apertureAuto: automaticallyAdjustsLensAperture,
| |- error: 'automaticallyAdjustsLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
26 | shutterAuto: automaticallyAdjustsExposureDuration,
27 | isoAuto: automaticallyAdjustsISO
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:26:26: error: 'automaticallyAdjustsExposureDuration' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
20 | /// (`automaticallyAdjustsLensAperture` / `…ExposureDuration` / `…ISO`); derived from
21 | /// `exposureMode` before that.
22 | var prm_autoExposureAxes: PRMExposureAxes {
| `- note: add '@available' attribute to enclosing property
23 | guard #available(iOS 27.0, *) else { return PRMExposureAxes(exposureMode: exposureMode) }
24 | return PRMExposureAxes(
25 | apertureAuto: automaticallyAdjustsLensAperture,
26 | shutterAuto: automaticallyAdjustsExposureDuration,
| |- error: 'automaticallyAdjustsExposureDuration' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
27 | isoAuto: automaticallyAdjustsISO
28 | )
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:27:22: error: 'automaticallyAdjustsISO' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
20 | /// (`automaticallyAdjustsLensAperture` / `…ExposureDuration` / `…ISO`); derived from
21 | /// `exposureMode` before that.
22 | var prm_autoExposureAxes: PRMExposureAxes {
| `- note: add '@available' attribute to enclosing property
23 | guard #available(iOS 27.0, *) else { return PRMExposureAxes(exposureMode: exposureMode) }
24 | return PRMExposureAxes(
25 | apertureAuto: automaticallyAdjustsLensAperture,
26 | shutterAuto: automaticallyAdjustsExposureDuration,
27 | isoAuto: automaticallyAdjustsISO
| |- error: 'automaticallyAdjustsISO' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
28 | )
29 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:43:29: error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
34 | /// `false` before iOS 27. Explicit values are only range-checked; `.current` and `.auto`
35 | /// test the lock/auto combination itself.
36 | func prm_supportsExposure(
| `- note: add '@available' attribute to enclosing instance method
37 | aperture: PRMExposureValue<Float> = .current,
38 | shutterSeconds: PRMExposureValue<Double> = .current,
:
41 | guard #available(iOS 27.0, *) else { return false }
42 | let values = prm_resolvedExposureValues(aperture: aperture, shutterSeconds: shutterSeconds, iso: iso)
43 | return activeFormat.supportsExposureModeCustom(
| |- error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
44 | lensAperture: values.aperture,
45 | duration: values.duration,
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:84:28: error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
68 | /// multi-camera device when any axis is locked (the constituent cameras' auto exposure
69 | /// overrides it).
70 | func prm_setExposure(
| `- note: add '@available' attribute to enclosing instance method
71 | aperture: PRMExposureValue<Float> = .current,
72 | shutterSeconds: PRMExposureValue<Double> = .current,
:
82 | }
83 | let values = prm_resolvedExposureValues(aperture: aperture, shutterSeconds: shutterSeconds, iso: iso)
84 | guard activeFormat.supportsExposureModeCustom(
| |- error: 'supportsExposureModeCustom(lensAperture:duration:iso:)' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
85 | lensAperture: values.aperture,
86 | duration: values.duration,
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:98:13: error: 'setExposureModeCustom(lensAperture:duration:iso:completionHandler:)' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
68 | /// multi-camera device when any axis is locked (the constituent cameras' auto exposure
69 | /// overrides it).
70 | func prm_setExposure(
| `- note: add '@available' attribute to enclosing instance method
71 | aperture: PRMExposureValue<Float> = .current,
72 | shutterSeconds: PRMExposureValue<Double> = .current,
:
96 | prm_restoreExposureAutoTracking()
97 | }
98 | setExposureModeCustom(
| |- error: 'setExposureModeCustom(lensAperture:duration:iso:completionHandler:)' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
99 | lensAperture: values.aperture,
100 | duration: values.duration,
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:116:13: error: 'autoExposureLensApertureRateLimit' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
108 | /// frame. `0` restores the system's own pacing (faster in preview, slower while
109 | /// recording). Values between 0 and 1 are raised to 1.
110 | func prm_setAutoApertureRateLimit(_ ratio: Float) throws {
| `- note: add '@available' attribute to enclosing instance method
111 | guard #available(iOS 27.0, *) else {
112 | throw PRMSessionError.unsupportedConfiguration("Aperture rate limiting requires iOS 27")
:
114 | let value: Float = ratio <= 0 ? 0 : max(ratio, 1)
115 | try prm_withConfigurationLock {
116 | autoExposureLensApertureRateLimit = value
| |- error: 'autoExposureLensApertureRateLimit' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
117 | }
118 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:125:44: error: 'activeExposureSignals' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
121 |
122 | /// Exposure signals auto exposure is currently reacting to (iOS 27). Empty before that.
123 | var prm_activeExposureSignals: Set<PRMExposureSignal> {
| `- note: add '@available' attribute to enclosing property
124 | guard #available(iOS 27.0, *) else { return [] }
125 | return PRMExposureSignal.set(from: activeExposureSignals)
| |- error: 'activeExposureSignals' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
126 | }
127 |
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:137:17: error: 'automaticallyEnablesExposureSignals' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
129 | /// back to the system (`automaticallyEnablesExposureSignals = true`). Unsupported
130 | /// signals are dropped, since assigning one raises an exception.
131 | func prm_setExposureSignals(_ signals: Set<PRMExposureSignal>?) throws {
| `- note: add '@available' attribute to enclosing instance method
132 | guard #available(iOS 27.0, *) else {
133 | throw PRMSessionError.unsupportedConfiguration("Exposure signals require iOS 27")
:
135 | try prm_withConfigurationLock {
136 | guard let signals else {
137 | automaticallyEnablesExposureSignals = true
| |- error: 'automaticallyEnablesExposureSignals' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
138 | return
139 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:140:13: error: 'automaticallyEnablesExposureSignals' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
129 | /// back to the system (`automaticallyEnablesExposureSignals = true`). Unsupported
130 | /// signals are dropped, since assigning one raises an exception.
131 | func prm_setExposureSignals(_ signals: Set<PRMExposureSignal>?) throws {
| `- note: add '@available' attribute to enclosing instance method
132 | guard #available(iOS 27.0, *) else {
133 | throw PRMSessionError.unsupportedConfiguration("Exposure signals require iOS 27")
:
138 | return
139 | }
140 | automaticallyEnablesExposureSignals = false
| |- error: 'automaticallyEnablesExposureSignals' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
141 | let supported = supportedExposureSignals
142 | enabledExposureSignals = Set(signals.map(\.avSignal)).intersection(supported)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:141:29: error: 'supportedExposureSignals' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
129 | /// back to the system (`automaticallyEnablesExposureSignals = true`). Unsupported
130 | /// signals are dropped, since assigning one raises an exception.
131 | func prm_setExposureSignals(_ signals: Set<PRMExposureSignal>?) throws {
| `- note: add '@available' attribute to enclosing instance method
132 | guard #available(iOS 27.0, *) else {
133 | throw PRMSessionError.unsupportedConfiguration("Exposure signals require iOS 27")
:
139 | }
140 | automaticallyEnablesExposureSignals = false
141 | let supported = supportedExposureSignals
| |- error: 'supportedExposureSignals' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
142 | enabledExposureSignals = Set(signals.map(\.avSignal)).intersection(supported)
143 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:142:13: error: 'enabledExposureSignals' is only available in tvOS 27.0 or newer
5 | // and let auto exposure drive the rest, and the exposure signals that steer auto exposure.
6 |
7 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
8 | // MARK: - Aperture capability
9 |
:
129 | /// back to the system (`automaticallyEnablesExposureSignals = true`). Unsupported
130 | /// signals are dropped, since assigning one raises an exception.
131 | func prm_setExposureSignals(_ signals: Set<PRMExposureSignal>?) throws {
| `- note: add '@available' attribute to enclosing instance method
132 | guard #available(iOS 27.0, *) else {
133 | throw PRMSessionError.unsupportedConfiguration("Exposure signals require iOS 27")
:
140 | automaticallyEnablesExposureSignals = false
141 | let supported = supportedExposureSignals
142 | enabledExposureSignals = Set(signals.map(\.avSignal)).intersection(supported)
| |- error: 'enabledExposureSignals' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
143 | }
144 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:160:26: error: 'autoLensAperture' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
150 | /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 | /// for `.fixed`.
152 | @available(iOS 27.0, *)
153 | func prm_resolvedExposureValues(
| `- note: add '@available' attribute to enclosing instance method
154 | aperture: PRMExposureValue<Float>,
155 | shutterSeconds: PRMExposureValue<Double>,
:
158 | let format = activeFormat
159 | let resolvedAperture: Float = switch aperture {
160 | case .auto: Self.autoLensAperture
| |- error: 'autoLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
161 | case .current: Self.currentLensAperture
162 | case let .fixed(value): min(max(value, format.minLensAperture), max(format.maxLensAperture, format.minLensAperture))
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:161:29: error: 'currentLensAperture' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
150 | /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 | /// for `.fixed`.
152 | @available(iOS 27.0, *)
153 | func prm_resolvedExposureValues(
| `- note: add '@available' attribute to enclosing instance method
154 | aperture: PRMExposureValue<Float>,
155 | shutterSeconds: PRMExposureValue<Double>,
:
159 | let resolvedAperture: Float = switch aperture {
160 | case .auto: Self.autoLensAperture
161 | case .current: Self.currentLensAperture
| |- error: 'currentLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
162 | case let .fixed(value): min(max(value, format.minLensAperture), max(format.maxLensAperture, format.minLensAperture))
163 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:162:55: error: 'minLensAperture' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
150 | /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 | /// for `.fixed`.
152 | @available(iOS 27.0, *)
153 | func prm_resolvedExposureValues(
| `- note: add '@available' attribute to enclosing instance method
154 | aperture: PRMExposureValue<Float>,
155 | shutterSeconds: PRMExposureValue<Double>,
:
160 | case .auto: Self.autoLensAperture
161 | case .current: Self.currentLensAperture
162 | case let .fixed(value): min(max(value, format.minLensAperture), max(format.maxLensAperture, format.minLensAperture))
| |- error: 'minLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
163 | }
164 | let resolvedDuration: CMTime = switch shutterSeconds {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:162:84: error: 'maxLensAperture' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
150 | /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 | /// for `.fixed`.
152 | @available(iOS 27.0, *)
153 | func prm_resolvedExposureValues(
| `- note: add '@available' attribute to enclosing instance method
154 | aperture: PRMExposureValue<Float>,
155 | shutterSeconds: PRMExposureValue<Double>,
:
160 | case .auto: Self.autoLensAperture
161 | case .current: Self.currentLensAperture
162 | case let .fixed(value): min(max(value, format.minLensAperture), max(format.maxLensAperture, format.minLensAperture))
| |- error: 'maxLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
163 | }
164 | let resolvedDuration: CMTime = switch shutterSeconds {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:162:108: error: 'minLensAperture' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
150 | /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 | /// for `.fixed`.
152 | @available(iOS 27.0, *)
153 | func prm_resolvedExposureValues(
| `- note: add '@available' attribute to enclosing instance method
154 | aperture: PRMExposureValue<Float>,
155 | shutterSeconds: PRMExposureValue<Double>,
:
160 | case .auto: Self.autoLensAperture
161 | case .current: Self.currentLensAperture
162 | case let .fixed(value): min(max(value, format.minLensAperture), max(format.maxLensAperture, format.minLensAperture))
| |- error: 'minLensAperture' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
163 | }
164 | let resolvedDuration: CMTime = switch shutterSeconds {
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:165:26: error: 'autoExposureDuration' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
150 | /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 | /// for `.fixed`.
152 | @available(iOS 27.0, *)
153 | func prm_resolvedExposureValues(
| `- note: add '@available' attribute to enclosing instance method
154 | aperture: PRMExposureValue<Float>,
155 | shutterSeconds: PRMExposureValue<Double>,
:
163 | }
164 | let resolvedDuration: CMTime = switch shutterSeconds {
165 | case .auto: Self.autoExposureDuration
| |- error: 'autoExposureDuration' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
166 | case .current: Self.currentExposureDuration
167 | case let .fixed(seconds): prm_clampedDuration(CMTimeMakeWithSeconds(seconds, preferredTimescale: 1_000_000))
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift:170:26: error: 'autoISO' is only available in tvOS 27.0 or newer
147 | // MARK: - Internal helpers
148 |
149 | extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
150 | /// Maps each axis to the SDK value: sentinels for `.auto` / `.current`, clamped numbers
151 | /// for `.fixed`.
152 | @available(iOS 27.0, *)
153 | func prm_resolvedExposureValues(
| `- note: add '@available' attribute to enclosing instance method
154 | aperture: PRMExposureValue<Float>,
155 | shutterSeconds: PRMExposureValue<Double>,
:
168 | }
169 | let resolvedISO: Float = switch iso {
170 | case .auto: Self.autoISO
| |- error: 'autoISO' is only available in tvOS 27.0 or newer
| `- note: add 'if #available' version check
171 | case .current: Self.currentISO
172 | case let .fixed(value): min(max(value, format.minISO), format.maxISO)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:10:52: error: 'videoFrameRateRangeForCinematicVideo' is only available in tvOS 26.0 or newer
4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
5 |
6 | public extension AVCaptureDevice.Format {
| `- note: add '@available' attribute to enclosing extension
7 | /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
8 | /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
9 | var prm_cinematicFrameRateRange: ClosedRange<Float64>? {
| `- note: add '@available' attribute to enclosing property
10 | guard #available(iOS 26.0, *), let range = videoFrameRateRangeForCinematicVideo else { return nil }
| |- error: 'videoFrameRateRangeForCinematicVideo' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
11 | return range.minFrameRate ... range.maxFrameRate
12 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:18:15: error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
5 |
6 | public extension AVCaptureDevice.Format {
| `- note: add '@available' attribute to enclosing extension
7 | /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
8 | /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
:
14 | /// Simulated-aperture range for Cinematic Video's depth-of-field effect, or `nil` when the
15 | /// format can't change it (or the OS is older than iOS 26).
16 | var prm_simulatedApertureRange: ClosedRange<Float>? {
| `- note: add '@available' attribute to enclosing property
17 | guard #available(iOS 26.0, *) else { return nil }
18 | guard minSimulatedAperture > 0, maxSimulatedAperture >= minSimulatedAperture else { return nil }
| |- error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
19 | return minSimulatedAperture ... maxSimulatedAperture
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:18:41: error: 'maxSimulatedAperture' is only available in tvOS 26.0 or newer
4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
5 |
6 | public extension AVCaptureDevice.Format {
| `- note: add '@available' attribute to enclosing extension
7 | /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
8 | /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
:
14 | /// Simulated-aperture range for Cinematic Video's depth-of-field effect, or `nil` when the
15 | /// format can't change it (or the OS is older than iOS 26).
16 | var prm_simulatedApertureRange: ClosedRange<Float>? {
| `- note: add '@available' attribute to enclosing property
17 | guard #available(iOS 26.0, *) else { return nil }
18 | guard minSimulatedAperture > 0, maxSimulatedAperture >= minSimulatedAperture else { return nil }
| |- error: 'maxSimulatedAperture' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
19 | return minSimulatedAperture ... maxSimulatedAperture
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:18:65: error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
5 |
6 | public extension AVCaptureDevice.Format {
| `- note: add '@available' attribute to enclosing extension
7 | /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
8 | /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
:
14 | /// Simulated-aperture range for Cinematic Video's depth-of-field effect, or `nil` when the
15 | /// format can't change it (or the OS is older than iOS 26).
16 | var prm_simulatedApertureRange: ClosedRange<Float>? {
| `- note: add '@available' attribute to enclosing property
17 | guard #available(iOS 26.0, *) else { return nil }
18 | guard minSimulatedAperture > 0, maxSimulatedAperture >= minSimulatedAperture else { return nil }
| |- error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
19 | return minSimulatedAperture ... maxSimulatedAperture
20 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:19:16: error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
5 |
6 | public extension AVCaptureDevice.Format {
| `- note: add '@available' attribute to enclosing extension
7 | /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
8 | /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
:
14 | /// Simulated-aperture range for Cinematic Video's depth-of-field effect, or `nil` when the
15 | /// format can't change it (or the OS is older than iOS 26).
16 | var prm_simulatedApertureRange: ClosedRange<Float>? {
| `- note: add '@available' attribute to enclosing property
17 | guard #available(iOS 26.0, *) else { return nil }
18 | guard minSimulatedAperture > 0, maxSimulatedAperture >= minSimulatedAperture else { return nil }
19 | return minSimulatedAperture ... maxSimulatedAperture
| |- error: 'minSimulatedAperture' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
20 | }
21 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:19:41: error: 'maxSimulatedAperture' is only available in tvOS 26.0 or newer
4 | // operation (it lives on the device *input*); see `PRMCameraSession.setCinematicVideoCaptureEnabled`.
5 |
6 | public extension AVCaptureDevice.Format {
| `- note: add '@available' attribute to enclosing extension
7 | /// Frame-rate range available while Cinematic Video is enabled on this format, or `nil`
8 | /// when the format doesn't support Cinematic Video (or the OS is older than iOS 26).
:
14 | /// Simulated-aperture range for Cinematic Video's depth-of-field effect, or `nil` when the
15 | /// format can't change it (or the OS is older than iOS 26).
16 | var prm_simulatedApertureRange: ClosedRange<Float>? {
| `- note: add '@available' attribute to enclosing property
17 | guard #available(iOS 26.0, *) else { return nil }
18 | guard minSimulatedAperture > 0, maxSimulatedAperture >= minSimulatedAperture else { return nil }
19 | return minSimulatedAperture ... maxSimulatedAperture
| |- error: 'maxSimulatedAperture' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
20 | }
21 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:41:17: error: 'setCinematicVideoTrackingFocus(detectedObjectID:focusMode:)' is only available in tvOS 26.0 or newer
21 | }
22 |
23 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
24 | /// Scene conditions currently degrading Cinematic Video (iOS 26). Empty before that.
25 | var prm_cinematicSceneStatuses: Set<PRMSceneMonitoringStatus> {
:
35 | /// instead.
36 | @available(iOS 26.0, *)
37 | func prm_setCinematicFocus(_ request: PRMCinematicFocusRequest) throws {
| `- note: add '@available' attribute to enclosing instance method
38 | try prm_withConfigurationLock {
39 | switch request {
40 | case let .trackObject(id, mode):
41 | setCinematicVideoTrackingFocus(detectedObjectID: id, focusMode: mode.avMode)
| |- error: 'setCinematicVideoTrackingFocus(detectedObjectID:focusMode:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
42 | case let .trackPoint(point, mode):
43 | setCinematicVideoTrackingFocus(at: Self.prm_clampedUnitPoint(point), focusMode: mode.avMode)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:43:17: error: 'setCinematicVideoTrackingFocus(at:focusMode:)' is only available in tvOS 26.0 or newer
21 | }
22 |
23 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
24 | /// Scene conditions currently degrading Cinematic Video (iOS 26). Empty before that.
25 | var prm_cinematicSceneStatuses: Set<PRMSceneMonitoringStatus> {
:
35 | /// instead.
36 | @available(iOS 26.0, *)
37 | func prm_setCinematicFocus(_ request: PRMCinematicFocusRequest) throws {
| `- note: add '@available' attribute to enclosing instance method
38 | try prm_withConfigurationLock {
39 | switch request {
:
41 | setCinematicVideoTrackingFocus(detectedObjectID: id, focusMode: mode.avMode)
42 | case let .trackPoint(point, mode):
43 | setCinematicVideoTrackingFocus(at: Self.prm_clampedUnitPoint(point), focusMode: mode.avMode)
| |- error: 'setCinematicVideoTrackingFocus(at:focusMode:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
44 | case let .fixedPoint(point, mode):
45 | setCinematicVideoFixedFocus(at: Self.prm_clampedUnitPoint(point), focusMode: mode.avMode)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:45:17: error: 'setCinematicVideoFixedFocus(at:focusMode:)' is only available in tvOS 26.0 or newer
21 | }
22 |
23 | public extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
24 | /// Scene conditions currently degrading Cinematic Video (iOS 26). Empty before that.
25 | var prm_cinematicSceneStatuses: Set<PRMSceneMonitoringStatus> {
:
35 | /// instead.
36 | @available(iOS 26.0, *)
37 | func prm_setCinematicFocus(_ request: PRMCinematicFocusRequest) throws {
| `- note: add '@available' attribute to enclosing instance method
38 | try prm_withConfigurationLock {
39 | switch request {
:
43 | setCinematicVideoTrackingFocus(at: Self.prm_clampedUnitPoint(point), focusMode: mode.avMode)
44 | case let .fixedPoint(point, mode):
45 | setCinematicVideoFixedFocus(at: Self.prm_clampedUnitPoint(point), focusMode: mode.avMode)
| |- error: 'setCinematicVideoFixedFocus(at:focusMode:)' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
46 | }
47 | }
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:65:23: error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
51 | // MARK: - Format selection
52 |
53 | extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
54 | /// Picks the format to switch to for Cinematic Video: among formats that support it,
55 | /// the one closest in pixel count to `preferredDimensions` (the current format, so the
:
57 | /// `nil` when no format supports Cinematic Video.
58 | @available(iOS 26.0, *)
59 | static func prm_bestCinematicFormat(
| `- note: add '@available' attribute to enclosing static method
60 | from formats: [AVCaptureDevice.Format],
61 | preferredDimensions: CMVideoDimensions
:
63 | let target = Int64(preferredDimensions.width) * Int64(preferredDimensions.height)
64 | return formats
65 | .filter(\.isCinematicVideoCaptureSupported)
| |- error: 'isCinematicVideoCaptureSupported' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
66 | .min { lhs, rhs in
67 | let lhsDims = CMVideoFormatDescriptionGetDimensions(lhs.formatDescription)
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift:72:35: error: 'videoFrameRateRangeForCinematicVideo' is only available in tvOS 26.0 or newer
51 | // MARK: - Format selection
52 |
53 | extension AVCaptureDevice {
| `- note: add '@available' attribute to enclosing extension
54 | /// Picks the format to switch to for Cinematic Video: among formats that support it,
55 | /// the one closest in pixel count to `preferredDimensions` (the current format, so the
:
57 | /// `nil` when no format supports Cinematic Video.
58 | @available(iOS 26.0, *)
59 | static func prm_bestCinematicFormat(
| `- note: add '@available' attribute to enclosing static method
60 | from formats: [AVCaptureDevice.Format],
61 | preferredDimensions: CMVideoDimensions
:
70 | let rhsDistance = abs(Int64(rhsDims.width) * Int64(rhsDims.height) - target)
71 | if lhsDistance != rhsDistance { return lhsDistance < rhsDistance }
72 | let lhsRate = lhs.videoFrameRateRangeForCinematicVideo?.maxFrameRate ?? 0
| |- error: 'videoFrameRateRangeForCinematicVideo' is only available in tvOS 26.0 or newer
| `- note: add 'if #available' version check
73 | let rhsRate = rhs.videoFrameRateRangeForCinematicVideo?.maxFrameRate ?? 0
74 | return lhsRate > rhsRate
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitReadiness.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMPortraitReadiness.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMRecording.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMRecording.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMVideoRecorder.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMVideoRecorder.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureConnection+Stabilization.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureConnection+Stabilization.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Aperture.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+Aperture.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+AspectRatio.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+AspectRatio.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Cinematic.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+Cinematic.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Configuration.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+Configuration.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Device/AVCaptureDevice+Depth.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile AVCaptureDevice+Depth.swift
SwiftCompile normal arm64 Compiling\ PRMLivePhoto.swift,\ PRMNightModeCapture.swift,\ PRMOutputResolver.swift,\ PRMPhoto.swift,\ PRMPhotoCapture+Delegate.swift,\ PRMPhotoCapture+Encoding.swift,\ PRMPhotoCapture.swift,\ PRMPhotoSettings.swift,\ PRMPortraitPhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMLivePhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMNightModeCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMOutputResolver.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhoto.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Encoding.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoSettings.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitPhoto.swift (in target 'PrismCore' from project 'Prism')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMLivePhoto.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMLivePhoto.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMNightModeCapture.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMNightModeCapture.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMOutputResolver.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMOutputResolver.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhoto.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMPhoto.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMPhotoCapture+Delegate.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Encoding.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMPhotoCapture+Encoding.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMPhotoCapture.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoSettings.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMPhotoSettings.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPortraitPhoto.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMPortraitPhoto.swift
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift:44:66: error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
42 | public func photoOutput(
43 | _ output: AVCapturePhotoOutput,
44 | didFinishCapturingDeferredPhotoProxy deferredPhotoProxy: AVCaptureDeferredPhotoProxy?,
| `- error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
45 | error: (any Error)?
46 | ) {
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:2343:12: note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2341 | */
2342 | API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos)
2343 | @interface AVCaptureDeferredPhotoProxy : AVCapturePhoto
| `- note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2344 |
2345 | AV_INIT_UNAVAILABLE
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Delegate.swift:42:17: error: cannot override 'photoOutput' which has been marked unavailable
40 | /// proxy is a failure with no follow-up; the capture is identified (and failed) in
41 | /// `didFinishCaptureFor`, which carries the resolved settings this callback lacks.
42 | public func photoOutput(
| `- error: cannot override 'photoOutput' which has been marked unavailable
43 | _ output: AVCapturePhotoOutput,
44 | didFinishCapturingDeferredPhotoProxy deferredPhotoProxy: AVCaptureDeferredPhotoProxy?,
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:1071:1: note: 'photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)' has been explicitly marked unavailable here
1069 | Delegates are required to implement this method if they opt in for deferred photo processing, otherwise an NSInvalidArgumentException will be thrown from the -[AVCapturePhotoOutput capturePhotoWithSettings:delegate:] method.
1070 | */
1071 | - (void)captureOutput:(AVCapturePhotoOutput *)output didFinishCapturingDeferredPhotoProxy:(nullable AVCaptureDeferredPhotoProxy *)deferredPhotoProxy error:(nullable NSError *)error NS_SWIFT_NAME(photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)) API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos);
| `- note: 'photoOutput(_:didFinishCapturingDeferredPhotoProxy:error:)' has been explicitly marked unavailable here
1072 |
1073 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMPhotoCapture+Encoding.swift:158:50: error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
156 | switch result {
157 | case let .success(photo):
158 | let proxy = photo.underlyingPhoto is AVCaptureDeferredPhotoProxy ? " (deferred proxy)" : ""
| `- error: 'AVCaptureDeferredPhotoProxy' is unavailable in tvOS
159 | let smaller = smallerThanRequestedText(photo.underlyingPhoto.resolvedSettings.photoDimensions, requested: requested, sizeLimit: sizeLimit)
160 | PRMLog.notice(
/Applications/Xcode-27.0.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h:2343:12: note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2341 | */
2342 | API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, visionos) API_UNAVAILABLE(watchos)
2343 | @interface AVCaptureDeferredPhotoProxy : AVCapturePhoto
| `- note: 'AVCaptureDeferredPhotoProxy' has been explicitly marked unavailable here
2344 |
2345 | AV_INIT_UNAVAILABLE
SwiftCompile normal arm64 Compiling\ PRMSessionHealth.swift,\ PRMVideoFrameRouter.swift,\ PRMNightMerger.swift,\ PRMNightPlanner.swift,\ PRMNightRegistration.swift,\ PRMNightStacker.swift,\ PRMNightTone.swift,\ PRMNightTypes.swift,\ PRMDepthCapture.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionHealth.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMVideoFrameRouter.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightMerger.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightPlanner.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightRegistration.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightStacker.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTone.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTypes.swift /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMDepthCapture.swift (in target 'PrismCore' from project 'Prism')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMSessionHealth.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMSessionHealth.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Camera/PRMVideoFrameRouter.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMVideoFrameRouter.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightMerger.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMNightMerger.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightPlanner.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMNightPlanner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightRegistration.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMNightRegistration.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightStacker.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMNightStacker.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTone.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMNightTone.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/Night/PRMNightTypes.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMNightTypes.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/PrismCore/Capture/PRMDepthCapture.swift (in target 'PrismCore' from project 'Prism')
cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
builtin-SwiftPerFileCompile PRMDepthCapture.swift
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
2026-10-12 14:37:38.167 xcodebuild[769:4686] [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\ PrismCore (in target 'PrismCore' from project 'Prism')
SwiftCompile normal arm64 (in target 'PrismCore' from project 'Prism')
Building workspace Prism with scheme Prism-Package
(3 failures)
BUILD FAILURE 6.4 tvOS