Приложение сразу падает на iOS 3.x при компиляции с конфигурацией сборки выпуска - PullRequest
0 голосов
/ 24 сентября 2010

Я столкнулся с довольно "загадочной" проблемой. Мое приложение отлично работает со всеми конфигурациями сборки на устройствах под управлением iOS 4.x, но происходит сбой на iPhone под управлением iOS 3.x сразу после запуска, но только при компиляции с конфигурацией выпуска. С отладочным конфигом он работает без проблем.

Я потратил много времени на выяснение возможной причины этого, но пока мне не повезло. Я использую XCode 3.2.4 с базовым SDK iOS 4.1, используя LLVM GCC компилятор. Согласно журналу сбоев, приложение вылетает в первой строке кода в applicationDidFinishLaunching: реализация метода, где вызывается не что иное, как простой [[SomeObject alloc] init], сообщая EXC_BAD_ACCES, указывая, что метод alloc не выделил экземпляр правильно (?) .

Когда я переключаюсь на компилятор GCC 4.2, журнал сбоев сообщает о совершенно другом месте возникновения сбоев, но я предполагаю, что это совершенно то же самое ...

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

Спасибо за любую помощь.

1 Ответ

1 голос
/ 10 декабря 2010

Используете ли вы компилятор LLVM для сборки выпуска? По моему опыту, компилятор LLVM будет слабо связывать вызовы API. Это позволяет запускать приложение 3.x, даже если оно имеет вызовы API 4.x, если эти вызовы никогда не выполняются. 3.x приложения, скомпилированные с GCC, будут аварийно завершать работу при запуске, когда динамический загрузчик пытается разрешить API 4.x.

...