QMUIStringPrivate监控到第334行总是出现Crash
Bug 表现 闪退
截图 -[NSConcreteMutableAttributedString initWithString:attributes:] (in Foundation) + 168 __58+[QMUIStringPrivate(Safety) qmuisafety_NSAttributedString]_block_invoke_2.51 -[NSAttributedString _ui_synthesizeAttributedSubstringFromRange:usingDefaultAttributes:] (in UIKitCore) + 104 如何重现
- ...
- ...
预期的表现 正常情况下,应该是什么表现
其他信息
- 设备: 真机
- iOS 版本: ios (iOS 18.3.1)
- Xcode 版本: [Xcode 16.0]
- QMUI 版本: [4.x.x]
https://github.com/Tencent/QMUI_iOS/issues/1393#issuecomment-2720616229
您好,感谢您百忙之中的回复,看日志代码是崩溃在QMUIStringPrivate.m文件中的以下代码中的第三行 NSString * (originSelectorIMP)(id, SEL, NSRange); originSelectorIMP = (NSString * ()(id, SEL, NSRange))originalIMPProvider(); NSString * result = originSelectorIMP(selfObject, originCMD, range); return result; 您的意思是未兼容iOS18导致的,用最新的代码中的QMUIStringPrivate文件做一下本地的更新替换可以解决问题对吗?
不仅iOS18以上存在这个问题,根据监控数据,iOS系统为: 17.5.1,也有出现Crash
不仅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])])。
好的,谢谢,我这边用您git仓库里最新的代码QMUIStringPrivate.m文件做了替换,新版本观察一段时间,再看一下
您好,我们把本地文件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