无法重现应用程序审查发现的崩溃.有人能帮我弄清楚这份事故报告吗



苹果拒绝了我们的iphone应用程序,表明它在iPad上崩溃了。我们无法在3台不同的iPad上重现故障,请他们确认。苹果公司回来后表示,他们在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类别方法进行调用。

问题是特定类别的实现文件没有添加到我们的发布目标中。所以一切都很完美,但当应用程序存档时,缺少一个实现文件。

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

您提到了您对RestKit循环的怀疑,以及NSOperation抛出异常的可能性。这是可能的,值得检查一下(并祈祷它不会破坏其他东西…),但可能是时候恳求应用程序审查团队给你更好的复制步骤了。看看你是否能确定你们都在做什么。我希望我能给你一个更好的答案,但我认为,在应用程序的这一部分,尽你所能探索你在后台做什么,并试图找出缺失的复制步骤,将是你最好的选择。祝你好运!

崩溃发生在Snug第4行顶部的线程0中

   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行开始的逻辑以及所有后续内容。我假设您正在访问一个在调用时已经不存在的对象。

您可以使用以下分析崩溃报告

分析苹果崩溃报告的步骤:

将推送到应用商店的.app版本文件、发布时创建的.dSYM文件以及从APPLE接收的崩溃报告复制到文件夹中。

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

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

例如:atos-arch armv7-o"应用程序名称.app"/"应用程序名"0x0003b508

这将显示导致崩溃的确切行、方法名。

例如:[classname functionName:]-510

IPA 的象征

如果我们使用IPA进行符号化-只需用.zip重命名扩展名.IPA,提取它,就可以获得一个包含应用程序的Payload Folder。在这种情况下,我们不需要.dSYM文件。

此象征性的iPhone应用程序崩溃报告的链接

相关内容

最新更新