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

最佳答案

您正在链接到旧的存储库和文档。 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上。

    08-16 07:16