2015-04-05 6 views
0

У меня возникли странные ошибки, что очень трудно отлаживать:App падает, когда UIView добавляется к иерархии взглядов, но только в производстве строит (не в отладке)

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

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

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

+0

Попробуйте изменить Swift Compiler Optimization на None в настройках сборки вашей цели. – toofani

+0

Вы получили сообщение об аварии? вы пытались подключить lldb, чтобы узнать, что произошло? если вы не можете использовать lldb для воспроизведения, используйте что-то вроде crashlytics для захвата журналов сбоев в полях – Wingzero

ответ

0

Вот что происходит в моем приложении, может быть, кто-то будет полезно:

Катастрофа вызвана добавлением многих взглядов в иерархию. Вероятно, это не вписывается в память или что-то в этом роде.

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