Приложение .NET MAUI iOS завершается в фоновом режиме с сообщением «RUNNINGBOARD 0xdead10cc» (EXC_CRASH SIGKILL) при испIOS

Программируем под IOS
Ответить
Anonymous
 Приложение .NET MAUI iOS завершается в фоновом режиме с сообщением «RUNNINGBOARD 0xdead10cc» (EXC_CRASH SIGKILL) при исп

Сообщение Anonymous »

У меня есть приложение .NET MAUI iOS, которое периодически завершается системой, когда оно находится в фоновом или приостановленном состоянии. Это никогда не происходит при активном использовании приложения. Единственная доступная информация — из журналов сбоев Xcode.
В журнале сбоев показано:

Код: Выделить всё

Exception Type:  EXC_CRASH (SIGKILL)
Termination Reason: RUNNINGBOARD 0xdead10cc
Что приложение делает в фоновом режиме
Мы используем тихие push-уведомления (

Код: Выделить всё

content-available = 1
)[/b] для обновления локальной базы данных SQLite.
При получении тихого push-уведомления мы:
• Анализируем полезную нагрузку

• Обновляем базу данных SQLite (sqlite-net / SQLCipher)

• Завершаем работу в фоновой задаче ниже: UIApplication.SharedApplication.BeginBackgroundTask

Код: Выделить всё

UIApplication.SharedApplication.EndBackgroundTask
У нас также есть Расширение службы уведомлений, но оно обеспечивает доступ только для чтения только для подготовки видимого содержимого уведомлений. Он не изменяет схему базы данных и не выполняет интенсивную запись.
Что я обнаружил в ходе исследования
Из технических заметок Apple и многочисленных отчетов разработчиков 0xdead10cc указывает на то, что ОС завершает работу приложения, если она все еще удерживает блокировку файла или SQLite, когда приложение приостановлено. (Блог Iconfactory)
Некоторые разработчики также наблюдали, что это происходит, когда фоновые задачи завершаются некорректно или дескрипторы базы данных/файла остаются открытыми во время приостановки. (Блог Iconfactory)
Кроме того, совместное использование баз данных SQLite или доступ к ним в приложениях и расширениях может повысить вероятность прекращения работы, если дескрипторы файлов остаются открытыми во время приостановки. (Несущественно)
Вопросы
  • Что потенциально может быть причиной завершения завершения RUNNINGBOARD 0xdead10cc на iOS?
  • Достаточно ли UIApplication.BeginBackgroundTask при обработке бесшумного нажатия + записи SQLite или существует рекомендуемый шаблон на iOS/ .NET MAUI?
  • Может ли это завершение произойти, даже если EndBackgroundTask вызывается правильно?
  • Есть ли доступ к базе данных только для чтения из расширения службы уведомлений, который все еще рискует вызвать это?
  • Существуют ли рекомендуемые стратегии для обеспечения полного закрытия/очистки SQLite перед приостановкой?
Эту проблему трудно воспроизвести локально, и она появляется только в журналах сбоев рабочей среды, поэтому мы будем признательны за любые рекомендации от разработчиков, которые решили эту проблему.


Подробнее здесь: https://stackoverflow.com/questions/798 ... 10cc-exc-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»