我如何追踪由于iOS应用程序中无效约束而发生的崩溃



我在我的应用程序中有BugSense来检测和上传用户的崩溃报告。我得到以下崩溃,我无法追踪。有没有人能给我一些提示,告诉我怎样才能弄清楚这里发生了什么?

NSInternalInconsistencyException
    <NSISEngine: 0x1659edd0>{ Rows: UILayoutContainerView:0x165731d0.Height{id: 78} ==
 960 + 1*0x16593640:UIView-Encapsulated-Layout-Height.marker{id: 83} UILayoutContainerView:0x165731d0.Width{id: 75} == 
640 + 1*0x16593610:UIView-Encapsulated-Layout-Width.marker{id: 80} UINavigationTransitionView:0x165743e0.Height{id: 74} == 
960 + 2*0x165a3480.marker{id: 79} + 1*0x16593640:UIView-Encapsulated-Layout-Height.marker{id: 83} UINavigationTransitionView:0x165743e0.Width{id: 72} == 
640 + 2*0

0   CoreFoundation  <redacted> + 130    
1   libobjc.A.dylib objc_exception_throw + 38   
2   CoreFoundation  <redacted> + 0  
3   Foundation  <redacted> + 220    
4   Foundation  <redacted> + 174    
5   Foundation  <redacted> + 316    
6   UIKit   <redacted> + 200    
7   UIKit   <redacted> + 82 
8   Foundation  <redacted> + 210    
9   UIKit   <redacted> + 298    
10  UIKit   <redacted> + 1414   
11  UIKit   <redacted> + 36 
12  UIKit   <redacted> + 1332   
13  UIKit   <redacted> + 72 
14  UIKit   <redacted> + 728    
15  UIKit   <redacted> + 2614   
16  UIKit   <redacted> + 418    
17  UIKit   <redacted> + 44 
18  UIKit   <redacted> + 184    
19  UIKit   <redacted> + 380    
20  QuartzCore  <redacted> + 142    
21  QuartzCore  <redacted> + 350    
22  QuartzCore  <redacted> + 16 
23  QuartzCore  <redacted> + 230    
24  QuartzCore  <redacted> + 314    
25  UIKit   <redacted> + 8232   
26  CoreFoundation  <redacted> + 14 
27  CoreFoundation  <redacted> + 206    
28  CoreFoundation  <redacted> + 622    
29  CoreFoundation  CFRunLoopRunSpecific + 522  
30  CoreFoundation  CFRunLoopRunInMode + 106    
31  GraphicsServices    GSEventRunModal + 138   
32  UIKit   UIApplicationMain + 1136    
33  Video Games main (main.m:16) + 874715   
34  libdyld.dylib   <redacted> + 2

根据Apple的文档:

NSInternalInconsistencyException

Name of an exception that occurs when an internal assertion fails and implies an unexpected condition within the called code. Available in OS X v10.0 and later. Declared in NSException.h.

你面临的崩溃可能有很多原因,我们只能指定如果你可以共享一些代码。

你在问题中提到的崩溃日志给了我们如下提示:

1)这似乎是一个自定义过渡动画的问题(如其他提到的)。

2)正如MaxGabriel的评论所述:

这听起来像一个自动布局问题(只是猜测,但我知道,当一个仿射变换是应用它的帧属性的值是未定义的。也许自动布局正在使用框架?为了测试这个理论,你可以删除转换,看看错误是否仍然发生。

3)如Daniel C的回答所述

当你在XCode之外重命名一些文件时,可能会发生这个错误。为了解决这个问题,你可以从你的项目中删除文件(右键单击-删除和"删除参考")。你重新导入项目中的文件,一切都会好起来的!

4)看看这个链接,可能会对你有所帮助。

5)从崩溃日志来看,似乎是iPhone4(4/4s)发生崩溃。

这个崩溃发生在ios7或更低版本吗?请提一下。它也将帮助我们找出崩溃的原因。

希望这些信息能帮助你。

正如其他人在评论中指出的那样,这似乎是自定义过渡动画的问题。我能从中得到的唯一其他信息是,它发生在3.5英寸的视网膜屏幕上。

这是在黑暗中摸索,但会不会有一些限制在3.5英寸的屏幕上无法满足?您可能还想检查是否存在与自定义约束相矛盾的自动调整遮罩约束(参见-[UIView translatesAutoresizingMasksIntoConstraints])。

要获得更多信息,您必须包含更详细的日志记录或自己复制崩溃。

最新更新