Granting Microphone Access through in-app authorisation request on the VisionOS 2.4 Simulator causes it to crash

When requesting authorisation to gain access to the user's microphone in the visionOS 2.4 simulator, the simulator crashes upon the user clicking allow. Using Swift 6, code below.

Bug Report: FB17667361

@MainActor
private func checkMicrophonePermission() async {
    logger.debug("Checking microphone permissions...")
    
    // Get the current permission status
    let micAuthStatus = AVAudioApplication.shared.recordPermission
    logger.debug("Current Microphone permission status: \(micAuthStatus.rawValue)")
    
    if micAuthStatus == .undetermined {
        logger.info("Requesting microphone authorization...")
        
        // Use structured concurrency to wait for permission result
        let granted = await withCheckedContinuation { continuation in
            AVAudioApplication.requestRecordPermission() { allowed in
                continuation.resume(returning: allowed)
            }
        }
        logger.debug("Received microphone permission result: \(granted)")
        
        // Convert to SFSpeechRecognizerAuthorizationStatus for consistency
        let status: SFSpeechRecognizerAuthorizationStatus = granted ? .authorized : .denied
        
        // Handle the authorization status
        handleAuthorizationStatus(status: status, type: "Microphone")
        
        // If granted, configure audio session
        if granted {
            do {
                try await configureAudioSession()
            } catch {
                logger.error("Failed to configure audio session after microphone authorization: \(error.localizedDescription)")
                self.isAvailable = false
                self.processingError = .audioSessionError(description: "Failed to configure audio session after microphone authorization")
            }
        }
    } else {
        // Convert to SFSpeechRecognizerAuthorizationStatus for consistency
        let status: SFSpeechRecognizerAuthorizationStatus = (micAuthStatus == .granted) ? .authorized : .denied
        handleAuthorizationStatus(status: status, type: "Microphone")
        
        // If already granted, configure audio session
        if micAuthStatus == .granted {
            do {
                try await configureAudioSession()
            } catch {
                logger.error("Failed to configure audio session for existing microphone authorization: \(error.localizedDescription)")
                self.isAvailable = false
                self.processingError = .audioSessionError(description: "Failed to configure audio session for existing microphone authorization")
            }
        }
    }
}

This seems to be happening on iOS 24 as well. Calling AVAudioApplication.shared.recordPermission crashes the app in simulator.

Granting Microphone Access through in-app authorisation request on the VisionOS 2.4 Simulator causes it to crash
 
 
Q