Последние 8+ месяцев в моем приложении происходил сбой. Хотя я горжусь тем, что могу отлаживать и исправлять что угодно, мне ни разу не удалось воспроизвести этот сбой. Поскольку это код, который выполняется МНОГО, и я вижу только случайные сбои 2-3 раза в неделю, о которых сообщается, моя интуиция подсказывает, что это проблема с многопоточной синхронизацией с «чем-то». Я внес множество изменений в код, пытаясь это исправить, но по состоянию на эту неделю проблема остается.
Хотелось бы точно знать, почему указанная строка кода в AVFoundation выдает ошибку. внутреннее исключение или как я могу найти этот ответ самостоятельно. Ниже приведена соответствующая часть трассировки стека. Поделиться самим кодом нереально, поэтому надеемся, что это станет для кого-то сигналом.
В качестве фона это приложение для музыкального проигрывателя. Этот код выполняется при нажатии кнопки воспроизведения в приложении (т. е. он МНОГО работает правильно). Непосредственно перед этим было проведено тестирование
Код: Выделить всё
audioEngine.isRunningКод: Выделить всё
TRUEКод: Выделить всё
AVAudioPlayerNodeКод: Выделить всё
Hardware Model: iPhone16,2
AppVariant: 1:iPhone16,2:17
Code Type: ARM-64 (Native)
Role: Background
Date/Time: 2024-03-05 11:03:12.9509 +1000
Launch Time: 2024-03-02 18:01:24.2495 +1000
OS Version: iPhone OS 17.3.1 (21D61)
Release Type: User
Baseband Version: 1.40.01
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: SIGNAL 6 Abort trap: 6
Triggered by Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x1b0a8a678 __exceptionPreprocess + 164 (NSException.m:249)
1 libobjc.A.dylib 0x1a8d07c80 objc_exception_throw + 60 (objc-exception.mm:356)
2 CoreFoundation 0x1b0b0f424 +[NSException raise:format:arguments:] + 96 (NSException.m:0)
3 AVFAudio 0x1c9dd2d74 AVAE_RaiseException(NSString*, ...) + 52 (AVAEInternal.h:69)
4 AVFAudio 0x1c9eaed5c AVAudioPlayerNodeImpl::StartImpl(AVAudioTime*) + 2524 (AVAudioPlayerNode.mm:660)
5 AVFAudio 0x1c9dd31e4 AVAudioNodeImplBase::Start(AVAudioTime*) + 64 (AVAudioNodeImpl.h:176)
6 AVFAudio 0x1c9eab440 -[AVAudioPlayerNode play] + 68 (AVAudioPlayerNode.mm:1138)
Источник: https://stackoverflow.com/questions/781 ... -avaudiopl
Мобильная версия