应用程序拒绝:奇怪的iPhone崩溃日志

时间:2011-10-25 06:57:22

标签: iphone objective-c crash crash-reports

由于发布时崩溃,苹果拒绝了我的应用程序两次。我在不同设备(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

...

2 个答案:

答案 0 :(得分:3)

好的,您在提交到appstore时“构建并存档”了吗?

如果你没有,那就太难了。你现在无能为力。即使您进行了构建和存档,并且丢失了存档,您也没有运气。

但是,如果你这样做,那么存储分发构建的存档文件,非常好!

您是否尝试在 XCode Organizer 中打开它(将文件拖放到管理器上,它应该尝试表示崩溃日志)。如果没有,那就去做吧。

当你这样做时,有两种可能性: iMetroRoma函数将被符号化(意味着您将看到哪条线正在崩溃)或者它不会。

X *:如果是,您知道应用程序崩溃的位置。发布详细信息将有助于我们为您解决问题。

如果没有,则XCode中的自动符号不起作用。请遵循以下步骤(假设您从XCode 4完成了所有这些操作):

  1. 来自/ Users / your_username / Library / Developer / Xcode / DerivedData remove 所有文件夹。
  2. 来自/ Users / your_username / Library / Application     支持/ iPhone模拟器删除所有文件夹。
  3. 清理垃圾。
  4. 然后尝试从XCode Organizer中删除该崩溃日志并再次拖放它。可能,它现在可能象征着它。如果它确实执行了步骤X *,如果没有,请继续阅读。

    现在,您需要执行follow the steps on this blog。 (非常有用且文档齐全的文章)。

    希望它现在会符号化,然后转到步骤X *。如果没有,我很抱歉无法提供帮助:)

答案 1 :(得分:2)

根据崩溃日志,它看起来像一个数组超出范围的异常。这意味着您访问了一个不存在索引的数组。不幸的是,最重要的一行(3 iMetroRoma 0x0000426f 0x1000 + 12911 )没有象征意义,这意味着你必须去寻找你objectAtIndex:的所有电话,并考虑是否有可能使用无效索引。