无法重现应用评论发现的崩溃。任何人都可以帮助理解这个崩溃报告吗?

时间:2012-09-10 15:01:17

标签: iphone ios crash-reports

苹果拒绝了我们的iphone应用程序,显示它在iPad上崩溃了。我们无法在3个不同的iPad上重现崩溃并要求他们确认。 Apple回来说他们在iPhone 4上发生了崩溃(虽然日志显示iPhone 3)。我们无法重现它......

  

他们通过以下方式产生崩溃:启动应用。选择让我环顾四周   第一。应用程序崩溃。

他们发回给我们的日志似乎没有显示任何应用程序自己的方法:

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类别方法。

错误是特定类别实现文件未添加到我们的发布目标中。所以一切都很完美但是当应用程序存档时,实现文件丢失了。

3 个答案:

答案 0 :(得分:2)

不幸的是,这个日志看起来不太有用 - 它只是显示主线程处理从另一个线程重新抛出的异常;该线程在日志时已经开始执行其他操作。

你提到你对RestKit循环的怀疑以及NSOperation抛出异常的可能性。这是可能的,值得检查(并且交叉指责它不会破坏其他东西......),但现在可能是时候请求应用程序审核小组为您提供更好的重现步骤。看看你是否可以确定你们所做的不同。我希望我能为你找到一个更好的答案,但我认为你可以在应用程序的这一部分中探索你在后台做的所有事情,并试图弄清楚重现的缺失步骤将是你最好的选择。祝你好运!

答案 1 :(得分:1)

崩溃发生在线程0中最顶端的Snug第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

应用程序导致了一个未被捕获的异常。 要对报告进行符号化,只需将其拖入xCode - 您需要为审核版本提供dSYM文件。然后xCode将显示出现问题的确切行。要获得dSym,您需要“构建和存档”。

此外,因为崩溃代码是

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

崩溃的原因是内存访问问题。在许多情况下会生成这种崩溃报告,其中一个尝试将nil对象嵌入到数组或字典中。 (因为崩溃是在主线程中而不是在报告的线程6中)

在你的情况下,我没有看到任何明显的插入,但是我会检查从主文件的第16行开始的逻辑以及随后的所有逻辑。我假设你正在访问一个在此次调用时不再存在的对象。

答案 2 :(得分:0)

您可以使用以下

分析崩溃报告

分析来自apple的崩溃报告的步骤:

将推送到appstore的.app文件复制,发布时创建的.dSYM文件,并将崩溃报告从APPLE接收到文件夹。

打开终端应用程序并转到上面创建的文件夹(使用CD命令)

atos -arch armv7 -o YOU​​RAPP.app/YOURAPP MEMORY_LOCATION_OF_CRASH。内存位置应该是应用程序根据报告崩溃的位置。

例如:atos -arch armv7 -o'app name.app'/'app name'0x0003b508

这会显示导致崩溃的确切行,方法名称。

Ex:[classname functionName:]; -510

符号化IPA

如果我们使用IPA进行符号化 - 只需使用.zip重命名扩展名.ipa,然后将其解压缩,然后我们就可以获得包含app的Payload文件夹。在这种情况下,我们不需要.dSYM文件。

Symbolicating iPhone App Crash Reports

的链接