iOS CloudDocsLibrary崩溃(可能是KVO崩溃)

是否有人通过以下堆栈跟踪发生崩溃(EXC_BAD_accESS):

0 Object_isClass
22 UIApplicationmain
23 main
24 start

如果在堆栈跟踪中单击UIApplicationmain,则会得到以下信息:

UIKitCore`UIApplicationmain:
0x21a6ef8a4 <+0>:   stp    x24,x23,[sp,#-0x40]!
0x21a6ef8a8 <+4>:   stp    x22,x21,#0x10]
0x21a6ef8ac <+8>:   stp    x20,x19,#0x20]
0x21a6ef8b0 <+12>:  stp    x29,x30,#0x30]
0x21a6ef8b4 <+16>:  add    x29,sp,#0x30            ; =0x30 
0x21a6ef8b8 <+20>:  mov    x20,x3
0x21a6ef8bc <+24>:  mov    x21,x1
0x21a6ef8c0 <+28>:  mov    x22,x0
0x21a6ef8c4 <+32>:  mov    x0,x2
0x21a6ef8c8 <+36>:  bl     0x21ac17b68               ; symbol stub for: -[_UICloudSharingactivity _activitySupportsPromiseURLs]
0x21a6ef8cc <+40>:  mov    x19,x0
0x21a6ef8d0 <+44>:  mov    x0,x20
0x21a6ef8d4 <+48>:  bl     0x21ac17b68               ; symbol stub for: -[_UICloudSharingactivity _activitySupportsPromiseURLs]
0x21a6ef8d8 <+52>:  mov    x20,x0
0x21a6ef8dc <+56>:  mov    w0,#0x168
0x21a6ef8e0 <+60>:  movk   w0,#0x2b87,lsl #16
0x21a6ef8e4 <+64>:  mov    w1,#0x32
0x21a6ef8e8 <+68>:  mov    x2,#0x0
0x21a6ef8ec <+72>:  mov    x3,#0x0
0x21a6ef8f0 <+76>:  mov    x4,#0x0
0x21a6ef8f4 <+80>:  bl     0x21ac1779c               ; symbol stub for: __66-[UICloudSharingController _deleteShareAfterDismissalWithoutSave:]_block_invoke_2
0x21a6ef8f8 <+84>:  orr    w0,wzr,#0x3
0x21a6ef8fc <+88>:  orr    w1,#0x3
0x21a6ef900 <+92>:  mov    x2,#-0x1
0x21a6ef904 <+96>:  orr    x4,xzr,#0x8000000000000000
0x21a6ef908 <+100>: mov    w3,#0x0
0x21a6ef90c <+104>: bl     0x21ac175c8               ; symbol stub for: -[UIWebView webView:decidePolicyForNewWindowaction:request:newFrameName:decisionListener:]
0x21a6ef910 <+108>: adrp   x23,52595
0x21a6ef914 <+112>: ldr    w8,[x23,#0x364]
0x21a6ef918 <+116>: cbz    w8,0x21a6ef9a0           ; <+252>
0x21a6ef91c <+120>: lsr    w8,w8,#8
0x21a6ef920 <+124>: cmp    w8,#0x201                ; =0x201 
0x21a6ef924 <+128>: b.lo   0x21a6ef950               ; <+172>
0x21a6ef928 <+132>: bl     0x21ac17a48               ; symbol stub for: -[_UIShareParticipantDetails detailText]
0x21a6ef92c <+136>: mov    x23,x0
0x21a6ef930 <+140>: mov    x0,x22
0x21a6ef934 <+144>: mov    x1,x21
0x21a6ef938 <+148>: mov    x2,x19
0x21a6ef93c <+152>: mov    x3,x20
0x21a6ef940 <+156>: bl     0x21a6ef9d0               ; _UIApplicationmainPreparations
0x21a6ef944 <+160>: mov    x0,x23
0x21a6ef948 <+164>: bl     0x21ac17a3c               ; symbol stub for: -[_UIShareParticipantDetails setParticipantID:]
0x21a6ef94c <+168>: b      0x21a6ef964               ; <+192>
0x21a6ef950 <+172>: mov    x0,x22
0x21a6ef954 <+176>: mov    x1,x21
0x21a6ef958 <+180>: mov    x2,x19
0x21a6ef95c <+184>: mov    x3,x20
0x21a6ef960 <+188>: bl     0x21a6ef9d0               ; _UIApplicationmainPreparations
0x21a6ef964 <+192>: adrp   x8,52595
0x21a6ef968 <+196>: ldr    x0,[x8,#0x328]
0x21a6ef96c <+200>: adrp   x8,1577
0x21a6ef970 <+204>: add    x1,x8,#0xad5            ; =0xad5 
0x21a6ef974 <+208>: bl     0x21ac17b2c               ; symbol stub for: CloudDocslibrary
0x21a6ef978 <+212>: mov    x0,x20  <--- Exception bad access code 1
0x21a6ef97c <+216>: bl     0x21ac17b5c               ; symbol stub for: -[_UICloudSharingactivity _documentSharingControllerDidDismiss:]
0x21a6ef980 <+220>: mov    x0,x19
0x21a6ef984 <+224>: bl     0x21ac17b5c               ; symbol stub for: -[_UICloudSharingactivity _documentSharingControllerDidDismiss:]
0x21a6ef988 <+228>: mov    w0,#0x0
0x21a6ef98c <+232>: ldp    x29,#0x30]
0x21a6ef990 <+236>: ldp    x20,#0x20]
0x21a6ef994 <+240>: ldp    x22,#0x10]
0x21a6ef998 <+244>: ldp    x24,[sp],#0x40
0x21a6ef99c <+248>: ret    
0x21a6ef9a0 <+252>: adrp   x8,52593
0x21a6ef9a4 <+256>: ldr    x8,#0xf40]
0x21a6ef9a8 <+260>: cmn    x8,#0x1                  ; =0x1 
0x21a6ef9ac <+264>: b.ne   0x21a6ef9b8               ; <+276>
0x21a6ef9b0 <+268>: ldr    w8,#0x364]
0x21a6ef9b4 <+272>: b      0x21a6ef91c               ; <+120>
0x21a6ef9b8 <+276>: adrp   x0,52593
0x21a6ef9bc <+280>: add    x0,x0,#0xf40            ; =0xf40 
0x21a6ef9c0 <+284>: adrp   x1,41868
0x21a6ef9c4 <+288>: add    x1,x1,#0x640            ; =0x640 
0x21a6ef9c8 <+292>: bl     0x21ac17490               ; symbol stub for: -[UIWebView _webView:commitPreview:]
0x21a6ef9cc <+296>: b      0x21a6ef9b0               ; <+268>

看起来好像在尝试做一些CloudKit东西时崩溃了吗?这很奇怪,因为我们没有任何CloudKit设置...

我只在本地(通过Xcode运行时)看到此崩溃,而不是在我们的CI中崩溃。我们最近添加了一些CoreData用法,这可以某种方式关联吗?

似乎CloudKit的东西可能是一条红色的鲱鱼,确实是KVO崩溃,因为当我在控制台中运行“ bt”命令时,我得到了包含以下警告的回溯信息: KVO_IS_RetaINING_ALL_OBSERVERS_OF_THIS_OBJECT_IF_IT_CRASHES_AN_OBSERVER_WAS_OVERRELEASED_OR_SMASHED

在尝试跟踪KVO崩溃时,我一直看到此问题,因此从某种意义上说...可惜堆栈中没有更多信息!

winjeans 回答:iOS CloudDocsLibrary崩溃(可能是KVO崩溃)

我仍然不太清楚为什么会发生这种崩溃,但是我已经通过更改某些KVO设置来解决了这个问题。

为了跟踪有问题的KVO,我注释掉了KVO代码的各个部分,并运行了一个自定义测试套件,该套件总是在30分钟左右崩溃。这导致我发现AVPlayerItem的status属性的某些基于块的KVO是罪魁祸首。

我记得有一个人很明智地引用了

  

“基于块的KVO,它可以正常工作(直到无效)”-Anon

因此我将基于块的KVO切换为旧的回调样式,崩溃似乎已经消失了。

叹气

本文链接:https://www.f2er.com/3102463.html

大家都在问