Почему мой AUv3 случайно исчезает с "viewServiceDidTerminateWithError"? - PullRequest
0 голосов
/ 09 апреля 2019

Я столкнулся со странной проблемой при разработке iOS AUv3 Instrument, из-за которой у меня возникают проблемы с поиском информации.Я потратил пару недель, пытаясь отладить это, и мне было интересно, сталкивался ли кто-нибудь еще с этим.Это больше похоже на «ОС убила приложение», чем на сбой, поэтому я свободно использую термин «сбой».Вот признаки:

  • Кажется, что это никогда не происходит при первоначальной реализации;это когда проект перезагружается.Но вы можете закомментировать setFullState, и это все равно произойдет.

  • «Авария» противоречива.Подобно множеству скользких ошибок, оно начинает происходить последовательно, а затем перестает происходить полностью.Когда это происходит, изначально кажется, что он загружается нормально: представление загружается и выглядит правильно, и оно производит звук.Но через пару секунд вид плагина исчезает и перестает воспроизводить звук.Я вижу это в журнале консоли: viewServiceDidTerminateWithError :: Error Domain = _UIViewServiceInterfaceErrorDomain Code = 3 "(null)" UserInfo = {Message = Соединение с службой прервано}

  • Вам не нужногенерировать любые события MIDI, чтобы разбить его.Это может произойти сбой даже после того, как я закомментировал блок обработки.

Если у кого-то есть какие-либо идеи, в том числе как получить полезную информацию об отладке из этой ситуации, дайте мне знать!

  • Я пытался просмотреть журналы сбоев, но журналы сбоев не генерировались

  • didReceiveMemoryWarning не отключается.На самом деле, я провел эксперимент, в котором я выделил 100 мегабайт и memset'd его при запуске, и он не вылетел.

  • Я попытался подключить отладчик, но он идет из«Нет сеанса отладки» до «ожидания подключения» после сбоя - ни в коем случае он не подключается.Он будет прикреплен, если я потом перезагружу плагин, но тогда он не рухнет.Инструменты Zombies и Leaks ничего не выявили, как и дезинфицирующие средства памяти.

  • Использование раскадровки вместо XIB не изменило поведение (не знаю почему, ноэто было одно из последних различий между этим и примером Apple).

Я создал очень крошечный пример проекта, в котором обнаружена проблема (к сожалению, я не могу опубликовать какой-либо код, который показывает проблемупотому что я не могу найти, где именно код проблемы - может быть, это даже настройка проекта?).Он имеет минимальный графический интерфейс, не имеет setFullState и генерирует белый шум: https://drive.google.com/open?id=1dw3xTHn3qY411eXLaIb_9_S5PAtrr5Nk

Ожидается: он не падает или не исчезает случайно

Фактические результаты: после перезагрузки файла проекта, который использует этоAUv3, плагин исчезнет через несколько секунд.Сначала он воспроизводит звук нормально, а графический интерфейс выглядит нормально, но затем исчезает.

...