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