iPhone 16 Pro Camera Preview freeze

Hi all, we are working on iOS application that includes the camera functionality. This week we have received a few customer complaints regarding the camera usage with iPhone 16/16 Pro, both of the customers said that they have an issue with the camera preview(when the camera is open) the camera preview is just freezer but any other functionally and UI works as expected. Moreover the issue happens only for back camera, the front camera works perfectly.

We have tested it in context of iOS 18 with iPhone 14/15/15 Pro/15 Pro Max but all devices with iOS 18 works perfectly without any issues. So we assumed there was no issues with iOS 18 but some breaking changes with the new iPhone 16/16 pro cameras were introduced that caused this effect. Unfortunatly, currently we can't test directly usign the iPhone 16/16 Pro since we have't these devices.

We are using SwiftUI framework and here the implementation of the camera preview:

VideoPreviewLayer

final class CameraPreviewView: UIView {
    var previewLayer: AVCaptureVideoPreviewLayer {
        guard let layer = layer as? AVCaptureVideoPreviewLayer else {
            fatalError("Layer expected is of type VideoPreviewLayer")
        }
        return layer
    }
    
    var session: AVCaptureSession? {
        get { return previewLayer.session }
        set { previewLayer.session = newValue }
    }
    
    override class var layerClass: AnyClass { AVCaptureVideoPreviewLayer.self }
}

UIKit -> SwiftUI

struct CameraRecordingView: UIViewRepresentable {
    
    @ObservedObject var cameraManager: CameraManager
    
    func makeUIView(context: Context) -> CameraPreviewView {
        let previewView = CameraPreviewView()
        previewView.session = cameraManager.session /// AVCaptureSession
        previewView.previewLayer.videoGravity = .resizeAspectFill
        return previewView
    }
    
    func updateUIView(_ uiView: CameraPreviewView, context: Context) {

    }
}

Setup camera input

private func saveInput(input: AVCaptureDevice) {
        /// Where input is AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back)

        do {
            let cameraInput = try AVCaptureDeviceInput(device: input)
            if session.canAddInput(cameraInput) {
                session.addInput(cameraInput) /// session is AVCaptureSession
            } else {
                sendError(error: .cannotAddInput)
                status = .failed
            }
        } catch {
            if error.nsError.code == -11852 {
                sendError(error: .microphoneError)
            } else {
                sendError(error: .createCaptureInput(error))
            }
            status = .failed
        }
    }

Does anybody have similar issues with iPhone 16/16 Pro? We would appreciate any ideas of how to potentially resolve the issue.

Hello @Vlad_K, I used the AVCam sample code project to test this on an iPhone 16 Pro running iOS 18. I was able to switch between the front and back cameras without issues. To investigate further, I would recommend trying to obtain a sysdiagnose from a device where the freezing issue can be reproduced, creating a bug report, and attaching the sysdiagnose to the bug report. Bug Reporting: How and Why? has tips on creating your bug report.

iPhone 16 Pro Camera Preview freeze
 
 
Q