Flurry API сбой iPhone симулятор - PullRequest
4 голосов
/ 07 ноября 2011

У меня происходит сбой приложения с использованием симуляторов iPhone iOS5 и iOS4.3 в Xcode 4.2, трассировка стека показывает сигнал BAD_ACCESS в методе [FlurryAPI stopBackgroundTask].

В то время как в симуляторе iOS4.3 происходит сбой приложения только при отправке приложения в фоновый режим, в iOS5 происходит сбой всегда. Я прилагаю изображение отладочного навигатора, показывающее поток, где происходит BAD_ACCESS.

С другой стороны, приложение работает нормально, используя реальное устройство.

Любые идеи о том, как я могу получить больше информации о том, что происходит и почему это происходит?

enter image description here

Ответы [ 3 ]

7 голосов
/ 30 января 2012

Я обошел эту проблему, добавив следующее в didFinishLaunchingWithOptions

#if TARGET_IPHONE_SIMULATOR
        [FlurryAnalytics setSessionReportsOnPauseEnabled:NO];
#endif
2 голосов
/ 13 августа 2012

Flurry Analytics не запускается, кроме основного потока.Может произойти сбой в фоновом потоке.

1 голос
/ 08 ноября 2011

Похоже, у вас есть зомби - у вас есть ситуация, когда вы используете код после того, как вы его выпустили. Число сохранений достигает нуля, поэтому система освобождает и повторно использует память, после чего вы вносите изменения с помощью исходной ссылки. Теперь у вас есть две разные ссылки на одну и ту же память, каждая из которых ожидает, что там будет другой объект. В вашем случае одна из ссылок находится в пределах суматохи.

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

Включить NSZombie и запустить в отладчике. Если вам повезет, он даст вам объект и точку, которую он использовал после освобождения.

Включить NSZombie: меню «Продукт», «Редактировать схему ...», «Выполнить», вкладка «Диагностика», поставить галочку «Включить объекты-зомби».

...