Выпуск сборки iPhone рушится - PullRequest
1 голос
/ 30 марта 2010

Проект, над которым я работаю, падает при сборке с конфигурацией выпуска.

Нам нужно отправить приложение на рассмотрение Apple, и оно падает до того, как оно войдет в приложение.

Есть идеи, как это могло произойти?

В последнем сообщении, можно ли отправить в Apple отладочную версию приложения с некоторыми оптимизациями?

спасибо.

Ответы [ 4 ]

1 голос
/ 30 марта 2010

По моему опыту, 9 раз из 10 раздражающих, трудно отследить сбои в сборке без отладки или отладки чего-либо, iPhone или иным образом, вызвано ошибкой управления памятью. Я бы положил деньги на вашу проблему, вызванную неправильным размещением или сохранением сообщения, или его отсутствием. Если вы еще не пробовали, включите статический анализатор в вашей конфигурации отладочной сборки (мой XCode обновляется прямо сейчас, но я считаю, что если вы ищете «analyzer» или «clang» в свойствах вашей сборки, вы должны найти соответствующие настройки) и посмотреть, если это указывает на что-то говорящее. Если этого не произойдет, вы можете использовать инструменты, чтобы помочь вам проверить наличие проблем, а также попытаться изолировать проблемную область в отладчике.

Это может помочь вам воспроизвести проблему в сборке, которой нет на самом деле, изменив конфигурацию отладки или продублировав ее, чтобы использовать другой набор флагов компилятора, который более точно согласуется с тем, что происходит в сборке выпуска ( Я не помню, какие различия находятся у меня в голове, но я бы предположил, что добавление «-O2» к вашим флагам компилятора поможет вам в этом.)

1 голос
/ 30 марта 2010

То же самое произошло со мной при создании моего первого приложения для iPhone - после некоторой работы над проектом при переключении из режима отладки в выпуск произойдет сбой.Я сделал полную чистую перестройку проекта, удалил приложение с тестового телефона и переустановил его, и приложение запустилось.Похоже, что XCode иногда не очищает / перестраивает все, что ему нужно.

0 голосов
/ 30 марта 2010

Вы должны посмотреть на свои Журналы сбоев. Откройте «Органайзер», выберите свое устройство и перейдите на вкладку «Crash Log». Прокрутите вниз, чтобы найти журналы вашего приложения. Символ должен быть обозначен символом, чтобы вы могли видеть трассировку стека.

Без отладки вашего приложения очень сложно сказать больше. Используете ли вы макросы #ifdef DEBUG? Вы используете более одного потока? Если у вас есть несколько операторов NSLog, которые замедляют выполнение в режиме отладки, это может привести к небольшим временным различиям, которые могут повлиять на многопоточные приложения.

Вы пробовали 'make clean' в своей отладочной версии? Иногда скрытые ошибки могут быть скрыты, когда части вашего проекта перестраиваются, в то время как другие части остаются неизменными.

0 голосов
/ 30 марта 2010

При сборке с выпуском конфигурации убедитесь, что у вас есть копия файла .dSYM и комплекта приложений.

Затем, когда приложение падает на устройстве, подключите его к Xcode и загрузите отчеты о сбоях.

Откройте XCode, а затем откройте Организатор из XCode. Оттуда вы можете просматривать отчеты о сбоях с устройства.

Отчеты о сбоях будут символизированы, если (и только если) вы сохранили файл .dSYM и комплект приложений.

Затем вы можете использовать отчеты о сбоях, чтобы выяснить причину сбоя и исправить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...