I'm getting Crashlytics crashes from some my users, deep in the Apple code:
Crashed: AXSpeech
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x00000007ec54b360
0 libobjc.A.dylib 0x3c9c objc_retain_x8 + 16
1 AudioToolboxCore 0x99580 auoop::RenderPipeUser::~RenderPipeUser() + 112
2 AudioToolboxCore 0xe6090 -[AUAudioUnit_XPC internalDeallocateRenderResources] + 92
3 AVFAudio 0x90a0 AUInterfaceBaseV3::Uninitialize() + 60
4 AVFAudio 0x4cbe0 AVAudioEngineGraph::PerformCommand(AUGraphNodeBaseV3&, AVAudioEngineGraph::ENodeCommand, void*, unsigned int) const + 768
5 AVFAudio 0x56b0c AVAudioEngineGraph::_Uninitialize(NSError**) + 132
6 AVFAudio 0x7834 AVAudioEngineImpl::Stop(NSError**) + 388
7 AVFAudio 0x636c -[AVAudioEngine dealloc] + 52
8 TextToSpeech 0x30674 _TTSNameForVoiceInformation + 20864
9 libobjc.A.dylib 0x20a4 object_cxxDestructFromClass(objc_object*, objc_class*) + 116
10 libobjc.A.dylib 0x6e00 objc_destructInstance + 80
11 libobjc.A.dylib 0x104fc _objc_rootDealloc + 80
12 TextToSpeech 0x2d2f4 _TTSNameForVoiceInformation + 7680
13 TextToSpeech 0x496c TTSVocalizerCopyURLForFallbackResource + 8540
14 TextToSpeech 0x26094 TTSSpeechUnitTestingMode + 5548
15 libAXSpeechManager.dylib 0x108b0 -[AXSpeechManager .cxx_destruct] + 192
16 libobjc.A.dylib 0x20a4 object_cxxDestructFromClass(objc_object*, objc_class*) + 116
17 libobjc.A.dylib 0x6e00 objc_destructInstance + 80
18 libobjc.A.dylib 0x104fc _objc_rootDealloc + 80
19 libAXSpeechManager.dylib 0x5298 -[AXSpeechManager dealloc] + 268
20 Foundation 0x3b8a4 __NSThreadPerformPerform + 272
21 CoreFoundation 0xd3208 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
22 CoreFoundation 0xdf864 __CFRunLoopDoSource0 + 176
23 CoreFoundation 0x646c8 __CFRunLoopDoSources0 + 244
24 CoreFoundation 0x7a1c4 __CFRunLoopRun + 828
25 CoreFoundation 0x7f4dc CFRunLoopRunSpecific + 612
26 Foundation 0x420c4 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
27 libAXSpeechManager.dylib 0x13390 -[AXSpeechThread main] + 552
28 Foundation 0x5b634 __NSThread__start__ + 716
29 libsystem_pthread.dylib 0x16b8 _pthread_start + 148
30 libsystem_pthread.dylib 0xb88 thread_start + 8
It's most likely related to my use of AVSpeechSynthesizer. I do change some of the utterance fields, including the voice that's being used (which is set to a value from speechVoices()).
UtilAudioIos_tts = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance
utterance.voice = AVSpeechSynthesisVoice(identifier: voice.voiceCode)
utterance.volume = volume
utterance.pitchMultiplier = pitch
utterance.rate = rate
UtilAudioIos_tts!.speak(utterance)
By coincidence or not, the following sometimes appears in the device log:
2023-05-30 20:35:29.948078+0100 <appname>[466:12882] [catalog] Unable to list voice folder
and also, sometimes:
2023-05-30 20:37:35.345933+0100 <appname>[466:13298] [catalog] Query for com.apple.MobileAsset.VoiceServices.VoiceResources failed: 2
2023-05-30 20:37:35.360854+0100 rehearserfree[466:13433] [AXTTSCommon] MauiVocalizer: 11006 (Can't compile rule): regularExpression=\Oviedo(?=, (\x1b\\pause=\d+\\)?Florida)\b, message=unrecognized character follows \, characterPosition=1
2023-05-30 20:37:35.363163+0100 <appname>[466:13433] [AXTTSCommon] MauiVocalizer: 16038 (Resource load failed): component=ttt/re, uri=, contentType=application/x-vocalizer-rettt+text, lhError=88602000
2023-05-30 20:37:35.363182+0100 <appname>[466:13433] [AXTTSCommon] Error loading rules: 2147483648
All of these crashes have been on the various versions of iOS 16.
Edit: I can't reproduce the crash myself - it's just some (not all) app users. The log entries above appear locally on my device (with no crash) but I can't see the logs of the users who have the crashes.
Any idea what this might be caused by, or how to go about tracking the problem down?
Selecting any option will automatically load the page