Приложение работает на iPhone 3GS, но вылетает на iPhone 3G при запуске - PullRequest
2 голосов
/ 23 июня 2010

Я разработал приложение с Xcode 3.2.3 и iPhone SDK 4.0. Он отлично работает как на iPhone 3GS, так и на 3G, если я запускаю его непосредственно в Xcode.

Однако, если я загружаю и устанавливаю приложение из App Store, оно падает на экране запуска iPhone 3G и iPod touch 3G. Но он работает на iPhone 3GS с ОС 3.1.3 или iOS 4.0.

Журнал устройства показывает следующее:

Exception Type:  EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x00000001, 0x00000000

Crashed Thread:  0    

Thread 0 Crashed:
0   Dove                0x000762aa +[TTNavigator navigator] (TTNavigator.m:59)
1   Dove                0x000035ce -[Around01AppDelegate applicationDidFinishLaunching:] (Around01AppDelegate.m:85)
2   UIKit               0x00004e88 -[UIApplication _performInitializationWithURL:sourceBundleID:] + 540
3   UIKit               0x00004a60 -[UIApplication _runWithURL:sourceBundleID:] + 576
4   UIKit               0x00055df8 -[UIApplication handleEvent:withNewEvent:] + 1516
5   UIKit               0x00055634 -[UIApplication sendEvent:] + 60
6   UIKit               0x0005508c _UIApplicationHandleEvent + 4528
7   GraphicsServices    0x00005988 PurpleEventCallback + 1044
8   CoreFoundation      0x00057524 CFRunLoopRunSpecific + 2296
9   CoreFoundation      0x00056c18 CFRunLoopRunInMode + 44
10  UIKit               0x00003c00 -[UIApplication _run] + 512
11  UIKit               0x00002228 UIApplicationMain + 960
12  Dove                0x00003086 main (main.m:26)
13  Dove                0x00002ec8 start + 44

Ответы [ 4 ]

2 голосов
/ 01 июля 2010

Я понял это, обратившись к информации на этой странице: http://useyourloaf.com/blog/2010/4/21/xcode-build-active-architecture-only.html

Если вы используете какие-либо сторонние библиотеки, следует перекомпилировать все их, используя те же настройки проекта, что и в вашем собственном проекте.

В моем случае Базовый SDK: iOS 4.0, Цель развертывания: 3.0, и убедитесь, что вы сняли флажок «Build Active Architecture Only»

2 голосов
/ 23 июня 2010

У вас неправильная настройка архитектуры в вашей версии Release. Если вы хотите развернуть на iPod touch 3G и 2008, вы должны создать инструкции для arm6 и arm7. Вы, вероятно, создаете только оптимизированный бинарный файл arm7. Добавьте архитектуру arm6 в конфигурацию выпуска и повторите попытку.

1 голос
/ 29 сентября 2010

Сбой запуска является результатом неправильной архитектуры зависимостей и вашего проекта.У меня была похожая проблема с моим проектом.Мой проект работал нормально на Debug iPhone 3G и сбой Release iPhone 3G.Тем не менее, он отлично работал на iPad и iPhone 4 в Debug / Release.

У меня была библиотека, которую я строил с помощью Debug (Standard armv6, armv7) и Release (Optimized armv7).Основной проект был построен с использованием Standard (armv6, armv7) для Debug / Release.Это несоответствие архитектуры вызвало сбой в выпуске iPhone 3G.Причина этого сбоя заключается в том, что iPhone 3G должен использовать armv6, а iPhone 4 и iPad могут использовать armv7.

run
Running…
[Switching to thread 11523]
[Switching to thread 11523]
sharedlibrary apply-load-rules all
continue
Program received signal:  “EXC_BAD_ACCESS”.
warning: check_safe_call: could not restore current frame

warning: Unable to restore previously selected frame.
warning: Unable to restore previously selected frame.
warning: Unable to restore previously selected frame.
warning: Unable to restore previously selected frame.
warning: Unable to restore previously selected frame.
(gdb) 

Чтобы устранить эту проблему, измените «Архитектуры» целевого объекта библиотеки iPhone на использование Standard (armv6,armv7) для «Все конфигурации».

0 голосов
/ 29 октября 2010

Эй, вы упомянули об использовании библиотеки Facebook Three20.У нас была точно такая же проблема - сбой приложения с EXC_BAD_ACCESS только в дистрибутиве appstore |Выпуск конфигурации, ТОЛЬКО на iPhone 3G / iPod touch 2G, но отлично работает на iPhone 3GS и iPad.Оказалось, что мы использовали библиотеку JSON, встроенную в Three20, и именно эта библиотека была причиной.Проблема решена загрузкой новой версии библиотеки JSON (по-видимому, с исправленной ошибкой) в нашем случае.

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