2012-09-10 2 views
5

애플은 아이폰 앱을 거부하여 아이 패드에서 추락 한 것을 보여 주었다. 우리는 3 개의 다른 iPads에 충돌을 재생산 할 수없고 확인하도록 요청했습니다. 애플은 아이폰 4에서 충돌을 일으켰다 고 회고했다. 우리는 그것을 재현 할 수 없습니다 ...앱 리뷰에서 발견 된 크래시를 재현 할 수 없습니다. 누구든지이 충돌 보고서를 이해하는 데 도움이 될 수 있습니까?

그들은 다음과 같은 방법으로 충돌을 일으 킵니다. 나를 보자. 을 먼저 보자. 앱이 다운됩니다.

그들이 우리를 다시 보내라고 애플 리케이션 자신의 방법 중 하나가 표시되지 것 같다 로그 :

ncident Identifier: 8B5E90DE-99FD-4279-B634-2C777209F2B3 
CrashReporter Key: 6e9ccd0fcdc29915ebe22fb7376bd343cdcc252a 
Hardware Model:  iPhone3,1 
Process:   Snug [297] 
Path:   /var/mobile/Applications/DB3EFF00-7E5E-492A-9108-1341B6371B0D/Snug.app/Snug 
Identifier:  Snug 
Version:   ??? (???) 
Code Type:  ARM (Native) 
Parent Process: launchd [1] 

Date/Time:  2012-09-09 13:00:32.642 -0700 
OS Version:  iPhone OS 5.1.1 (9B206) 
Report Version: 104 

Exception Type: EXC_CRASH (SIGABRT) 
Exception Codes: 0x00000000, 0x00000000 
Crashed Thread: 6 

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0: 
0 libsystem_kernel.dylib   0x319e7660 __semwait_signal_nocancel + 24 
1 libsystem_c.dylib    0x3410b4da nanosleep$NOCANCEL + 118 
2 libsystem_c.dylib    0x340dd3a0 usleep$NOCANCEL + 44 
3 libsystem_c.dylib    0x340dd2b6 abort + 118 
4 Snug       0x001f8760 uncaught_exception_handler + 12 
5 CoreFoundation     0x37830950 __handleUncaughtException + 68 
6 libobjc.A.dylib     0x3553533e _objc_terminate + 122 
7 libc++abi.dylib     0x36f683be safe_handler_caller(void (*)()) + 70 
8 libc++abi.dylib     0x36f6844a std::terminate() + 14 
9 libc++abi.dylib     0x36f6981e __cxa_rethrow + 82 
10 libobjc.A.dylib     0x355352a2 objc_exception_rethrow + 6 
11 CoreFoundation     0x37786506 CFRunLoopRunSpecific + 398 
12 CoreFoundation     0x37786366 CFRunLoopRunInMode + 98 
13 GraphicsServices    0x33f45432 GSEventRunModal + 130 
14 UIKit       0x31532cce UIApplicationMain + 1074 
15 Snug       0x000f590c main (main.m:16) 
16 Snug       0x000f58c0 start + 32 

Thread 1 name: Dispatch queue: com.apple.libdispatch-manager 
Thread 1: 
0 libsystem_kernel.dylib   0x319d73a8 kevent + 24 
1 libdispatch.dylib    0x3095cea4 _dispatch_mgr_invoke + 708 
2 libdispatch.dylib    0x3095cbc2 _dispatch_mgr_thread + 30 

Thread 2: 
0 libsystem_kernel.dylib   0x319e7cd4 __workq_kernreturn + 8 
1 libsystem_c.dylib    0x3409ff36 _pthread_wqthread + 610 
2 libsystem_c.dylib    0x3409fcc8 start_wqthread + 0 

Thread 3: 
0 libsystem_kernel.dylib   0x319e7cd4 __workq_kernreturn + 8 
1 libsystem_c.dylib    0x3409ff36 _pthread_wqthread + 610 
2 libsystem_c.dylib    0x3409fcc8 start_wqthread + 0 

Thread 4 name: WebThread 
Thread 4: 
0 libsystem_kernel.dylib   0x319d7004 mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x319d71fa mach_msg + 50 
2 CoreFoundation     0x378043ec __CFRunLoopServiceMachPort + 120 
3 CoreFoundation     0x37803124 __CFRunLoopRun + 876 
4 CoreFoundation     0x3778649e CFRunLoopRunSpecific + 294 
5 CoreFoundation     0x37786366 CFRunLoopRunInMode + 98 
6 WebCore       0x3312fc9c RunWebThread(void*) + 396 
7 libsystem_c.dylib    0x340a572e _pthread_start + 314 
8 libsystem_c.dylib    0x340a55e8 thread_start + 0 

Thread 5 name: com.apple.NSURLConnectionLoader 
Thread 5: 
0 libsystem_kernel.dylib   0x319d7004 mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x319d71fa mach_msg + 50 
2 CoreFoundation     0x378043ec __CFRunLoopServiceMachPort + 120 
3 CoreFoundation     0x37803124 __CFRunLoopRun + 876 
4 CoreFoundation     0x3778649e CFRunLoopRunSpecific + 294 
5 CoreFoundation     0x37786366 CFRunLoopRunInMode + 98 
6 Foundation      0x38016bb2 +[NSURLConnection(Loader) _resourceLoadLoop:] + 302 
7 Foundation      0x38016a7a -[NSThread main] + 66 
8 Foundation      0x380aa58a __NSThread__main__ + 1042 
9 libsystem_c.dylib    0x340a572e _pthread_start + 314 
10 libsystem_c.dylib    0x340a55e8 thread_start + 0 

Thread 6 Crashed: 
0 libsystem_kernel.dylib   0x319e7cd4 __workq_kernreturn + 8 
1 libsystem_c.dylib    0x3409ff36 _pthread_wqthread + 610 
2 libsystem_c.dylib    0x3409fcc8 start_wqthread + 0 

Thread 7: 
0 libsystem_kernel.dylib   0x319e7cd4 __workq_kernreturn + 8 
1 libsystem_c.dylib    0x3409ff36 _pthread_wqthread + 610 
2 libsystem_c.dylib    0x3409fcc8 start_wqthread + 0 

Thread 8: 
0 libsystem_kernel.dylib   0x319e7cd4 __workq_kernreturn + 8 
1 libsystem_c.dylib    0x3409ff36 _pthread_wqthread + 610 
2 libsystem_c.dylib    0x3409fcc8 start_wqthread + 0 

Thread 9 name: com.apple.CFSocket.private 
Thread 9: 
0 libsystem_kernel.dylib   0x319e7570 __select + 20 
1 CoreFoundation     0x3780863a __CFSocketManager + 726 
2 libsystem_c.dylib    0x340a572e _pthread_start + 314 
3 libsystem_c.dylib    0x340a55e8 thread_start + 0 

Thread 6 crashed with ARM Thread State: 
    r0: 0x00000004 r1: 0x00000000  r2: 0x00000000  r3: 0x00000000 
    r4: 0x0c8cc800 r5: 0x0036a08c  r6: 0x04339000  r7: 0x04338fe0 
    r8: 0x3f29fd30 r9: 0x00000000  r10: 0x3f29fd50  r11: 0x00000000 
    ip: 0x00000170 sp: 0x04338fc0  lr: 0x3409ff3d  pc: 0x319e7cd4 
    cpsr: 0x40000010 

사람이 충돌 보고서와 함께 우리를 계몽 할 수 있습니까?

업데이트 :

우리는 우리에게 콘솔 추적을 보낼 수있는 응용 프로그램 검토 팀을 잔소리, 그들은했다. 추적에서 존재하지 않는 String 범주 메서드에 대한 호출이 수행되고 있음이 분명했습니다.

특정 카테고리 구현 파일이 출시 대상에 추가되지 않았기 때문에 오류가 발생했습니다. 모든 것이 완벽하게 작동했지만 앱이 보관되었을 때 구현 파일이 누락되었습니다.

+0

응용 프로그램을 실행하는 데 시간이 얼마나 걸리나요? 당신이 발사 허용 시간을 초과 한 것 같습니다. – Stavash

+0

스플래쉬 페이지에서 첫 번째 화면으로 이동하는 데 약 1 초 (표준처럼 보임). 그런 다음 '먼저 둘러보기'버튼을 클릭하면 앱이 충돌합니다. 어떻게 결론에 도달 했습니까? – theVurt

+0

예외가 무엇인지 알아내는 것이 유용 할 것입니다. 아마 충돌 시간에 콘솔 로그에 출력 될 것입니다. – Bryan

답변

2

에 대한

링크는 불행하게도이 로그는 보이지 않습니다 - 그냥 다른 스레드에서 다시 발생되고있어 예외를 처리하는 메인 스레드를 보여줍니다; 그 스레드는 로그 시간에 다른 것을하기 위해 사라졌습니다.

RestKit 루프에 대한 의심과 NSOperation이 예외를 던지고 있음을 언급했습니다. 그게 가능하고 수표를 넣을 가치가 있습니다. (그리고 손가락을 건드려 다른 것을 깨뜨리지는 않습니다 ...)하지만 재검토 단계를 더 잘 수행하도록 앱 검토 팀에 요청할 시간입니다. 당신이 모두 다르게하고있는 것을 고정시킬 수 있는지보십시오. 내가 당신에게 더 좋은 대답을 주었으면 좋겠지 만,이 부분에서 백그라운드에서하고있는 일에 대해 할 수있는 모든 것을 탐구하고 재현 할 누락 된 단계를 파악하는 것이 최선의 방법이 될 것이라고 생각합니다. . 행운을 빕니다!

1

충돌 앱이 적발되지 않은 예외를 발생시킨 최상위 너그 라인이 4

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0: 
0 libsystem_kernel.dylib   0x319e7660 __semwait_signal_nocancel + 24 
1 libsystem_c.dylib    0x3410b4da nanosleep$NOCANCEL + 118 
2 libsystem_c.dylib    0x340dd3a0 usleep$NOCANCEL + 44 
3 libsystem_c.dylib    0x340dd2b6 abort + 118 
4 Snug       0x001f8760 uncaught_exception_handler + 12 
5 CoreFoundation     0x37830950 __handleUncaughtException + 68 
6 libobjc.A.dylib     0x3553533e _objc_terminate + 122 
7 libc++abi.dylib     0x36f683be safe_handler_caller(void (*)()) + 70 
8 libc++abi.dylib     0x36f6844a std::terminate() + 14 
9 libc++abi.dylib     0x36f6981e __cxa_rethrow + 82 
10 libobjc.A.dylib     0x355352a2 objc_exception_rethrow + 6 
11 CoreFoundation     0x37786506 CFRunLoopRunSpecific + 398 
12 CoreFoundation     0x37786366 CFRunLoopRunInMode + 98 
13 GraphicsServices    0x33f45432 GSEventRunModal + 130 
14 UIKit       0x31532cce UIApplicationMain + 1074 
15 Snug       0x000f590c main (main.m:16) 
16 Snug       0x000f58c0 start + 32 

에서 스레드 0에서 일어났다. 보고서를 기호화하려면 xCode로 끌어다 놓으십시오. 검토 된 버전의 dSYM 파일이 있어야합니다. 그런 다음 xCode는 문제가 발생한 정확한 행을 표시합니다. dSym을 얻으려면 "빌드 및 보관"해야합니다.

는 충돌 코드가

Exception Type: EXC_CRASH (SIGABRT) 
Exception Codes: 0x00000000, 0x00000000 

입니다 또한 이후 충돌에 대한 이유는 메모리 액세스 문제입니다. 이러한 종류의 충돌 보고서는 많은 경우에 배열이나 사전에 무제한 개체를 넣으려고 할 때 생성됩니다. (충돌이 메인 스레드에 있고보고 된 스레드 6이 아니기 때문에)

당신의 경우에는 명백한 삽입이 보이지 않지만 메인 파일의 16 번째 줄부터 시작하여 로직을 확인합니다. . 나는이 호출의 시점에서 더 이상 존재하지 않는 객체에 액세스하고 있다고 가정합니다.

+0

배경 스레드에서 충돌이 발생했습니다. 예외가 다시 던져지고 있습니다. –

+0

이것은 이미 기호화 된 로그입니다. -/xcode를 기호로 사용했습니다. 사과에서 얻은 기호화되지 않은 기호는 사람이 읽을 수있는 스택 추적이 없습니다. @ 칼 비어 지 어디서 볼 수 있니? 나는 그것을 이해할 수 없다. 나는 주 스레드에 다시 던져서 그것을 본다. – theVurt

+0

@theVurt yeah 나는이 로그가 나에게 너무 유용하게 보이지 않는다. (스레드 6이 사라져서 주 스레드가 다시 throw하는 동안 뭔가를하기 시작했다. 백그라운드 스레드에서 백그라운드에서 실행중인 작업/백그라운드에서 돌아 오는 경우 디버그/adhoc 빌드에서 다르게 수행중인 작업이 있는지 확인하십시오. –

0

당신은 아래 사용하여 충돌 보고서를 분석 할 수 있습니다

단계 사과에서 충돌 보고서를 분석

:

복사 앱 스토어에서 생성 된 .dSYM 파일에 밀렸다 릴리스 .APP 파일 릴리스 시간과 충돌 보고서는 APPLE에서 FOLDER로 수신됩니다.

OPEN 단말과 어플리케이션 (CD 명령을 사용하여) 상기 생성 된 폴더

ATOS -arch하는 ARMv7 -o YOURAPP.app/YOURAPP MEMORY_LOCATION_OF_CRASH 이동. 메모리 위치는 보고서 당 응용 프로그램이 충돌 한 위치 여야합니다.

예 : atos -arch armv7 -o 'app name.app '/'앱 이름 '0x0003b508

이렇게하면 충돌이 발생한 정확한 행과 메소드 이름이 표시됩니다.

예 : [classname functionName :]; -510

Symbolicating IPA

우리가 symbolicating에 대한 IPA를 사용하는 경우 - 단지 .ZIP과 확장자의 .ipa의 이름을 변경, 우리는 응용 프로그램을 포함하는 페이로드 폴더를 얻을 수 있습니다 압축을 풉니 다. 이 경우 .dSYM 파일이 필요하지 않습니다. 너무 유용 할 것 같은이 Symbolicating iPhone App Crash Reports

+0

xcode를 사용하여 내 컴퓨터에 저장된 아카이브에있는 .dSYM으로 보고서를 상징했습니다. IPA를 생산하는 데 사용됨 IPA가 제출되지 않았습니다. 나는 이것이 이미 상징화되었다는 인상을 받고 있었다. – theVurt