Closed dennis-crypto closed 1 year ago
你在这个方法里面第一行调试下看下崩溃的时候是不是主线程吧
private func requestSelectPhoto(viewController: UIViewController? = nil)
如果不是的话试试加上这句代码看能解决不能,如果能的话我修复下
guard Thread.isMainThread else {
requestSelectPhoto(viewController: viewController)
return
}
@longitachi 感谢回复
你在这个方法里面第一行调试下看下崩溃的时候是不是主线程吧
private func requestSelectPhoto(viewController: UIViewController? = nil)
崩溃的场景下,在这一行还是处在主线程的.然后执行到了 callback 的block里面才莫名切换到后台线程(而且十分奇怪的是只有某些图片会这样)
@longitachi 你可以用这张图片来调试来更准确的定位问题
我 xcode14.0.1
iPhone 12 iOS 16
试了下这张图片,没有出现崩溃
one 12 iOS 16 😮💨 那么奇怪, 我用这张图片(目前除了这张图片其他都不会出现,好巧不巧用sketch 编辑点图片来测试edge case就正好中了 🤣)测试大概率出现非主线程错误 我测试的机型有:
iPhone 11 Pro iOS 15 or 16
模拟器13 pro iOS 15
这 case 蛮极端的, 我先看firebase 监测情况, 大概率不会有用户出现 🙏 感谢跟进
Issue Description
Description and Steps
1.点击选择图片 2.选中一张特殊的图片(高度很小, 比如0.01,长度正常,且低分辨率 ),直接崩溃,而且居然报非主线操作UI crash 没办法在pod 外部修复, 亲测 在对应的地方显示加上 ZLMainAsync 可修复 ··· ZLMainAsync { crash code } ··· 如下图:
Info
ZLPhotoBrowser version: e.g. 4.3.5 + 4.3.6 + 4.3.7 Device: e.g. iPhone 13 +13 pro ( 所有机型) Device version: e.g. iOS 14.0 Xcode version: e.g. Xcode 12.0
Configuration code of
ZLPhotoConfiguration