简体   繁体   English

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

[英]iPhone App Rejected by Apple with crash report - can not reproduce

I am totally at a loss on this crash report. 我对此崩溃报告完全不知所措。 I have several fairly complicated apps already in the store and recently submitted an update to one of them. 我已经在商店中有几个相当复杂的应用程序,并且最近向其中一个提交了更新。 I promptly received the response it had been rejected for crashing on startup. 我立即收到了因启动时崩溃而被拒绝的回复。 They are using exactly the same SDK version as me, 3.1.2. 他们使用与我完全相同的SDK版本3.1.2。 After symbolicating the stack trace, this is what was crashing: 在对堆栈跟踪进行符号化之后,这就是崩溃:

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

and this is the pertinent stack trace. 这是相关的堆栈跟踪。

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

To me that stacktrace is near useless, it just says a component crashed when we started your app yet I can not reproduce it on a similar system (the only difference being they are running Snow Leopard and I am just running Leopard). 对我而言,堆栈跟踪几乎无用,它只是说当我们启动你的应用程序时一个组件崩溃但我无法在类似的系统上重现它(唯一的区别是它们运行Snow Leopard并且我只是运行Leopard)。

Any suggestions as to what I could next? 关于我接下来可以做什么的任何建议? Thanks. 谢谢。

  1. If you are running Snow Leopard, turn on the Static Analyzer in your project. 如果您正在运行Snow Leopard,请在项目中打开静态分析器。
  2. Turn on NSZombieEnabled http://www.frogameleon.com/blog/last-night-an-iphone-zombie-nszombieenabled-saved-my-life 打开NSZombieEnabled http://www.frogameleon.com/blog/last-night-an-iphone-zombie-nszombieenabled-saved-my-life
  3. Review the other Debugging docs and use the tools Apple provides. 查看其他调试文档并使用Apple提供的工具。 http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/130-Debugging_Applications/debugging_applications.html http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/130-Debugging_Applications/debugging_applications.html

Actually it doesn't say a component crashed when you started the app. 实际上它并没有说你启动应用程序时组件崩溃了。 The crash may have happened at any point. 崩溃可能在任何时候发生。

What it does say though, is that it crashed in NSThreadPerform, which seems like you were trying to call performSelector on either an object that no longer existed, or possibly against an object that did not have the method you were trying to invoke. 它说的是,它在NSThreadPerform中崩溃,看起来你试图在一个不再存在的对象上调用performSelector,或者可能对一个没有你试图调用的方法的对象。

So I'd look for anywhere you use performSelector on the main thread, and try and think from there how the target could be invalid. 所以我会寻找你在主线程上使用performSelector的任何地方,并尝试从那里思考目标是如何无效的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM