【问题标题】:Help to Interpret Apple crash report帮助解读 Apple 崩溃报告
【发布时间】:2010-11-01 12:15:34
【问题描述】:

我无法重现我在 Apple 崩溃报告中遇到的错误。我有 4 个使用相同代码库的应用程序已经获得批准,现在我有 2 个应用程序因我从未遇到过的相同错误而被拒绝。

以下是我从 Apple Review 中获得的崩溃报告。 再下面是我的应用程序委托中指示为错误的行。 我正在查看系统调用来解决错误,以防它们为我提供一些启示。

Incident Identifier: XXXXXX
CrashReporter Key:   XXXXXX
Hardware Model:      iPhone3,1
Process:         XXXX [120]
Path:            XXXX
Identifier:      XXXX
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       XXXX
OS Version:      iPhone OS 4.1 (8B117)
Report Version:  XXXX

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

Thread 0 Crashed:
0   libSystem.B.dylib               0x00078ac8 __kill + 8
1   libSystem.B.dylib               0x00078ab8 kill + 4
2   libSystem.B.dylib               0x00078aaa raise + 10
3   libSystem.B.dylib               0x0008d03a abort + 50
4   libstdc++.6.dylib               0x00044a20 __gnu_cxx::__verbose_terminate_handler() + 376
5   libobjc.A.dylib                 0x00005958 _objc_terminate + 104
6   libstdc++.6.dylib               0x00042df2 __cxxabiv1::__terminate(void (*)()) + 46
7   libstdc++.6.dylib               0x00042e46 std::terminate() + 10
8   libstdc++.6.dylib               0x00042f16 __cxa_throw + 78
9   libobjc.A.dylib                 0x00004838 objc_exception_throw + 64
10  CoreFoundation                  0x000a167c -[NSObject(NSObject) doesNotRecognizeSelector:] + 96
11  CoreFoundation                  0x000491d2 ___forwarding___ + 502
12  CoreFoundation                  0x00048f88 _CF_forwarding_prep_0 + 40
13  XXX                         0x00002a02 -[XXX application:didFinishLaunchingWithOptions:] (XXXAppDelegate.m:94)
14  UIKit                           0x0000e47a -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 766
15  UIKit                           0x000049e0 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 200
16  UIKit                           0x0005dfd6 -[UIApplication handleEvent:withNewEvent:] + 1390
17  UIKit                           0x0005d8fa -[UIApplication sendEvent:] + 38
18  UIKit                           0x0005d330 _UIApplicationHandleEvent + 5104
19  GraphicsServices                0x00005044 PurpleEventCallback + 660
20  CoreFoundation                  0x00034cdc __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 20
21  CoreFoundation                  0x00034ca0 __CFRunLoopDoSource1 + 160
22  CoreFoundation                  0x00027566 __CFRunLoopRun + 514
23  CoreFoundation                  0x00027270 CFRunLoopRunSpecific + 224
24  CoreFoundation                  0x00027178 CFRunLoopRunInMode + 52
25  UIKit                           0x000040fc -[UIApplication _run] + 364
26  UIKit                           0x00002128 UIApplicationMain + 664
27  XXX                         0x00002154 main (main.m:14)
28  XXX                         0x00002124 start + 32

AppDelegate 中的代码:

NSArray *viewControllers = favNavController.viewControllers;
FavouritesViewController *favouritesView = (FavouritesViewController*)[viewControllers objectAtIndex:0]; <-- Line indicated in crash report

我无法重现此内容。任何见解或建议表示赞赏。

【问题讨论】:

    标签: iphone ios4 crash crash-reports


    【解决方案1】:

    我看起来像“favNavController.viewControllers”不是 NSArray - 因此在尝试执行“objectAtIndex”时您会得到“无法识别的选择器”。

    您是否注意到该应用似乎是在响应 URL 时启动的? (OpenWithURL)?

    我不知道这是否会使您的代码通过不同的初始化路径 - 此时尚未完成。

    【讨论】:

    • 您好,感谢您的回复。 OpenWithUrl 不是我熟悉的东西,现在会看,老实说,让我的应用程序响应 URL 启动并不是我设计的一部分。我的理解是,这就像启动以纬度/经度为参数的 Google 地图应用程序,或者使用 tel:555-709-7654 类型的事务拨打电话号码?
    • 好的,我一直在尝试收集有关崩溃报告中引用 URL 的系统调用的一些信息,但我没有学到太多东西。调用 callInitializationDelegatesForURL 和 _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden: 是否以不同的方式启动应用程序或类似的方式?对不起,但我正在努力解决这个问题...... :(
    • 我故意调用导致“favNavController.viewControllers”行出现无法识别的选择器异常。并准确地重现了错误。 D'oh 时刻,为什么我没想过早点这样做。所以现在我必须明白为什么 viewControllers 数组会造成麻烦。这一切都是通过 nib 文件设置的,所以认为它会得到照顾。
    • 嗯嗯嗯。我的应用程序是 Tabbar 基础,每个选项卡都有自己的导航控制器。在 IB 中,每个导航控制器的主视图控制器在检查器中都有一个与之关联的类型。对我来说,类型显示在主笔尖摘要窗口的“类型”列中。但是在打开控制器属性时没有指定笔尖。这意味着当您看到模板界面时,它没有显示“从 viewControllerName 加载的视图”。我认为这就是 FavNavController.viewControllers 导致选择器无法识别的原因。
    • 我会将您的答案标记为正确 Brad,只是为了注意“响应 URL 启动?(OpenWithURL)?” bit 似乎只是一些内部的东西,而不是我理解的 URL。我会尝试重新提交并希望它通过,因为我找不到其他任何东西。奇怪的是,这从未出现在我的测试设备或模拟器上:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多