1

我的一个用户报告他的设备 iPhone 3GS 发生了崩溃。相同类型的其他设备未报告类似行为。他给我发了一个崩溃日志,根据阅读它,我不知道如何继续。我希望我没有错误地解释崩溃日志,但看起来我的操作还没有被调用。

这就是我创建和设置 UIBarButtonItem 的方式:

- (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd  target:self action:@selector(addLog:)];
    self.navigationItem.rightBarButtonItem = addButton;
    [addButton release];
}

这是我的操作方法:

- (IBAction)addLog:(id)sender {
    MyViewController *myController = [[MyViewController alloc] initWithNibName:@"MyNib" bundle:nil];
    UINavigationController *subNavigationController = [[UINavigationController alloc] initWithRootViewController: myController];
    [self presentModalViewController:subNavigationController animated:YES];
    [myController release];
    [subNavigationController release];
}

这是崩溃日志:

异常类型:EXC_CRASH (SIGABRT)
异常代码:0x00000000、0x00000000Crashed 线程:0
线程 0 崩溃:
0 libSystem.B.dylib 0x0007e98c __kill + 81 libSystem.B.dylib 0x0007e97c 杀死 + 4
2 libSystem.B.dylib 0x0007e96e 提高 + 10
3 libSystem.B.dylib 0x0009361a 中止 + 34
4 我的应用程序 0x000042e8 0x1000 + 13032
5 CoreFoundation 0x00058ede-[NSObject performSelector:withObject:withObject:] + 18
6 UIKit 0x0004205e-[UIApplication sendAction:to:from:forEvent:] + 78
7 UIKit 0x00094d4e-[UIBarButtonItem(内部)_sendAction:withEvent:] + 86
8 CoreFoundation 0x00058ede-[NSObject performSelector:withObject:withObject:] + 18
9 UIKit 0x0004205e-[UIApplication sendAction:to:from:forEvent:] + 78
10 UIKit 0x00041ffe-[UIApplication sendAction:toTarget:fromSender:forEvent:] + 26
11 UIKit 0x00041fd0-[UIControl sendAction:to:forEvent:] + 32
12 UIKit 0x00041d2a-[UIControl(内部)_sendActionsForEvents:withEvent:] + 350
13 UIKit 0x0004263e-[UIControl touchesEnded:withEvent:] + 330
14 UIKit 0x00041656-[UIWindow_sendTouchesForEvent:] + 318
15 UIKit 0x00041032 -[UIWindow 发送事件:] + 74
4

1 回答 1

2

崩溃报告不是符号化的。因为这条线,我可以打电话:

4   MyApp                               0x000042e8 0x1000 + 13032

在符号化的崩溃报告中,这一行将显示发生崩溃的方法。

创建发布版本时,会从二进制文件中删除调试符号。您需要在构建后保存构建文件夹中的 .dSYM 文件和应用程序包。

这些是符号化崩溃报告所必需的。

如果您保存了这些文件,则需要确保它们位于 Spotlight 可以访问的位置。如果崩溃报告是由用户发送给您的,请尝试将其拖到 Xcode 管理器窗口中的崩溃报告选项卡中。这应该尝试象征崩溃报告(但只有当您拥有 .dSYM 和应用程序包时才会成功)。

于 2010-03-30T13:41:06.980 回答