版权声明:原创文章,未经博主允许禁止转载。欢迎点击头像上方“郭晓东的专栏”查看专栏 https://blog.csdn.net/hherima/article/details/80241683
最近iOS版本客户端崩溃率在1.5%左右,排名最高的是这个栈。当然,fabric已经说明,是内存错乱造成的,崩溃栈已经不准确了。没有复现导致开发很难查这个crash(根据栈提示,好像是block的问题,其实不然)
#0. Crashed: com.apple.main-thread
0 libobjc.A.dylib 0x1843c57f4 objc_object::release() + 16
1 libsystem_blocks.dylib 0x184b7da60 _Block_release + 160
2 libsystem_blocks.dylib 0x184b7da60 _Block_release + 160
3 libdispatch.dylib 0x184add048 _dispatch_client_callout + 16
4 libdispatch.dylib 0x184ae9b74 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1016
5 CoreFoundation 0x185101eb0 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
6 CoreFoundation 0x1850ffa8c __CFRunLoopRun + 2012
7 CoreFoundation 0x18501ffb8 CFRunLoopRunSpecific + 436
8 GraphicsServices 0x186eb7f84 GSEventRunModal + 100
9 UIKit 0x18e5f42f4 UIApplicationMain + 208
10 FVideo 0x102463290 main (main.m:14)
11 libdyld.dylib 0x184b4256c start + 4
先是根据内存判断出来,可能是内存压力大的问题。后来排除了这个想法,因为iphone启动后内存就在90%左右。
后来根据用户统计点信息确定崩溃在启动模块,即已启动就崩溃。
在后来确定了是在启动时候加载分享SDK(MobFoundation)时候crash的,终于找到了(产品经理的手机复现该问题了)。前后经历了一个多月。折腾人啊
还没走到APP的 application:didFinishLaunchingWithOptions: 就crash,调试时候客户端控制台什么也没有
话说MobFoundation怎么会在启动时候自动调用呢?还得MobFoundation的同学解答。
MobFoundation的同学更改了库后,crash如下:
2018-05-10 13:15:29.425127+0800 Video[4705:1641915] +++++++++++++index = 0, num = 28150
2018-05-10 13:15:29.425192+0800 Video[4705:1641915] -------------index = 0, num = 28150
*** CNZombie 4705: -[ isKindOfClass:] sent to deallocated instance 0x1b4213ca0
Writing to file...
Wrote stacks to /var/mobile/Containers/Data/Application/C7B6EC1A-9F22-4E78-BF2D-CCD7789C1D51/Library/Caches/ContactsZombies/CNZombiesStacks-4705-0x1b4213ca0.plist
Wrote stack mapping to /var/mobile/Containers/Data/Application/C7B6EC1A-9F22-4E78-BF2D-CCD7789C1D51/Library/Caches/ContactsZombies/CNZombiesStacksMapping-4705-0x1b4213ca0.plist