2011-11-07 7 views
4

Xcode 4.2의 iOS5 및 iOS4.3 iPhone 시뮬레이터를 사용하여 내 앱이 충돌하며 스택 추적에서 [FlurryAPI stopBackgroundTask] 메소드의 BAD_ACCESS 신호를 보여줍니다.Flurry API 충돌 iPhone 시뮬레이터

iOS4.3 시뮬레이터에서는 백그라운드로 앱을 보낼 때 앱이 작동하지 않지만 iOS5에서는 항상 충돌이 발생합니다. BAD_ACCESS가 발생하는 스레드를 보여주는 디버그 탐색기의 그림을 첨부하고 있습니다.

반면에 앱은 실제 장치를 사용하여 잘 작동합니다.

어떤 일이 벌어지고 있는지, 왜 이런 일이 일어나고 있는지에 대한 자세한 정보는 어떻게 얻을 수 있습니까? 당신은 당신이 그것을 발표 한 후 코드를 사용하는 상황이 -

enter image description here

+1

최신 Flurry lib로 업그레이드 한 후 똑같은 것을 얻습니다. (내 이전 FlurryAPI 호출을 FlurryAnalytics로 바꾸십시오 ...) – avocade

+1

Flurry가 실행될 때 Flurry가 에이전트에 대해 생성하는 스레드에서 발생하는 현상입니다 [FlurryAnalytics startSession : FLURRYAPIKEY]를 작성하십시오. 여전히 문제의 원인이되는 호출이 어디에서 왔는지 확인하는 방법을 알지 못합니다. – yeforriak

+0

동일한 문제가 있습니다. 수정 프로그램을 찾을 수 없습니다. Flurry 3.0.4로 업데이트했지만 4.3과 5.0 모두 Simulator에서 문제가 발생합니다. – DaGaMs

답변

7

은 내가

#if TARGET_IPHONE_SIMULATOR 
     [FlurryAnalytics setSessionReportsOnPauseEnabled:NO]; 
#endif 
+0

고마워! – ruyamonis346

1

그것은 당신이 좀비를 가지고있는 것처럼 보인다. 보유 수는 0에 도달하므로 시스템이 메모리를 할당 해제하고 다시 사용하면 원래 참조를 통해 변경합니다. 이제 동일한 메모리에 대해 서로 다른 두 개의 참조가 있습니다. 각 참조는 서로 다른 객체가있을 것으로 기대합니다. 귀하의 경우 참조 중 하나가 혼란 상태에 있습니다.

디바이스/시뮬레이터의 차이점은 두 아키텍처가 사용하는 메모리 할당 방식이 다르기 때문입니다. 시뮬레이터는 메모리를 매우 적극적으로 재사용하는 것으로 보입니다.

NSZombie를 활성화하고 디버거에서 실행하십시오. 운이 좋다면, 객체와 할당 해제 후에 사용 된 포인트를 줄 것이다.

NSZombie를 활성화하려면 '제품', '스키마 편집 ...' '실행'페이지, '진단'탭에서 '좀비 객체 사용'을 선택하십시오.

+0

답변 주셔서 감사합니다.하지만 NSZombies를 사용하도록 설정하십시오. 나에게 어떤 추가 정보도주지 않는다. ( – yeforriak

2

질풍 분석 메인 스레드가 아닌 다른 실행되지 않습니다 didFinishLaunchingWithOptions에 다음을 추가하여이 문제를 해결 근무했습니다. 백그라운드 스레드에서 충돌 할 수 있습니다.

관련 문제