应用被拒绝:奇怪的 iPhone 崩溃日志
由于发布时崩溃,苹果两次拒绝了我的应用程序。我在不同的设备(iPhone 4、iPhone3GS、模拟器、iPad2)上对其进行了多次测试,并且从未崩溃过。
编辑:这是符号化崩溃日志的一部分。
谢谢!
Incident Identifier: DD9A5C38-DFE5-4CB5-A15B-8C55967FFFD1
CrashReporter Key: bf318d2d968114ff69d458c2f8cbdc6b869e1ec7
Hardware Model: iPhone3,1
Process: iMetroRoma [2788]
Path: /var/mobile/Applications/8EC59E9D-D070-4CAD-892E-91BCE94AA58C/iMetroRoma.app/iMetroRoma
Identifier: iMetroRoma
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2011-10-24 13:23:22.895 -0700
OS Version: iPhone OS 5.0 (9A334)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x30d828bf __exceptionPreprocess + 163
1 libobjc.A.dylib 0x37f271e5 objc_exception_throw + 33
2 CoreFoundation 0x30ccbb6b -[__NSArrayM objectAtIndex:] + 271
3 iMetroRoma 0x0000426f 0x1000 + 12911
4 CoreLocation 0x34fbc5df -[CLLocationManager onClientEventLocation:] + 1171
5 CoreLocation 0x34fbbf81 -[CLLocationManager onClientEvent:supportInfo:] + 201
6 CoreLocation 0x34fb662f __CLClientInvokeCallback_block_invoke_0 + 55
7 CoreFoundation 0x30d56b31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 13
8 CoreFoundation 0x30d5615f __CFRunLoopDoBlocks + 159
9 CoreFoundation 0x30d55381 __CFRunLoopRun + 1433
10 CoreFoundation 0x30cd84dd CFRunLoopRunSpecific + 301
11 CoreFoundation 0x30cd83a5 CFRunLoopRunInMode + 105
12 GraphicsServices 0x33906fed GSEventRunModal + 157
13 UIKit 0x32d4a743 UIApplicationMain + 1091
14 iMetroRoma 0x000024e3 0x1000 + 5347
15 iMetroRoma 0x0000249c 0x1000 + 5276
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3206732c __pthread_kill + 8
1 libsystem_c.dylib 0x3655df54 pthread_kill + 48
2 libsystem_c.dylib 0x36556fe4 abort + 88
3 libc++abi.dylib 0x31a1ff64 abort_message + 40
4 libc++abi.dylib 0x31a1d346 _ZL17default_terminatev + 18
5 libobjc.A.dylib 0x37f272dc _objc_terminate + 140
6 libc++abi.dylib 0x31a1d3be _ZL19safe_handler_callerPFvvE + 70
7 libc++abi.dylib 0x31a1d44a std::terminate() + 14
8 libc++abi.dylib 0x31a1e81e __cxa_rethrow + 82
9 libobjc.A.dylib 0x37f2722e objc_exception_rethrow + 6
10 CoreFoundation 0x30cd853e CFRunLoopRunSpecific + 398
11 CoreFoundation 0x30cd839e CFRunLoopRunInMode + 98
12 GraphicsServices 0x33906fe6 GSEventRunModal + 150
13 UIKit 0x32d4a73c UIApplicationMain + 1084
14 iMetroRoma 0x000024dc 0x1000 + 5340
15 iMetroRoma 0x00002494 0x1000 + 5268
...
Thread 0 crashed with ARM Thread State:
r0: 0x00000000 r1: 0x00000000 r2: 0x00000001 r3: 0x00000000
r4: 0x00000006 r5: 0x3f54dce8 r6: 0x00000002 r7: 0x2fdffa6c
r8: 0x001a1c20 r9: 0x31a20a4a r10: 0x0000d224 r11: 0x0000cbfc
ip: 0x00000148 sp: 0x2fdffa60 lr: 0x3655df5b pc: 0x3206732c
cpsr: 0x00000010
...
Apple rejected my app two times due to a crash at launch. I have tested it many times on different devices (iPhone 4, iPhone3GS, Simulator, iPad2) and it never crashed.
EDIT: This is a part of the symbolicated crash log.
Thanks!
Incident Identifier: DD9A5C38-DFE5-4CB5-A15B-8C55967FFFD1
CrashReporter Key: bf318d2d968114ff69d458c2f8cbdc6b869e1ec7
Hardware Model: iPhone3,1
Process: iMetroRoma [2788]
Path: /var/mobile/Applications/8EC59E9D-D070-4CAD-892E-91BCE94AA58C/iMetroRoma.app/iMetroRoma
Identifier: iMetroRoma
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2011-10-24 13:23:22.895 -0700
OS Version: iPhone OS 5.0 (9A334)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x30d828bf __exceptionPreprocess + 163
1 libobjc.A.dylib 0x37f271e5 objc_exception_throw + 33
2 CoreFoundation 0x30ccbb6b -[__NSArrayM objectAtIndex:] + 271
3 iMetroRoma 0x0000426f 0x1000 + 12911
4 CoreLocation 0x34fbc5df -[CLLocationManager onClientEventLocation:] + 1171
5 CoreLocation 0x34fbbf81 -[CLLocationManager onClientEvent:supportInfo:] + 201
6 CoreLocation 0x34fb662f __CLClientInvokeCallback_block_invoke_0 + 55
7 CoreFoundation 0x30d56b31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 13
8 CoreFoundation 0x30d5615f __CFRunLoopDoBlocks + 159
9 CoreFoundation 0x30d55381 __CFRunLoopRun + 1433
10 CoreFoundation 0x30cd84dd CFRunLoopRunSpecific + 301
11 CoreFoundation 0x30cd83a5 CFRunLoopRunInMode + 105
12 GraphicsServices 0x33906fed GSEventRunModal + 157
13 UIKit 0x32d4a743 UIApplicationMain + 1091
14 iMetroRoma 0x000024e3 0x1000 + 5347
15 iMetroRoma 0x0000249c 0x1000 + 5276
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3206732c __pthread_kill + 8
1 libsystem_c.dylib 0x3655df54 pthread_kill + 48
2 libsystem_c.dylib 0x36556fe4 abort + 88
3 libc++abi.dylib 0x31a1ff64 abort_message + 40
4 libc++abi.dylib 0x31a1d346 _ZL17default_terminatev + 18
5 libobjc.A.dylib 0x37f272dc _objc_terminate + 140
6 libc++abi.dylib 0x31a1d3be _ZL19safe_handler_callerPFvvE + 70
7 libc++abi.dylib 0x31a1d44a std::terminate() + 14
8 libc++abi.dylib 0x31a1e81e __cxa_rethrow + 82
9 libobjc.A.dylib 0x37f2722e objc_exception_rethrow + 6
10 CoreFoundation 0x30cd853e CFRunLoopRunSpecific + 398
11 CoreFoundation 0x30cd839e CFRunLoopRunInMode + 98
12 GraphicsServices 0x33906fe6 GSEventRunModal + 150
13 UIKit 0x32d4a73c UIApplicationMain + 1084
14 iMetroRoma 0x000024dc 0x1000 + 5340
15 iMetroRoma 0x00002494 0x1000 + 5268
...
Thread 0 crashed with ARM Thread State:
r0: 0x00000000 r1: 0x00000000 r2: 0x00000001 r3: 0x00000000
r4: 0x00000006 r5: 0x3f54dce8 r6: 0x00000002 r7: 0x2fdffa6c
r8: 0x001a1c20 r9: 0x31a20a4a r10: 0x0000d224 r11: 0x0000cbfc
ip: 0x00000148 sp: 0x2fdffa60 lr: 0x3655df5b pc: 0x3206732c
cpsr: 0x00000010
...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
好的,您提交到应用商店时是否“构建并存档”了?
如果你没有,那你就运气不好了。现在你无能为力。即使您进行了“构建”和“存档”并丢失了存档,您也不走运。
但是,如果您这样做了,请存储发行版本的存档文件,非常好!
您是否尝试过在XCode Organizer中打开它(将文件拖放到组织器上,它应该尝试表示崩溃日志)。如果没有,那就去做吧。
当你这样做时,有两种可能性:
iMetroRoma
函数要么会被符号化(这意味着您将看到哪一行正在崩溃),要么不会。X*:如果是这样,您就知道应用程序在哪里崩溃了。发布详细信息将有助于我们为您解决问题。
如果没有,则 XCode 中的自动符号化不起作用。请按照以下步骤操作(假设您从 XCode 4 中完成了所有这些操作):
所有文件夹。
支持/iPhone模拟器删除所有文件夹。
然后尝试从 XCode Organizer 中删除该崩溃日志并再次将其拖放到那里。也许,它现在可能具有象征意义。如果确实执行了步骤 X*,如果没有,请继续阅读。
现在,您需要按照此博客上的步骤操作< /a>. (非常有用且有据可查的文章)。
希望它现在能象征然后进入步骤 X*。如果没有,我很抱歉无法提供帮助:)
Okay, did you "build and archive" when submitting to appstore?
If you did not, tough luck. There is not much you can do now. Even if you did Build and Archive, and lost the archive, you are out of luck.
If you did however, store the archive file of distribution build, very good!
Have you tried opening this in XCode Organizer (drag and drop the file onto organizer, it should try to symbolicate the crashlog). If not, do it.
When you do it, there are two possibilities:
Either the
iMetroRoma
functions will get symbolicated (meaning you'll see which line is crashing it) or it wont.X*: If it does, you know where the application is crashing. Posting the details of that would help us solve the issue for you.
If it does not, then automatic symbolication in XCode is not working. Follow these steps (assuming you did all this from XCode 4):
all folders.
Support/iPhone Simulator remove all folders.
And then try deleting that crash log from XCode Organizer and drag/drop it again there. Possibly, it might symbolicate it now. If it does do step X*, If it does not, read on.
Now, you will need to do follow the steps on this blog. (Very useful and well documented article).
Hopefully, it will symbolicate now and then move to step X*. If it does not, I'm sorry for not being able to help :)
根据崩溃日志,看起来像是数组越界异常。这意味着您访问的数组的索引不存在。不幸的是,最重要的一行 (
3 iMetroRoma 0x0000426f 0x1000 + 12911
) 没有符号化,这意味着您必须寻找对objectAtIndex:
的所有调用,并考虑是否有可能使用无效索引。According to the crash log, it looks like an array out of bounds exception. This means that you accessed an array with an index that doesn't exist. Unfortunately, the most important line (
3 iMetroRoma 0x0000426f 0x1000 + 12911
) is not symbolicated which means you have to go hunting for all your calls toobjectAtIndex:
and think about whether there's a possibility that an invalid index could be used.