2

我是使用 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);
4

1 回答 1

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 上。

于 2014-08-28T15:53:42.580 回答