Подтвердить что ты не робот

Событие удаленного управления, вызывающее закрытие фонового приложения iOS

Мое приложение воспроизводит фоновое аудио с использованием AVAudioPlayer и получает события дистанционного управления от iOS. Все работает нормально во время воспроизведения звука, но если звук приостановлен, и мое приложение перемещено в фоновый режим, произойдет что-то странное. Если я использую устройство bluetooth для возобновления/отключения звука через 10 минут, iOS завершает мое приложение со следующим сообщением:

<MyApp>[633] has active assertions beyond permitted time:
{(
     <SBProcessAssertion: 0x25f520> identifier: com.apple.mediaremote.sendremotecommand process: <MyApp>[633] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:58
)}

В этом есть две очень странные вещи.

  • iOS не выключит мое приложение прямо на отметке 10 минут. Он выполнит это только после получения команды дистанционного управления через Bluetooth.

  • Если я использую кнопки дистанционного управления iOS или пульт дистанционного управления в наушниках, мое приложение возобновит воспроизведение звука без проблем.

Я не могу понять, почему сообщение с дистанционным управлением Bluetooth приведет к тому, что iOS завершит мое приложение. Я смог подтвердить, что приложение Pandora, похоже, не имеет аналогичной проблемы.

Кто-нибудь знает об этом?

Обновление. Дальнейшее тестирование показывает более четкое описание ошибки. Похоже, что это принудительное крах iOS приложения происходит при попытке возобновить фоновый звук после того, как звук был приостановлен на 10 минут или более, и приложение испытало предупреждение о низкой памяти.

Для воспроизведения ошибки необходимо выполнить следующие шаги:

  • Либо приостановите звук приложения, а затем отправьте его на задний план (нажмите домашнюю кнопку или переключитесь на другое приложение) или приостановите звук приложения, когда он находится в фоновом режиме
  • Причина, по которой приложение испытывает предупреждение о низкой памяти (либо имитированное, либо реальное)
  • После 10 минут попытки воспроизведения звука с использованием события дистанционного управления, запускаемого с устройства, такого как устройство Bluetooth или док-станция для динамиков, и т.д.

Примечание. Кажется, что iOS приводит к сбою приложения, когда последнее событие дистанционного управления инициируется с внешнего устройства, такого как устройство Bluetooth, док-станция или автомобильный адаптер. Использование iOS встроенного "пульта дистанционного управления" или пульта дистанционного управления в наушниках не вызывает сбоя.

Как упоминал Джордж в комментариях, я смог воспроизвести это со своим собственным App, Pandora и, по крайней мере, одним другим звуковым приложением. Я опубликовал отчет об ошибке с Apple.

4b9b3361