Apple App拒绝iPhone应用程序崩溃报告 - 无法重现

时间:2010-01-20 10:13:01

标签: ios iphone

我对此崩溃报告完全不知所措。我已经在商店中有几个相当复杂的应用程序,并且最近向其中一个提交了更新。我立即收到了因启动时崩溃而被拒绝的回复。他们使用与我完全相同的SDK版本3.1.2。在对堆栈跟踪进行符号化之后,这就是崩溃:

Process:         MyAppName [60]
Path:            /var/mobile/Applications/0EC19245-D3A4-47D0-94D9-XXXXXXXXXX/MyAppName.app/MyAppName
Identifier:      MyAppName
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2010-01-19 15:43:46.804 -0800
OS Version:      iPhone OS 3.1.2 (7D11)
Report Version:  104

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

这是相关的堆栈跟踪。

Thread 0 Crashed:
0   libSystem.B.dylib               0x0007e9ac __kill + 8
1   libSystem.B.dylib               0x0007e99c kill + 4
2   libSystem.B.dylib               0x0007e98e raise + 10
3   libSystem.B.dylib               0x0009363a abort + 34
4   libstdc++.6.dylib               0x000453b0 __gnu_cxx::__verbose_terminate_handler() + 376
5   libobjc.A.dylib                 0x00005858 _objc_terminate + 104
6   libstdc++.6.dylib               0x00043776 __cxxabiv1::__terminate(void (*)()) + 46
7   libstdc++.6.dylib               0x000437ca std::terminate() + 10
8   libstdc++.6.dylib               0x00043896 __cxa_throw + 74
9   libobjc.A.dylib                 0x00004714 objc_exception_throw + 64
10  Foundation                      0x000013c2 __NSThreadPerformPerform + 570
11  CoreFoundation                  0x00056a96 CFRunLoopRunSpecific + 1834
12  CoreFoundation                  0x00056356 CFRunLoopRunInMode + 42
13  GraphicsServices                0x00003cb8 GSEventRunModal + 108
14  GraphicsServices                0x00003d64 GSEventRun + 56
15  UIKit                           0x00002768 -[UIApplication _run] + 384
16  UIKit                           0x0000146c UIApplicationMain + 688
17  MyAppName                         0x0000ed6a main (main.m:13)
18  MyAppName                         0x000028e4 start + 44

对我而言,堆栈跟踪几乎无用,它只是说当我们启动你的应用程序时一个组件崩溃但我无法在类似的系统上重现它(唯一的区别是它们运行Snow Leopard并且我只是运行Leopard)。

关于我接下来会发生什么的任何建议?感谢。

2 个答案:

答案 0 :(得分:4)

  1. 如果您正在运行Snow Leopard,请在项目中打开静态分析器。
  2. 启用NSZombieEnabled http://www.frogameleon.com/blog/last-night-an-iphone-zombie-nszombieenabled-saved-my-life
  3. 查看其他调试文档并使用Apple提供的工具。 http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/130-Debugging_Applications/debugging_applications.html

答案 1 :(得分:3)

实际上它并没有说你启动应用程序时组件崩溃了。崩溃可能在任何时候发生。

它说的是,它在NSThreadPerform中崩溃,看起来你试图在一个不再存在的对象上调用performSelector,或者可能针对没有你试图调用的方法的对象

所以我会寻找你在主线程上使用performSelector的任何地方,并尝试从那里思考目标是如何无效的。