注册 登录
主题 : 悬赏五个以太币(大约一万元),解决一个Crash
级别: 新手上路
UID: 623013
精华: 0
发帖: 57
可可豆: 66 CB
威望: 66 点
在线时间: 29(时)
注册时间: 2017-09-07
最后登录: 2017-09-22
0 楼:  发表于: 2017-09-07 00:28    发自: Web Page
来源于 内存问题 分类

悬赏五个以太币(大约一万元),解决一个Crash   

我这边的iOS App最近开始出现随机的crash,从Fabric上来看,这个crash随机的出现在各个系统,各个设备中。Fabric上给出的这个crash的调用堆栈也有好几个,下面是其中3个调用堆栈。

==========1===============

#0. Crashed: com.apple.main-thread
0  QuartzCore                     0x188715730 CALayerGetSuperlayer + 20
1  UIKit                          0x188dd6fa0 -[UIView(Hierarchy) superview] + 44
2  UIKit                          0x188dd7a88 -[UIView nextResponder] + 108
3  UIKit                          0x188e9d99c -[UIResponder _containsResponder:] + 56
4  UIKit                          0x188ecfc80 -[UITransitionView transition:fromView:toView:removeFromView:] + 576
5  UIKit                          0x188f13238 -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:] + 1536
6  UIKit                          0x188f12aec -[UITabBarController _setSelectedViewController:] + 360
7  UIKit                          0x188fda30c -[UITabBarController _tabBarItemClicked:] + 336
8  UIKit                          0x188e11398 -[UIApplication sendAction:to:from:forEvent:] + 96
9  UIKit                          0x188fda160 -[UITabBar _sendAction:withEvent:] + 468
10 UIKit                          0x188e11398 -[UIApplication sendAction:to:from:forEvent:] + 96
11 UIKit                          0x188dfa474 -[UIControl _sendActionsForEvents:withEvent:] + 612
12 UIKit                          0x188fd9d98 -[UITabBar(Static) _buttonUp:] + 128
13 UIKit                          0x188e11398 -[UIApplication sendAction:to:from:forEvent:] + 96
14 UIKit                          0x188dfa474 -[UIControl _sendActionsForEvents:withEvent:] + 612
15 UIKit                          0x188e10d34 -[UIControl touchesEnded:withEvent:] + 592
16 UIKit                          0x188dcff54 _UIGestureRecognizerUpdate + 8536
17 CoreFoundation                 0x18431c2a4 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
18 CoreFoundation                 0x184319230 __CFRunLoopDoObservers + 360
19 CoreFoundation                 0x184319610 __CFRunLoopRun + 836
20 CoreFoundation                 0x1842452d4 CFRunLoopRunSpecific + 396
21 GraphicsServices               0x18dc9b6fc GSEventRunModal + 168
22 UIKit                          0x188e42f40 UIApplicationMain + 1488

======================2=======================

#0. Crashed: com.apple.main-thread
0  QuartzCore                     0x18e7ca1d0 CALayerGetSuperlayer + 20
1  UIKit                          0x191e4e9d4 -[UIView(UIKitManual) superview] + 128
2  UIKit                          0x1915d3a5c -[UIView nextResponder] + 120
3  UIKit                          0x19197d620 -[UIResponder _canChangeFirstResponder:toResponder:] + 64
4  UIKit                          0x19165c01c -[UIResponder becomeFirstResponder] + 224
5  UIKit                          0x19169b118 -[UINavigationController navigationTransitionView:didStartTransition:] + 760
6  UIKit                          0x1917758ac -[UINavigationController _startCustomTransition:] + 3852
7  UIKit                          0x19168f7bc -[UINavigationController _startDeferredTransitionIfNeeded:] + 676
8  UIKit                          0x19168f424 -[UINavigationController __viewWillLayoutSubviews] + 64
9 UIKit                          0x19168f388 -[UILayoutContainerView layoutSubviews] + 188
10 UIKit                          0x1915d5cc0 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1200
11 QuartzCore                     0x18e7c6274 -[CALayer layoutSublayers] + 148
12 QuartzCore                     0x18e7bade8 CA::Layer::layout_if_needed(CA::Transaction*) + 292
13 QuartzCore                     0x18e7baca8 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 32
14 QuartzCore                     0x18e73634c CA::Context::commit_transaction(CA::Transaction*) + 252
15 QuartzCore                     0x18e75d3ac CA::Transaction::commit() + 504
16 QuartzCore                     0x18e75de78 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 120
17 CoreFoundation                 0x18b4549a8 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
18 CoreFoundation                 0x18b452630 __CFRunLoopDoObservers + 372
19 CoreFoundation                 0x18b452a7c __CFRunLoopRun + 956
20 CoreFoundation                 0x18b382da4 CFRunLoopRunSpecific + 424
21 GraphicsServices               0x18cded074 GSEventRunModal + 100
22 UIKit                          0x19163dc9c UIApplicationMain + 208

=========3========

#0. Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x18fe4c1a0 objc_retain + 16
1  UIKit                          0x1974fba5c -[UIView nextResponder] + 120
2  UIKit                          0x1978a45ec -[UIResponder _resignIfContainsFirstResponder] + 156
3  UIKit                          0x1974fb76c -[UIView(Hierarchy) _willMoveToWindow:] + 568
4  UIKit                          0x197507d88 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 424
5  UIKit                          0x197773000 __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke_2 + 1556
6  UIKit                          0x19750e964 +[UIView(Animation) performWithoutAnimation:] + 104
7  UIKit                          0x1976e0950 __53-[_UINavigationParallaxTransition animateTransition:]_block_invoke + 260
8  UIKit                          0x1977fd388 +[UIView(Internal) _performBlockDelayingTriggeringResponderEvents:] + 220
9 UIKit                          0x1976e0450 -[_UINavigationParallaxTransition animateTransition:] + 1060
10 UIKit                          0x19769d818 -[UINavigationController _startCustomTransition:] + 3704
11 UIKit                          0x1975b77bc -[UINavigationController _startDeferredTransitionIfNeeded:] + 676
12 UIKit                          0x1975b7424 -[UINavigationController __viewWillLayoutSubviews] + 64
13 UIKit                          0x1975b7388 -[UILayoutContainerView layoutSubviews] + 188
14 UIKit                          0x1974fdcc0 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1200
15 QuartzCore                     0x1946ee274 -[CALayer layoutSublayers] + 148
16 QuartzCore                     0x1946e2de8 CA::Layer::layout_if_needed(CA::Transaction*) + 292
17 QuartzCore                     0x1946e2ca8 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 32
18 QuartzCore                     0x19465e34c CA::Context::commit_transaction(CA::Transaction*) + 252
19 QuartzCore                     0x1946853ac CA::Transaction::commit() + 504
20 UIKit                          0x1974f3308 _afterCACommitHandler + 256
21 CoreFoundation                 0x19137c9a8 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
22 CoreFoundation                 0x19137a630 __CFRunLoopDoObservers + 372
23 CoreFoundation                 0x19137aa7c __CFRunLoopRun + 956
24 CoreFoundation                 0x1912aada4 CFRunLoopRunSpecific + 424
25 GraphicsServices               0x192d15074 GSEventRunModal + 100
26 UIKit                          0x197565c9c UIApplicationMain + 208



现悬赏大约人民币两千元,求大牛帮忙解决,有意向的可以私信或回复我

我在stackoverflow上也发了。悬赏金由原来的一千人民币提高到了两千人民币,谢谢大家了
https://stackoverflow.com/questions/46086398/ios-random-crash-because-of-memory-corruption


=======更新1=======
谢谢大家积极的参与,有些问题是大家都会问的,所以再次更新一下

1. xcode自带的调试工具,例如memory,leak,instrument,都试过了,没有用,因为不能重现
2. 不是图片的问题,那个问题已经解决过了
3. 这个crash发生在所有我们支持的系统(iOS 8.0及以上)中,以及所有设备中
4. 我们没有定义任何的转场动画
5. UITabBarController是在storyboard文件中定义的,不是在代码中创建的
6. SB文件大多是由XCode 6或7创建的,由于Xcode 8会修改SB文件,所以我们不再用XCode 8编辑任何SB文件
7. 不是有人恶意攻击我们的app

这个悬赏其实已经持续了两周了,只是第一次发在这里,所以一些naive的问题已经排查过一遍了

谢谢各位,请各位继续

=======更新2======
有不少人怀疑是TabBar的问题,我几乎可以确认不是。原因如下,这个app在一个月前的版本中,还是比较稳定的,但是进行了某些改动之后的一个版本出现了这个crash,crash的比例达到了3%,因为这些改动中不包括TabBar,所以相信不会和TabBar相关。

为了近一步排查crash的原因,我们试图部分的回滚,最后在回滚一个storyboard文件之后,这个crash被比例突然降低到了1%(仍然不能接受),这个storyboard文件是在XCode 6或者7的时候创建的,但是用xcode 8打开再保存一下的话,会有一些修改(类似调整了颜色和一些大小),不清楚是否是这些修改造成了crash。

目前还有一些操作无法回滚,我们在这个版本的改动中增加了iPad的支持,所以把原来的Launch Image改成了用Launch screen storyboard的形式。由于Apple store明确规定了不能撤销对iPad的支持,所以这个操作无法回滚。不知道是否是这部分修改造成了这个crash。

现在最大的问题是这个crash无法重现,从fabric的统计来看,大多数用户也只能遇到一次crash,很少有用户能遇到两次的。


谢谢各位,请各位继续,也欢迎各位将本帖转发给别人,你可以与对方平分赏金嘛

========更新3======
我决定将悬赏金由1个以太币提高到5个以太币!!!求版主置顶,求各位扩散啊!
[ 此帖被Athrun911500在2017-09-09 09:51重新编辑 ]

关键词: ios 问题 app 内存
级别: 侠客
状态: 连续签到 - [95天]
UID: 578505
精华: 0
发帖: 161
可可豆: 676 CB
威望: 485 点
在线时间: 311(时)
注册时间: 2016-08-18
最后登录: 2017-09-25
1 楼:  发表于: 2017-09-07 08:33    发自: Web Page
代码呢。。。。。。。。。。
新手上路
级别: 新手上路
UID: 623013
精华: 0
发帖: 57
可可豆: 66 CB
威望: 66 点
在线时间: 29(时)
注册时间: 2017-09-07
最后登录: 2017-09-22
2 楼:  发表于: 2017-09-07 08:50    发自: Web Page
回 1楼(笨笨菜鸟) 的帖子
这个crash对应的堆栈没有显示出来任何和我的代码相关的东西,我不知道给哪一块的代码啊,总不能把代码全放上来吧
级别: 精灵王

状态: 连续签到 - [207天]
UID: 551166
精华: 0
发帖: 789
可可豆: 2043 CB
威望: 1569 点
在线时间: 556(时)
注册时间: 2016-03-17
最后登录: 2017-09-26
3 楼:  发表于: 2017-09-07 09:05    发自: Web Page
崩溃的点描述下,是启动崩溃,还是正运行着,不定时出现的崩溃等等。
向天下所有的女司机道歉,我错了。
级别: 新手上路
UID: 623013
精华: 0
发帖: 57
可可豆: 66 CB
威望: 66 点
在线时间: 29(时)
注册时间: 2017-09-07
最后登录: 2017-09-22
4 楼:  发表于: 2017-09-07 09:14    发自: Web Page
回 3楼(end_cancel) 的帖子
不清楚,我不能重现

从用户返回给服务器的log来开,是启动之后,在任意的位置崩溃的,没有固定的位置,刚才看的数据是16个用户,15个崩溃,所以用户那边也很少能重现出来这个crash
级别: 侠客
状态: 连续签到 - [95天]
UID: 578505
精华: 0
发帖: 161
可可豆: 676 CB
威望: 485 点
在线时间: 311(时)
注册时间: 2016-08-18
最后登录: 2017-09-25
5 楼:  发表于: 2017-09-07 09:17    发自: Web Page
回 2楼(Athrun911500) 的帖子
不知道就只能给全部了,不然。。。。
新手上路
级别: 新手上路
状态: 连续签到 - [3天]
UID: 315563
精华: 0
发帖: 12
可可豆: 27 CB
威望: 22 点
在线时间: 933(时)
注册时间: 2014-05-15
最后登录: 2017-09-26
6 楼:  发表于: 2017-09-07 09:20    发自: Web Page
看下是不是这个问题 https://www.ianisme.com/ios/2409.html
级别: 新手上路
UID: 623013
精华: 0
发帖: 57
可可豆: 66 CB
威望: 66 点
在线时间: 29(时)
注册时间: 2017-09-07
最后登录: 2017-09-22
7 楼:  发表于: 2017-09-07 09:33    发自: Web Page
Re:回 2楼(Athrun911500) 的帖子
引用
引用第5楼笨笨菜鸟于2017-09-07 09:17发表的 回 2楼(Athrun911500) 的帖子 :
不知道就只能给全部了,不然。。。。


无法给全部,首先是公司的代码,我不能轻易发出来,其次代码量非常大

你要一部分的话,我倒是可以给,前提是你告诉我要看哪一部分
级别: 新手上路
UID: 623013
精华: 0
发帖: 57
可可豆: 66 CB
威望: 66 点
在线时间: 29(时)
注册时间: 2017-09-07
最后登录: 2017-09-22
8 楼:  发表于: 2017-09-07 09:34    发自: Web Page
引用
引用第6楼death_glory于2017-09-07 09:20发表的  :
看下是不是这个问题 https://www.ianisme.com/ios/2409.html


不是这个问题,这个我之前遇到过,早就解决了
级别: 侠客
状态: 连续签到 - [4天]
UID: 283088
精华: 0
发帖: 95
可可豆: 150 CB
威望: 147 点
在线时间: 734(时)
注册时间: 2013-12-21
最后登录: 2017-09-24
9 楼:  发表于: 2017-09-07 09:36    发自: Web Page
你UITabBarController 做了转场动画了?看着像是动画的时候挂了
节奏·节奏    永不停歇的旋律
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部