프로젝트를 XCode 4.3.1에 ARC 용으로 작성 했으므로 카운트가 전혀 유지되지 않습니다. 시뮬레이터 나 장치에서 프로젝트를 실행하면 정상적으로 실행됩니다. 할당 및 누수에 대한 프로파일 러에서 실행하면 정상적으로 실행됩니다. 내가 프로젝트를 보관하고 특별 그것을 배포하고 .ipa 파일을로드하는 경우아이폰 앱이 디버그되지 않은 릴리스 버전
그러나 앱이 콘솔 메시지와 충돌합니다 :
<Notice>: Quilters_AppP(1812,0x3f85cd98) malloc: *** error for object 0x1109a910: pointer being freed was not allocated
<Notice>: *** set a breakpoint in malloc_error_break to debug
을 오류가 발생하기 때문에 나는 malloc_error_debug에 중단 점을 설정하지만, 출시 된 버전에서는 디버거가 표시되지 않습니다.
정말 이상한 곳이 있습니다. NSLog 문을 추가 했으므로 문제가 재현되지 않습니다.
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x34f5432c __pthread_kill + 8
1 libsystem_c.dylib 0x36e50208 pthread_kill + 48
2 libsystem_c.dylib 0x36e49298 abort + 88
3 libsystem_c.dylib 0x36e0437a free + 374
4 libobjc.A.dylib 0x36583d72 object_dispose + 14
5 CoreFoundation 0x350b6618 -[NSObject dealloc] + 76
6 CoreFoundation 0x350b6736 -[__NSArrayI dealloc] + 162
7 libobjc.A.dylib 0x3658316e _objc_rootRelease + 30
8 libobjc.A.dylib 0x36584e50 objc_release + 32
9 libobjc.A.dylib 0x36583ea6 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 218
10 libobjc.A.dylib 0x36583dc2 _objc_autoreleasePoolPop + 6
11 CoreFoundation 0x350b0cf8 _CFAutoreleasePoolPop + 12
12 UIKit 0x3218ee34 _wrapRunLoopWithAutoreleasePoolHandler + 36
13 CoreFoundation 0x35134b14 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 12
14 CoreFoundation 0x35132d50 __CFRunLoopDoObservers + 252
15 CoreFoundation 0x351330aa __CFRunLoopRun + 754
16 CoreFoundation 0x350b649e CFRunLoopRunSpecific + 294
17 CoreFoundation 0x350b6366 CFRunLoopRunInMode + 98
18 GraphicsServices 0x363b2432 GSEventRunModal + 130
19 UIKit 0x321ace76 UIApplicationMain + 1074
20 Quilters_AppP 0x0003505c main (main.m:17)
21 Quilters_AppP 0x00034af4 0x33000 + 6900
날이 어려운 버그를 잡을 도와주세요 : 여기
로그입니다. 이 앱은 4.3/armv7을 타겟으로합니다.
자동 해제 풀에있는 개체를 놓아두고 오류가 발생했습니다. 어딘가에, 당신은 객체에 대해 'autorelease'를 사용하고 있고,'release'를 호출하고 있습니다. NSZombies가 활성화되거나 유사 할 수 있기 때문에 DEBUG에서 충돌하지 않을 수 있습니다. – MarkPowell
Mark 고맙지 만, Apple이 main.m에서 autoreleasepool을 제공하는 곳을 제외하고 어디에서나 release 나 autorelease를 사용하지 않습니다. - Dan –
이 프로젝트는 ARC를 사용하고 있습니까? – MarkPowell