longitachi / ZLPhotoBrowser

Wechat-like image picker. Support select photos, videos, gif and livePhoto. Support edit image and crop video. 微信样式的图片选择器,支持预览/相册内拍照及录视频、拖拽/滑动选择,编辑图片/视频,支持多语言国际化等功能;
MIT License
4.76k stars 963 forks source link

Crash: EXC_BAD_ACCESS KERN_PROTECTION_FAILURE 0x0000001b3956c160 #752

Closed jordaneckhardt closed 2 years ago

jordaneckhardt commented 2 years ago

Issue Description

This crash occurred for a user in a TestFlight:

EXC_BAD_ACCESS KERN_PROTECTION_FAILURE 0x0000001b3956c160

Crashed: com.apple.main-thread
0  libswiftCore.dylib             0x3db514 swift_unknownObjectRetain + 20
1  ZLPhotoBrowser                 0x7dc9c $s14ZLPhotoBrowser0aB7WrapperVAASo7UIImageCRbzlE20delayForImageAtIndex33_C5FC5D797A0D174675402DA00A643390LL_6sourceSdSi_So16CGImageSourceRefaSgtFZAE_Tg5Tf4nnd_n + 288
2  ZLPhotoBrowser                 0x7de30 $s14ZLPhotoBrowser0aB7WrapperVAASo7UIImageCRbzlE15animateGifImage4dataAESg10Foundation4DataV_tFZAE_Tg5Tf4nd_n + 276
3  ZLPhotoBrowser                 0x7c61c $s14ZLPhotoBrowser13ZLPreviewViewC11loadGifDatayyFy10Foundation0G0V_SDys11AnyHashableVypGSgSbtcfU0_ + 476
4  ZLPhotoBrowser                 0x7078c $s14ZLPhotoBrowser0A7ManagerC22fetchOriginalImageData3for8progress10completions5Int32VSo7PHAssetC_y12CoreGraphics7CGFloatV_s5Error_pSgSpy10ObjectiveC8ObjCBoolVGSDys11AnyHashableVypGSgtcSgy10Foundation0G0V_AXSbtctFZyA0_Sg_SSSgSo18UIImageOrientationVAXtcfU0_ + 592
5  ZLPhotoBrowser                 0x70860 $s10Foundation4DataVSgSSSgSo18UIImageOrientationVSDys11AnyHashableVypGSgIegggyg_So6NSDataCSgSo8NSStringCSgAGSo12NSDictionaryCSgIeyByyyy_TR + 184
6  Photos                         0x215b28 __65-[PHImageManager requestImageDataForAsset:options:resultHandler:]_block_invoke + 132
7  Photos                         0x215980 __79-[PHImageManager requestImageDataAndOrientationForAsset:options:resultHandler:]_block_invoke_2 + 172
8  libdispatch.dylib              0x1e6c _dispatch_call_block_and_release + 32
9  libdispatch.dylib              0x3a30 _dispatch_client_callout + 20
10 libdispatch.dylib              0x11f48 _dispatch_main_queue_drain + 928
11 libdispatch.dylib              0x11b98 _dispatch_main_queue_callback_4CF + 44
12 CoreFoundation                 0x51800 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
13 CoreFoundation                 0xb704 __CFRunLoopRun + 2532
14 CoreFoundation                 0x1ebc8 CFRunLoopRunSpecific + 600
15 GraphicsServices               0x1374 GSEventRunModal + 164
16 UIKitCore                      0x514b58 -[UIApplication _run] + 1100
17 UIKitCore                      0x296090 UIApplicationMain + 364
18 libswiftUIKit.dylib            0x30ecc UIApplicationMain(_:_:_:_:) + 104

Info

ZLPhotoBrowser version: 4.3.5 Device: iPhone 11 Device version: iOS 15.6.1 Xcode version: Version 14.0 beta 6

Configuration code of ZLPhotoConfiguration

ZLPhotoConfiguration.default().maxRecordDuration = 120
ZLPhotoConfiguration.default().maxSelectCount = 6
ZLPhotoConfiguration.default().maxVideoSelectCount = 1
ZLPhotoConfiguration.default().maxSelectVideoDuration = 120
ZLPhotoConfiguration.default().allowEditVideo = true
ZLPhotoConfiguration.default().allowSelectOriginal = false
ZLPhotoConfiguration.default().useCustomCamera = false
ZLPhotoConfiguration.default().cameraConfiguration.videoExportType = .mp4
ZLPhotoUIConfiguration.default().bottomToolViewBtnNormalBgColor = .clear
ZLPhotoUIConfiguration.default().bottomToolViewBtnNormalBgColorOfPreviewVC = .clear
ZLPhotoUIConfiguration.default().indexLabelBgColor = .black

let imagePicker = ZLPhotoPreviewSheet(selectedAssets: assets)
imagePicker.selectImageBlock = { [weak self] (uiImages, phAssets, isOriginal) in
    ...
}
longitachi commented 2 years ago

I updated the method of parsing GIF. You can use the latest code to see if it still crashes.

jordaneckhardt commented 2 years ago

Thank you!