在ios中的CrashReporter符号客户端

时间:2014-08-28 15:24:17

标签: ios objective-c plcrashreporter

我是使用PLCrashReport的新手,我想做符号化客户端。我知道有许多缺点,但我想尝试一下,你能帮帮我吗。

我使用了CrashReporter的最后一个版本,这是我在appDelegate类中所做的,引用了这个示例http://plcrashreporter.googlecode.com/svn/tags/plcrashreporter-1.1-rc1/Documentation/API/example_usage_iphone.html

这是一个在这里谈论这个问题的话题 PLCrashReporter - How to symbolicate crash data in-process?

链接到图书馆: https://www.plcrashreporter.org/

(void) applicationDidFinishLaunching: (UIApplication *) application {
    PLCrashReporter *crashReporter = [PLCrashReporter sharedReporter];
    NSError *error;

    if ([crashReporter hasPendingCrashReport])
        [self handleCrashReport];

    if (![crashReporter enableCrashReporterAndReturnError: &error])
        NSLog(@"Warning: Could not enable crash reporter: %@", error);

1 个答案:

答案 0 :(得分:4)

您正在链接到旧的存储库和文档。 PLCrashReporter的网站是https://www.plcrashreporter.org/,文档是https://www.plcrashreporter.org/documentation/api/v1.2/

要启用客户端符号,您需要使用以下配置对其进行初始化:

  PLCrashReporterSignalHandlerType signalHandlerType = PLCrashReporterSignalHandlerTypeBSD;
  PLCrashReporterSymbolicationStrategy symbolicationStrategy = PLCrashReporterSymbolicationStrategyNone;
  PLCrashReporterConfig *config = [[PLCrashReporterConfig alloc] initWithSignalHandlerType: signalHandlerType
                                                                           symbolicationStrategy: symbolicationStrategy];
  PLCrashReporter *crashReporter  = [[PLCrashReporter alloc] initWithConfiguration: config];

这是基于下载页面上提供的最新版本1.2:https://www.plcrashreporter.org/download

但你是对的,你不应该这样做:

  • 它很慢,导致设备在发生崩溃几秒钟后锁定
  • 它要求您的应用包含将应用尺寸增加30-50%(平均)的符号
  • 您不会获得代码的行号信息。

您应该使用dSYM来表示崩溃报告,例如:在你的Mac上。