Приложение iPhone вылетает при запуске из Xcode, но не из iPhone - PullRequest
4 голосов
/ 10 июля 2010

У меня есть приложение, которое падает на iPhone, но только при запуске через Xcode.

Я вижу в журнале консоли iPhone, что приложение получает предупреждение о памяти, а затем появляются странные сообщения.события, подобные этим:

Sun Jul 11 00:03:43 Matts-iPhone com.apple.launchd[1] (UIKitApplication:com.mycom.myapp[0x3f60][5591]) <Notice>: (UIKitApplication:com.mycom.myapp[0x3f60]) Bug: launchd_core_logic.c:3270 (24132):0
Sun Jul 11 00:03:43 Matts-iPhone com.apple.debugserver-48[5590] <Warning>: 1 [15d6/1403]: error: ::read ( 6, 0x3809f4, 1024 ) => -1 err = Bad file descriptor (0x00000009)
Sun Jul 11 00:03:43 Matts-iPhone com.apple.launchd[1] (UIKitApplication:com.mycom.myapp[0x3f60][5591]) <Notice>: (UIKitApplication:com.mycom.myapp[0x3f60]) Bug: launchd_core_logic.c:2688 (24132):10
Sun Jul 11 00:03:43 Matts-iPhone com.apple.launchd[1] (UIKitApplication:com.mycom.myapp[0x3f60][5591]) <Notice>: (UIKitApplication:com.mycom.myapp[0x3f60]) Working around 5020256. Assuming the job crashed.
Sun Jul 11 00:03:43 Matts-iPhone com.apple.launchd[1] (UIKitApplication:com.mycom.myapp[0x3f60][5591]) <Warning>: (UIKitApplication:com.mycom.myapp[0x3f60]) Job appears to have crashed: Segmentation fault
Sun Jul 11 00:03:43 Matts-iPhone SpringBoard[40] <Warning>: Application 'Phone' exited abnormally with signal 9: Killed
Sun Jul 11 00:03:45 Matts-iPhone SpringBoard[40] <Warning>: Application 'myapp' exited abnormally with signal 11: Segmentation fault

Однако, когда я запускаю приложение с телефона (не через XCode), оно работает как положено.(Во время запуска появляется предупреждение о памяти. Я знаю, что он работает плотно, но восстанавливается и не падает).

Это особенно затрудняет отладку других проблем.

Есть ли у менянаткнулся на какую-то ошибку iOS?

Есть идеи?

Ответы [ 4 ]

7 голосов
/ 06 сентября 2010

Оказывается, в моем случае я забыл, что у меня все еще была установлена ​​переменная окружения "NSZombiesEnabled", которая увеличивала реальное использование памяти (вызывая сбой) при запуске из Xcode.При запуске непосредственно из Springboard эта переменная среды не была установлена, и приложение использовало намного меньше памяти.

Это очень полезно для отладки ... пока у вас не закончится память и вы не забудете, что она есть:)

2 голосов
/ 16 июля 2012

У меня тоже была эта проблема, и она была вызвана установкой Resupported 4 из Cydia.После того как я удалил его, мое приложение запустилось идеально.

2 голосов
/ 04 ноября 2011

Это случилось со мной и также было связано с установкой NSZombiesEnabled.В моем случае это было сделано в файле ~ / .gdbinit, который я забыл существовать.В Xcode флажок NSZombieEnabled был отключен, и в переменных среды схемы ничего не было установлено, поэтому это сводило меня с ума, пытаясь выяснить проблему.Мораль этой истории - убедиться, что она не установлена ​​ни в .gdbinit, ни в XCode.

0 голосов
/ 10 июля 2010

Обычно, когда вы видите сбой на симуляторе, но не на устройстве или наоборот, это указывает на ошибку с библиотекой, которая скомпилирована для одного оборудования, но не для другого.

Однако, если у вас недостаточно памяти, вы, вероятно, видите сбой, вызванный тонкими различиями между кодом, скомпилированным для Intel, и кодом, скомпилированным для ARM.Код Intel, вероятно, просто более чувствителен по некоторым причинам.Та же проблема в конечном итоге возникнет на устройстве, если вы оставите его работающим достаточно долго в условиях ограниченной памяти.

...