2014-06-20 144 views
0

大家好,我为我的应用程序部署了一个更新,很少有用户抱怨/评论不好的应用程序关闭它们。EXC_CRASH(SIGBART)崩溃报告

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

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

任何人都可以请善待,让我知道这可能是在下面的代码编译崩溃的应用程序的问题:

线没有导致崩溃为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 
...... 

预先感谢您的帮助!

+2

崩溃报告在哪里? – Kerni

+0

与你的问题无关,但我真的不喜欢那些疯狂的神奇数字。你应该将它们定义为常量。 –

+0

@LordZsolt ..谢谢你,我会的。 – snowflakes74

回答

2

由于崩溃报告没有完全symbolicated和异常原因未在报告中显示,以下只是一种假设:

你是说线路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报告没有包含该报告,因此将第三方崩溃报告功能集成到您的应用中可能会有帮助。 (因为我有偏见,所以不要提出建议,大多数答案也会有偏差,而是自己测试并明智地选择)。

+0

谢谢你的解释。我做了resymbolicate,它帮助我更好地理解它。我现在已经添加了第三方用于错误记录。感谢您的时间和精力。 – snowflakes74