EFPrefix / EFQRCode

A better way to operate QR Code in Swift, support iOS, macOS, watchOS and tvOS.
https://efprefix.github.io/EFQRCode
MIT License
4.58k stars 485 forks source link

CIFilter(name: "CIQRCodeGenerator") 方法崩溃 #77

Closed 472125266 closed 5 years ago

472125266 commented 5 years ago

您好:我在使用EFQRCode时,在真机器iPhone X以上机型中:CIFilter(name: "CIQRCodeGenerator") 方法会崩溃,在真机器iPhone X以下,及iPhone 8 等,系统版本均为iOS13.1.3最新的,方法会无缘无故崩溃掉.请帮忙分析以下.谢谢

472125266 commented 5 years ago

在真机器iPhone X以下,即iPhone 8 等正常.手机版本均为iOS13.1.3

ApolloZhu commented 5 years ago

有更详细的崩溃报告吗?我这边是 iPhone X, iOS 13.2 的 beta,用 Xcode 和 Xcode beta 都无法重现。

还有,如果真的是 CIFilter(name: "CIQRCodeGenerator") 本身崩溃的话,听起来更像是苹果的问题。

472125266 commented 5 years ago

以下是错误日志: CloudPhotographyPK`perform_rebinding_with_section: 0x100870508 <+0>: sub sp, sp, #0x80 ; =0x80 0x10087050c <+4>: stp x28, x27, [sp, #0x20] 0x100870510 <+8>: stp x26, x25, [sp, #0x30] 0x100870514 <+12>: stp x24, x23, [sp, #0x40] 0x100870518 <+16>: stp x22, x21, [sp, #0x50] 0x10087051c <+20>: stp x20, x19, [sp, #0x60] 0x100870520 <+24>: stp x29, x30, [sp, #0x70] 0x100870524 <+28>: add x29, sp, #0x70 ; =0x70 0x100870528 <+32>: stp x3, x4, [sp, #0x8] 0x10087052c <+36>: mov x21, x1 0x100870530 <+40>: str x0, [sp, #0x18] 0x100870534 <+44>: ldr x8, [x21, #0x28] 0x100870538 <+48>: cmp x8, #0x8 ; =0x8 0x10087053c <+52>: b.lo 0x100870644 ; <+316> at BTGFishhook.c:114 0x100870540 <+56>: mov x24, #0x0 0x100870544 <+60>: ldr w8, [x21, #0x44] 0x100870548 <+64>: add x25, x5, x8, lsl #2 0x10087054c <+68>: ldr x8, [x21, #0x20] 0x100870550 <+72>: add x8, x8, x2 0x100870554 <+76>: str x8, [sp] 0x100870558 <+80>: orr w19, wzr, #0x18 0x10087055c <+84>: ldr w8, [x25, x24, lsl #2] 0x100870560 <+88>: orr w9, wzr, #0x80000000 0x100870564 <+92>: cmp w8, w9 0x100870568 <+96>: orr w9, wzr, #0xc0000000 0x10087056c <+100>: ccmp w8, w9, #0x4, ne 0x100870570 <+104>: orr w9, wzr, #0x40000000 0x100870574 <+108>: ccmp w8, w9, #0x4, ne 0x100870578 <+112>: b.eq 0x100870634 ; <+300> at BTGFishhook.c:87 0x10087057c <+116>: lsl x8, x8, #4 0x100870580 <+120>: ldr x9, [sp, #0x8] 0x100870584 <+124>: ldr w8, [x9, x8] 0x100870588 <+128>: ldr x9, [sp, #0x10] 0x10087058c <+132>: add x23, x9, x8 0x100870590 <+136>: orr w1, wzr, #0x2 0x100870594 <+140>: mov x0, x23 0x100870598 <+144>: bl 0x100952804 ; symbol stub for: strnlen 0x10087059c <+148>: cmp x0, #0x2 ; =0x2 0x1008705a0 <+152>: ldr x8, [sp, #0x18] 0x1008705a4 <+156>: ccmp x8, #0x0, #0x4, hs 0x1008705a8 <+160>: b.eq 0x100870634 ; <+300> at BTGFishhook.c:87 0x1008705ac <+164>: add x23, x23, #0x1 ; =0x1 0x1008705b0 <+168>: ldr x22, [sp, #0x18] 0x1008705b4 <+172>: ldr x26, [x22, #0x8] 0x1008705b8 <+176>: cbz x26, 0x1008705ec ; <+228> at BTGFishhook.c:110 0x1008705bc <+180>: mov x27, #0x0 0x1008705c0 <+184>: ldr x28, [x22] 0x1008705c4 <+188>: orr w20, wzr, #0x1 0x1008705c8 <+192>: mul x8, x27, x19 0x1008705cc <+196>: ldr x1, [x28, x8] 0x1008705d0 <+200>: mov x0, x23 0x1008705d4 <+204>: bl 0x1009527a4 ; symbol stub for: strcmp 0x1008705d8 <+208>: cbz w0, 0x1008705f8 ; <+240> at BTGFishhook.c:102 0x1008705dc <+212>: mov w27, w20 0x1008705e0 <+216>: add w20, w20, #0x1 ; =0x1 0x1008705e4 <+220>: cmp x27, x26 0x1008705e8 <+224>: b.lo 0x1008705c8 ; <+192> at BTGFishhook.c:101 0x1008705ec <+228>: ldr x22, [x22, #0x10] 0x1008705f0 <+232>: cbnz x22, 0x1008705b4 ; <+172> at BTGFishhook.c:100 0x1008705f4 <+236>: b 0x100870634 ; <+300> at BTGFishhook.c:87 0x1008705f8 <+240>: madd x8, x27, x19, x28 0x1008705fc <+244>: ldr x8, [x8, #0x10] 0x100870600 <+248>: cbz x8, 0x100870624 ; <+284> at BTGFishhook.c:106 0x100870604 <+252>: ldr x9, [sp] 0x100870608 <+256>: ldr x9, [x9, x24, lsl #3] 0x10087060c <+260>: madd x10, x27, x19, x28 0x100870610 <+264>: ldr x10, [x10, #0x8] 0x100870614 <+268>: cmp x9, x10 0x100870618 <+272>: b.eq 0x100870624 ; <+284> at BTGFishhook.c:106 0x10087061c <+276>: str x9, [x8] 0x100870620 <+280>: ldr x28, [x22] 0x100870624 <+284>: madd x8, x27, x19, x28 0x100870628 <+288>: ldr x8, [x8, #0x8] 0x10087062c <+292>: ldr x9, [sp] -> 0x100870630 <+296>: str x8, [x9, x24, lsl #3] 0x100870634 <+300>: add w24, w24, #0x1 ; =0x1 0x100870638 <+304>: ldr x8, [x21, #0x28] 0x10087063c <+308>: cmp x24, x8, lsr #3 0x100870640 <+312>: b.lo 0x10087055c ; <+84> at BTGFishhook.c:88 0x100870644 <+316>: ldp x29, x30, [sp, #0x70] 0x100870648 <+320>: ldp x20, x19, [sp, #0x60] 0x10087064c <+324>: ldp x22, x21, [sp, #0x50] 0x100870650 <+328>: ldp x24, x23, [sp, #0x40] 0x100870654 <+332>: ldp x26, x25, [sp, #0x30] 0x100870658 <+336>: ldp x28, x27, [sp, #0x20] 0x10087065c <+340>: add sp, sp, #0x80 ; =0x80 0x100870660 <+344>: ret
在-> 0x100870630 <+296>: str x8, [x9, x24, lsl #3]处崩溃.我这次用的是iPhone Xr,iOS版本:13.1.3,Xcode版本:10.1 截图我也发给您邮箱了~ @ApolloZhu

472125266 commented 5 years ago

@ApolloZhu 抱歉,我邮件收到的邮件,对于关于崩溃截图的展示,发送不过去,提示您那边:邮件大小做了限制.无法在我收到的邮件里,进行对您的回复~

ApolloZhu commented 5 years ago
  1. GitHub 可以上传图片,您可以试试
  2. 您可以试试 iOS-13 分支是否解决了问题

  1. 我其实看不懂 assembly,所以还是不知道为什么崩溃了
472125266 commented 5 years ago

您好:这是截图: Snip20191019_1 Snip20191019_2 Snip20191019_3 Snip20191019_4 Snip20191019_5

ApolloZhu commented 5 years ago

看起来像是 fishhook 的问题

https://github.com/facebook/fishhook/issues/69

472125266 commented 5 years ago

您感觉这种问题,是只会在一些特别机型、特别版本上有么?有没有什么好的其他办法?

ApolloZhu commented 5 years ago

既然这既不是 iOS 也不是 EFQRCode 导致的话,那这个问题的具体解决方法需要问 fishhook 那边了

472125266 commented 5 years ago

您好,我想多问一下:为什么会出现这种情况?还只是有的手机会有,麻烦给作为小白的我上一课,让我明白知其然,和知其所以然.抱拳~

ApolloZhu commented 5 years ago

这完全取决于 facebook 的 fishhook 是怎么写的,可惜我没有研究过这个黑魔法是怎么实现的,所以无法给出解释。

xhl916235259 commented 5 years ago

我也遇到这个这个crash问题,刚才已经解决了,具体的原因是你的应用或者使用的第三方模块引用fishhook导致的问题,只需要移除即可,比如我使用的Bugtagss检测工具导致闪退

stephenzl commented 5 years ago

我也遇到这个这个crash问题,刚才已经解决了,具体的原因是你的应用或者使用的第三方模块引用fishhook导致的问题,只需要移除即可,比如我使用的Bugtagss检测工具导致闪退

Bugtags 新版本已经解决了这个问题哦。

472125266 commented 5 years ago

@stephenzl Thank you very much