iOS:Crashlytics崩溃报告和免费RAM

在我们的一个iPhone应用程序中,我们遇到了一些Crashlytics崩溃,到目前为止,无法重现.然而,经过仔细检查,我注意到了一点趋势……

崩溃1: – [UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:]

可用内存:10%

崩溃2: – [UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:]

可用内存:8%

崩溃3:HostBase :: lock()

可用内存:8%

崩溃4: – [UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:]

可用内存:22%

免费RAM的数量是什么意思吗?我们可以确定这些是真正的崩溃而不是我们的应用程序由于内存不足而被操作系统杀死吗?如果应用程序在后台崩溃,Crashlytics会发送崩溃报告吗?

添加了几个堆栈跟踪…

异常类型:SIGSEGV,Nav Crashes

0    libobjc.A.dylib    
objc_msgSend + 15
1    UIKit ✭    
-[UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:] + 274
2    UIKit  
-[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 158
3    UIKit  
-[UIViewAnimationState animationDidStop:finished:] + 50
4    QuartzCore 
CA::Layer::run_animation_callbacks(void*) + 208
5    libdispatch.dylib  
_dispatch_client_callout + 22
6    libdispatch.dylib  
_dispatch_main_queue_callback_4CF$VARIANT$mp + 224
7    CoreFoundation 
__CFRunLoopRun + 1290
8    CoreFoundation 
CFRunLoopRunSpecific + 356
9    CoreFoundation 
CFRunLoopRunInMode + 104
10   GraphicsServices   
GSEventRunModal + 74
11   UIKit  
UIApplicationMain + 1120

异常类型:SIGSEGV,HostLock崩溃

0    libobjc.A.dylib    
objc_msgSend + 15
1    CFNetwork ✭    
HostBase::lock() + 14
2    CFNetwork  
DispatchHost::performInvocation(void const*) + 12
3    CFNetwork  
__setupTCPConnection_block_invoke_2 + 290
4
...
libsystem_network.dylib 
__tcp_connection_notify_complete_block_invoke_1 + 18
7    libsystem_c.dylib  
_pthread_wqthread + 294

最佳答案 8%的内存可以很多,我非常怀疑这是一个问题.我不知道他们是否在后台运行时发送崩溃,你必须直接询问他们,因为他们的SDK不是开源的.

您添加的两个异常堆栈跟踪都提示内存问题.

第一个看起来它试图在一个对象的动画结束时调用一个委托,它不再存在.

第二个看起来像一个类似的问题,其中完成块正在访问一个已经消失的对象.所以你可能会检查你的块是否有这样的模式.

点赞