QMUI_iOS icon indicating copy to clipboard operation
QMUI_iOS copied to clipboard

QMUIStringPrivate监控到第334行总是出现Crash

Open sweetlyGit opened this issue 9 months ago • 6 comments

Bug 表现 闪退

截图 -[NSConcreteMutableAttributedString initWithString:attributes:] (in Foundation) + 168 __58+[QMUIStringPrivate(Safety) qmuisafety_NSAttributedString]_block_invoke_2.51 -[NSAttributedString _ui_synthesizeAttributedSubstringFromRange:usingDefaultAttributes:] (in UIKitCore) + 104 如何重现

  1. ...
  2. ...

预期的表现 正常情况下,应该是什么表现

其他信息

  • 设备: 真机
  • iOS 版本: ios (iOS 18.3.1)
  • Xcode 版本: [Xcode 16.0]
  • QMUI 版本: [4.x.x]

sweetlyGit avatar Mar 13 '25 11:03 sweetlyGit

https://github.com/Tencent/QMUI_iOS/issues/1393#issuecomment-2720616229

MoLice avatar Mar 13 '25 12:03 MoLice

#1393 (comment)

您好,感谢您百忙之中的回复,看日志代码是崩溃在QMUIStringPrivate.m文件中的以下代码中的第三行 NSString * (originSelectorIMP)(id, SEL, NSRange); originSelectorIMP = (NSString * ()(id, SEL, NSRange))originalIMPProvider(); NSString * result = originSelectorIMP(selfObject, originCMD, range); return result; 您的意思是未兼容iOS18导致的,用最新的代码中的QMUIStringPrivate文件做一下本地的更新替换可以解决问题对吗?

sweetlyGit avatar Mar 14 '25 02:03 sweetlyGit

不仅iOS18以上存在这个问题,根据监控数据,iOS系统为: 17.5.1,也有出现Crash

sweetlyGit avatar Mar 14 '25 02:03 sweetlyGit

不仅iOS18以上存在这个问题,根据监控数据,iOS系统为: 17.5.1,也有出现Crash

@sweetlyGit 只能下载到17.5.0的模拟器,验证过没问题,无法验证你说的17.5.1。 你也可以自己把 zip 文件里的 if iOS 18 的判断改为 if ([NSClassFromString([NSString qmui_stringByConcat:@"UIKeyb", @"oard", @"Impl", nil]) instancesRespondToSelector:NSSelectorFromString([NSString qmui_stringByConcat:@"handleKeyWithString:", @"forKeyEvent:", @"executionContext:", nil])])

MoLice avatar Mar 14 '25 05:03 MoLice

好的,谢谢,我这边用您git仓库里最新的代码QMUIStringPrivate.m文件做了替换,新版本观察一段时间,再看一下

sweetlyGit avatar Mar 14 '25 05:03 sweetlyGit

您好,我们把本地文件QMUIStringPrivate.m替换为了git仓库目前最新的QMUIStringPrivate.m文件(共413行),观察发现还是在该文件的399行,出现了Crash,Crash具体日志如下: +[NSAttributeDictionary newWithDictionary:] (in UIFoundation) + 136 -[NSConcreteMutableAttributedString initWithString:attributes:] (in Foundation) + 168 __58+[QMUIStringPrivate(Safety) qmuisafety_NSAttributedString]_block_invoke_2.71(QMUIStringPrivate.m:399) -[NSAttributedString _ui_synthesizeAttributedSubstringFromRange:usingDefaultAttributes:] (in UIKitCore) + 104

Crash设备的操作系统:iOS 16.1.2,烦请帮忙请核查一下 @MoLice

sweetlyGit avatar Mar 28 '25 02:03 sweetlyGit