Ответ 1
Обязательно создайте свое приложение в режиме выпуска, а не в Debug. Приложение может сбой только в Release.
Мы используем TestFlight для отправки пилотов нашего приложения.
Там есть часть приложения, которое рушится, и у нас было много проблем с воспроизведением сбоя. Код их довольно прост.
Оказывается, пользователи, которые получили приложение через TestFlight, получают сбой, а если вы создаете приложение и устанавливаете его с помощью IDE, это не сбой!
У кого-нибудь есть идеи о том, что может быть причиной этого?
Любые идеи для обходных решений? Мы не хотим прекращать использование TestFlight.
Обязательно создайте свое приложение в режиме выпуска, а не в Debug. Приложение может сбой только в Release.
Первое, что я попробую, - сопоставить трассировку стека краха с именами функций в вашем приложении. Это может дать полезную информацию о характере аварии:
Ручная символика: Это будет работать до тех пор, пока ваши сборки будут иметь отладочную информацию.
Выполните следующую команду в исполняемом файле (Payload/AppName.app/AppName):
otool -tv AppName.app | С++ filt > listing.asm
Подождите, пока предыдущий шаг завершится (может занять некоторое время). Сгенерированный файл listing.asm будет содержать несколько мегабайт.
Конечно, если вы можете символизировать, вы можете пропустить эту процедуру.
Удаленная отладка!
У нас была аналогичная проблема. Проблема с нами была в статических библиотеках. Когда мы построили приложение с нуля и отправились в testflight, он рушился, но из IDE он не был. Сбой произошел из-за того, что статические библиотеки не включались при создании сборки, но включались, если я подключил iPad direct и использовал XCode для установки.
Простой тест докажет это: -
1.) Вместо того, чтобы строить из IDE, создайте файл .app, а затем загрузите его через iTunes и проверьте, не получилось ли вы сбой.
Мы работали над этим, создавая .iPA вручную, создавая .app, затем создавая папку Payload и помещая в нее .app, а также info.plist.
Затем все стало работать и в Testflight.