Сбой в UIApplication.isIdleTimerDisabled

#ios #uiapplication #idle-timer

#iOS #uiapplication #таймер простоя

Вопрос:

У меня есть опубликованное приложение, которому необходимо поддерживать отображение в течение длительного периода времени. Я использую UIApplication.isIdleTimerDisabled его для управления, устанавливая значение true, когда мне нужно включить отображение, и устанавливая значение false, когда оно больше не требуется.

Поскольку приложение распространяется через Apple App Store, я получаю отчеты при возникновении сбоев. Иногда я получаю отчет, который указывает на сбой в строке, куда я звоню UIApplication.shared.isIdleTimerDisabled = false , т. Е. Где я Восстанавливаю нормальное состояние дел после того, как экран был включен некоторое время. Ниже приведен снимок экрана трассировки стека.

введите описание изображения здесь

Я не могу воспроизвести проблему самостоятельно. Есть тысячи пользователей, которые загрузили и попробовали программу, и я получаю только одно или два сообщения о сбоях в неделю, поэтому проблема должна возникать из-за какого-то редко встречающегося набора условий. Отчеты о сбоях поступают с различных iPhone и iPad под управлением iOS 13 и 14.

Есть идеи?

Комментарии:

1. Есть ли сообщение о причине сбоя? Я подозреваю, что вам нужно отправить в основной поток, потому что управление отображением связано с пользовательским интерфейсом. Но поскольку это нелегко воспроизвести, я не уверен в этом ответе.

2. Возможно, вы правы. Я собираюсь завершить вызов в основном потоке и посмотреть, исчезнет ли он.

3. Это исключение NSException, вероятно, выдает какое-то полезное сообщение в журнале консоли приложения. Вы получаете их с отчетами о сбоях?