fix: Fix build on Xcode 14 (#2033)

* fix: Fix build on Xcode 14

* Format

* Make CI run on `macOS-latest`

* Nested if
This commit is contained in:
Marc Rousavy 2023-10-18 18:25:30 +02:00 committed by GitHub
parent 9573ae19cb
commit 2666ac53a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 19 deletions

View File

@ -21,7 +21,7 @@ on:
jobs:
build:
name: Build iOS Example App
runs-on: macOS-13
runs-on: macOS-latest
defaults:
run:
working-directory: package/example/ios
@ -80,7 +80,7 @@ jobs:
build-no-frame-processors:
name: Build iOS Example App without Frame Processors
runs-on: macOS-13
runs-on: macOS-latest
defaults:
run:
working-directory: package/example/ios

View File

@ -27,7 +27,7 @@ jobs:
env:
WORKING_DIRECTORY: ios
SwiftFormat:
runs-on: macOS-13
runs-on: macOS-latest
defaults:
run:
working-directory: ./package/ios

View File

@ -38,13 +38,15 @@ class CameraDevicesManager: RCTEventEmitter {
override func constantsToExport() -> [AnyHashable: Any]! {
let devices = getDevicesJson()
let preferredDevice: [String: Any]?
if #available(iOS 17.0, *),
let userPreferred = AVCaptureDevice.userPreferredCamera {
preferredDevice = userPreferred.toDictionary()
} else {
preferredDevice = devices.first
}
let preferredDevice = devices.first
#if swift(>=5.9)
if #available(iOS 17.0, *) {
if let userPreferred = AVCaptureDevice.userPreferredCamera {
preferredDevice = userPreferred.toDictionary()
}
}
#endif
return [
"availableCameraDevices": devices,

View File

@ -32,20 +32,26 @@ extension AVCaptureOutput {
func setOrientation(_ orientation: Orientation) {
// Set orientation for each connection
connections.forEach { connection in
if #available(iOS 17.0, *) {
// Camera Sensors are always in landscape rotation (90deg).
// We are setting the target rotation here, so we need to rotate by landscape once.
let cameraOrientation = orientation.rotateBy(orientation: .landscapeLeft)
let degrees = cameraOrientation.toDegrees()
#if swift(>=5.9)
if #available(iOS 17.0, *) {
// Camera Sensors are always in landscape rotation (90deg).
// We are setting the target rotation here, so we need to rotate by landscape once.
let cameraOrientation = orientation.rotateBy(orientation: .landscapeLeft)
let degrees = cameraOrientation.toDegrees()
if connection.isVideoRotationAngleSupported(degrees) {
connection.videoRotationAngle = degrees
if connection.isVideoRotationAngleSupported(degrees) {
connection.videoRotationAngle = degrees
}
} else {
if connection.isVideoOrientationSupported {
connection.videoOrientation = orientation.toAVCaptureVideoOrientation()
}
}
} else {
#else
if connection.isVideoOrientationSupported {
connection.videoOrientation = orientation.toAVCaptureVideoOrientation()
}
}
#endif
}
}
}