PLCrashReporter - 如何直接从 Xcode 本身将 .plcrash 转换为 .crash 并将其保存在本地
Posted
技术标签:
【中文标题】PLCrashReporter - 如何直接从 Xcode 本身将 .plcrash 转换为 .crash 并将其保存在本地【英文标题】:PLCrashReporter - How to convert .plcrash to .crash directly from Xcode itself and save it locally 【发布时间】:2011-12-30 12:20:20 【问题描述】:我目前正在使用 PLCrashReporter,需要一些帮助才能将 plcrash 直接转换为 .crash 文件,而不是使用 plcrashutil。
我现在做的是——
我模拟了一次崩溃,它创建了一个 myapp.plcrash 文件。
生成后,我在命令行上使用以下内容 -
plcrashutil convert --format=iphone myapp.plcrash > app.crash
这很好用 - 但是有没有办法我不必做这个额外的步骤,直接从我的代码中将其转换为 .crash 可能通过导入库或其他方式??
任何解决方案???
【问题讨论】:
【参考方案1】:找到答案
如果其他人正在寻找它,这就是解决方案..
PLCrashReportTextFormat textFormat = PLCrashReportTextFormatios;
/* Decode data */
PLCrashReport *crashLog = [[PLCrashReport alloc] initWithData: data error: &error];
if (crashLog == nil)
NSLog(@"Could not decode crash file :%@", [[error localizedDescription] UTF8String]);
else
NSString* report = [PLCrashReportTextFormatter stringValueForCrashReport: crashLog withTextFormat: textFormat];
NSLog(@"Crash log \n\n\n%@ \n\n\n", report);
NSString *outputPath = [documentsDirectory stringByAppendingPathComponent: @"app.crash"];
if (![report writeToFile:outputPath atomically:YES encoding:NSUTF8StringEncoding error:nil])
NSLog(@"Failed to write crash report");
else
NSLog(@"Saved crash report to: %@", outputPath);
【讨论】:
你在哪里表示数据? 尝试了一段时间,是的,这种新格式可以使用 symbolicatecrash 进行符号化,尽管它看起来与 plcrashutils 生成的崩溃文件不同。就我而言,我只是通过网络发送了报告(无需发布二进制数据)。 vivianaranha 请添加 swift 版本 我这样做了,但它仍然没有显示错误的行号【参考方案2】:您是否尝试过以新格式对 .crash 文件进行符号化?
【讨论】:
以上是关于PLCrashReporter - 如何直接从 Xcode 本身将 .plcrash 转换为 .crash 并将其保存在本地的主要内容,如果未能解决你的问题,请参考以下文章
使用 PLCrashReporter 会禁用 iTunes 连接崩溃报告吗?