Can Critical Alerts Trigger Text-to-Speech and Vibration in Background & Terminated State?

Hello All,

I want to implement Text-to-Speech (TTS) and vibration functionality when a push notification arrives. In my app, I am already using Critical Alerts, and the critical alert sound plays correctly in all app states.

However, I need to confirm whether it is possible to trigger Text-to-Speech and custom vibration in all app states:

Foreground

Background

Terminated (killed) state

My Questions:

Is it technically possible for iOS to run Text-to-Speech (using AVSpeechSynthesizer) when a critical alert notification arrives in background or terminated state?

Is it possible to trigger custom vibration patterns from a critical alert when the app is not running?

If yes, can someone please provide guidance or sample code on how to implement this?

If no, can Apple explain the limitation or provide documentation confirming that TTS and vibration cannot be triggered in background/kill states?

What works currently:

TTS and vibration only work in foreground when the app is active.

Critical alert sound works correctly in all states.

I want confirmation on whether iOS supports background/terminated TTS and vibration, or if this is a platform restriction even when using Critical Alerts.

Thank you!

Apps cannot initiate any AV sessions while in the background, and definitely not when they are not running.

Critical alerts are handled by the system, and the app has no control over the sounds once the notification is created.

What you can do is, perform the TTS beforehand, create a sound file with the required speech, and use that sound file as the sound for the critical alert.

While you can technically do this in a Notification Service Extension - to create the sound file locally - it might be a practical challenge due to the memory and time limits imposed on extensions.

The solution I could suggest would be to have your push notification server to create the TTS sound file, pass on the URL for this sound file in the notification payload, and then have your Notification Service Extension to download this file and reconstruct the critical alert notification using the downloaded file.

If you want to try to create the sound file locally, you need to be aware of the 24MB total memory limit (including any system frameworks you will want to import) and 30 second processing time limit. These would be likely to be hit, so a server based TTS solution might save you time and frustration trying to make it work locally.

Can Critical Alerts Trigger Text-to-Speech and Vibration in Background & Terminated State?
 
 
Q