EXC_CRASH(SIGBART)崩溃报告

时间:2014-06-20 11:00:31

标签: ios objective-c

大家好,我为我的应用部署了一个更新,很少有用户抱怨/坏评论等关闭他们的应用程序。

一位用户向我发送了崩溃报告,我重新对其进行了符号化,并显示了崩溃的方法和行号。

我尝试了很多可能的解决方案,但对于我的生活,我无法在我的设备上重现它。

有没有人可以帮助我,让我知道以下代码中的问题可能会导致应用程序崩溃:

它没有崩溃的线是m:555,即

NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName: font}];

我不确定问题是什么,我试过传递@“”为空内容仍然没有崩溃。

-(CGFloat)getCellHeightForContent:(NSString*)content
{
NSString *text = content;

CGFloat width = self.tableview.frame.size.width - 15 - 30 - 15;  //tableView width - left border width - accessory indicator - right border width
UIFont *font = [UIFont systemFontOfSize:17];
NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName: font}];
CGRect rect = [attributedText boundingRectWithSize:(CGSize){width, CGFLOAT_MAX}
                                           options:NSStringDrawingUsesLineFragmentOrigin
                                           context:nil];
CGSize size = rect.size;
size.height = ceilf(size.height);
size.width  = ceilf(size.width);
if ((size.height )+ 5 < 70) {
    return 70;
}
return size.height + 15;
}

这是崩溃报告

Incident Identifier: CAB2B27B-F65F-4F8A-82C6-C1AECD791335
CrashReporter Key:   759ffd08fa781ee7b8ae9515835758c563110d7f
Hardware Model:      iPhone5,1
Process:             xxxx [9226]
Path:                /var/mobile/Applications/AA5E7A52-ED1E-421F-B377-CF32D55E71EA/xxxx.app/xxxx
Identifier:          com.xxxx.xxxx
Version:             7.0.1 (7.0.1)
Code Type:           ARM (Native)
Parent Process:      launchd [1]
Date/Time:           2014-06-18 22:09:44.336 -0400
OS Version:          iOS 7.1.1 (11D201)
Report Version:      104
Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread:  0
Last Exception Backtrace:
0   CoreFoundation                  0x2e33bf06 0x2e267000 + 872198
1   libobjc.A.dylib                 0x38ad2ce2 0x38acf000 + 15586
2   CoreFoundation                  0x2e33be48 0x2e267000 + 872008
3   Foundation                      0x2ec72bd0 0x2ec57000 + 113616
4   Foundation                      0x2ec72aac 0x2ec57000 + 113324
5   xxxx                    0x00073850 -[DetailVC getCellHeightForContent:] (DetailVC.m:555)
6   xxxx                    0x000725b4 -[DetailVC tableView:heightForRowAtIndexPath:] (DetailVC.m:382)
7   UIKit                           0x30c7b1ae 0x30b60000 + 1159598
8   UIKit                           0x30c3fd92 0x30b60000 + 916882
9   UIKit                           0x30c41b6c 0x30b60000 + 924524
10  UIKit                           0x30c41ac0 0x30b60000 + 924352
11  UIKit                           0x30c416ba 0x30b60000 + 923322
12  xxxx                    0x00070c4c -[DetailVC viewDidLoad] (DetailVC.m:157)
13  UIKit                           0x30b6fa4e 0x30b60000 + 64078
14  UIKit                           0x30b6f80c 0x30b60000 + 63500
15  UIKit                           0x30cfbc0e 0x30b60000 + 1686542
16  UIKit                           0x30c1948a 0x30b60000 + 758922
......

提前感谢您的帮助!!

1 个答案:

答案 0 :(得分:2)

由于崩溃报告未完全符号化,并且报告中未显示异常原因,因此以下仅为假设:

你说第555行引用了这段代码:

NSAttributedString *attributedText = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName: font}];

导致异常可能是因为textnil

您应该尝试获取完全符号化的崩溃报告。这要求你的Mac拥有armv7s或armv7的iOS 7.1.1的iOS符号。通过连接iPhone 5或iPad 3以及运行到Mac的iOS 7.1.1,您可以获得这些符号。如果你不能这样做,请在某个地方提供完整的崩溃报告,并且这次我将为你进行符号化。

如果您收到的崩溃报告也显示异常原因,那就更好了,但通常Apple报告不包含该报告,因此将第三方崩溃报告功能集成到您的应用中可能会有所帮助。 (不要求建议,因为我有偏见,大多数答案也会有偏见,而是自己测试并明智地选择)。