【问题标题】:App rejected: strange iPhone crash log应用被拒绝:奇怪的 iPhone 崩溃日志
【发布时间】:2011-10-25 17:25:44
【问题描述】:

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

...

【问题讨论】:

  • 在你符号化日志之前,没有人可以提供帮助。在 Xcode/Organiser/Devices/Device Logs 中导入
  • 你试过检查僵尸吗?

标签: iphone objective-c crash crash-reports


【解决方案1】:

好的,您在提交到应用商店时是否“构建并存档”?

如果你没有,那就倒霉了。你现在能做的不多。即使您进行了构建和存档,但丢失了存档,您也不走运。

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

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

当你这样做时,有两种可能性: iMetroRoma 函数要么会被符号化(意味着你会看到哪一行导致它崩溃),要么不会。

X*:如果是这样,您就知道应用程序在哪里崩溃了。发布详细信息将帮助我们为您解决问题。

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

  1. 从 /Users/your_username/Library/Developer/Xcode/DerivedData 移除 所有文件夹。
  2. 来自 /Users/your_username/Library/Application 支持/iPhone Simulator 删除所有文件夹。
  3. 清理垃圾。

然后尝试从 XCode Organizer 中删除该崩溃日志并再次将其拖放到那里。也许,它现在可能象征着它。如果确实执行了步骤 X*,如果没有,请继续阅读。

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

希望它会时不时地象征性地移动到第 X* 步。如果没有,我很抱歉无法提供帮助:)

【讨论】:

  • 您好,感谢您的帮助。我尝试从终端运行 symbolicatecrash,但收到此警告:## 警告:无法从所需的二进制文件中进行符号化:/Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.0 (9A334)/Symbols/System/Library/Frameworks/MapKit .framework/MapKit
  • 您还没有 iOS SDK 5.0?
  • 我有 XCode 4.2 和 iOS SDK 5.0
  • 你确定它是发布版本而不是 xcode/ios SDK 的预发布测试版吗?
  • 我是从 MACAppStore 下载的。 ps:Apple 给我发送了 2 个崩溃日志,我成功地标记了其中一个(我在问题线程上复制了它)。有用吗?
【解决方案2】:

根据崩溃日志,它看起来像一个数组越界异常。这意味着您访问了一个索引不存在的数组。不幸的是,最重要的行 (3 iMetroRoma 0x0000426f 0x1000 + 12911 ) 没有符号化,这意味着您必须寻找所有对 objectAtIndex: 的调用,并考虑是否有可能使用无效索引。

【讨论】:

  • “为此理由”是什么意思?请参阅异常堆栈跟踪,第 3 到 1 帧。调用流程如下: 第 3 帧:他的应用程序的一个方法(地址为 0x1000 + 12911)在 __NSArrayM 类型的对象上调用第 2 帧:objectAtIndex:,这是一个内部NSArray 子类。而objectAtIndex: 又称为第 1 帧:objc_exception_throw。所以名为[someArray objectAtIndex:something]objectAtIndex: 的应用程序抛出了异常。通常这个方法只会在索引越界时抛出异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多