Search code examples
ioscamera

Multitasking Camera Access Entitlement took very long times to response


I am developing chat/video call app, then I want to camera continue to running when app in background.

Then I send request to get Multitasking Camera Access Entitlement

After request, i got the mail response:

Dear Developer,

Your request to use the Multitasking Camera Access Entitlement has been received. We'll review your information and contact you soon with a status update.

Best regards,
Multitasking Camera Access Requests Team

But I never get the accepted, even I request 3 times, first times from 1 years ago.

Does someone meet same problem?


Solution

  • Switching to a minimum deployment target of iOS 16 should get around the problem. That is because the requirements have been removed according to https://developer.apple.com/documentation/avfoundation/capture_setup/accessing_the_camera_while_multitasking

    The documentation is not completely accurate because it only works for iPads with Stage Manager available.

    Here is an example app:

    import Foundation
    import AVKit
    
    /// Camera Permission Check
    /// Requires iPad with Stage Manager Support
    /// e.g. iPad Pro (11-inch) 4th generation with iOS 16.1
    ///
    /// Containing app must have iOS deployment target 16.0
    class CameraPermissionCheck {
        
        let captureSession = AVCaptureSession()
        init() {
            // Configure the capture session.
            captureSession.beginConfiguration()
            if captureSession.isMultitaskingCameraAccessSupported {
                // Enable using the camera in multitasking modes.
                captureSession.isMultitaskingCameraAccessEnabled = true
                print("MultiTasking Camera Access Enabled")
            }
            captureSession.commitConfiguration()
    
            // Start the capture session.
            DispatchQueue.global().async {
                self.captureSession.startRunning()
            }
        }
    }
    

    It will print out MultiTasking Camera Access Enabled to the console.