Сбой приложения, когда UIView добавляется в иерархию представлений, но только в производственных сборках (не в отладке)

У меня странная ошибка, которую очень сложно отладить:

  • Я создаю сложный UIView (в частности, UIScrollView) со многими подчиненными, а затем добавляю это в иерархию представлений в willRotateToInterfaceOrientation
  • Когда я отлаживаю, все работает хорошо
  • При компиляции для запуска и установке через TestFlight происходит сбой. На устройстве не найдены журналы сбоев об этом сбое!
  • Создание представления не приводит к сбою в рабочей сборке (проверено методом проб и ошибок), приложение вылетает только при добавлении в superview.

Подробная ситуация выглядит следующим образом: приложение написано расширением клавиатуры Swift, у меня есть портретная и альбомная версии клавиатуры, созданные заранее. В willRotateToInterfaceOrientation я удаляю отображаемую версию клавиатуры из ее суперпредставления и вместо этого добавляю другую. Это отлично работает в режиме отладки. В производственных сборках и пейзаж, и портрет будут хорошо отображаться. Только замена одного на другое во время вращения вызывает сбой (всегда).

Кто-нибудь сталкивался с подобной ситуацией? Любые идеи о том, как эффективно отлаживать или что может быть причиной?


person Rasto    schedule 05.04.2015    source источник
comment
Попробуйте изменить Swift Compiler Optimization на None в настройках сборки вашей цели.   -  person toofani    schedule 05.04.2015
comment
вы получили сбой по отчету клиента? Вы пытались подключить lldb, чтобы увидеть, что произошло? если вы не можете использовать lldb для воспроизведения, используйте что-то вроде crashlytics для записи журналов сбоев в полях   -  person Wingzero    schedule 05.04.2015


Ответы (1)


Вот что происходит в моем приложении, может кому пригодится:

Сбой вызван добавлением множества представлений в иерархию. Наверное не влезает в память или что-то в этом роде.

Странно то, что в режиме отладки этого не происходит. Еще одна странность заключается в том, что когда у меня 700 просмотров, это не вызывает сбоя, но удаление этих 700 из иерархии и добавление еще 700 вызывает сбой...

person Rasto    schedule 05.04.2015