Juanpe / SkeletonView

☠️ An elegant way to show users that something is happening and also prepare them to which contents they are awaiting
MIT License
12.62k stars 1.12k forks source link

@objc UIView.skeletonLayoutSubviews() EXC_BAD_ACCESS (KERN_PROTECTION_FAILURE) #533

Open iamjcabarra opened 1 year ago

iamjcabarra commented 1 year ago

Description

I've been seeing crash reports from Firebase related to SkeletonView.

What type of issue is this? (place an x in one of the [ ])

Requirements (place an x in each of the [ ])


Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

SkeletonView Environment:

SkeletonView version: 1.29.2 Xcode version: 14.1 Swift version: 5.2

Steps to reproduce:

I wasn't able to reproduce myself.

Expected result:

*Should not crash the app.

Actual result:

*It crashes the app.

Attachments:

Crashed: com.apple.main-thread 0 libswiftCore.dylib 0x41ffdc swift_getInitializedObjCClass + 4 1 SEA 0x15a8400 @objc UIView.skeletonLayoutSubviews() + 2331228 (:2331228) 2 SEA 0x15a8400 @objc UIView.skeletonLayoutSubviews() + 2331228 (:2331228) 3 SEA 0x15a8400 @objc UIView.skeletonLayoutSubviews() + 2331228 (:2331228) 4 SEA 0x15a8400 @objc UIView.skeletonLayoutSubviews() + 2331228 (:2331228) 5 SEA 0x15a8400 @objc UIView.skeletonLayoutSubviews() + 2331228 (:2331228) 6 SEA 0x15a8400 @objc UIView.skeletonLayoutSubviews() + 2331228 (:2331228) 7 SEA 0x15a8400 @objc UIView.skeletonLayoutSubviews() + 2331228 (:2331228) 8 SEA 0x15a8400 @objc UIView.skeletonLayoutSubviews() + 2331228 (:2331228) 9 SEA 0x15a8400 @objc UIView.skeletonLayoutSubviews() + 2331228 (:2331228) 10 SEA 0x15a8400 @objc UIView.skeletonLayoutSubviews() + 2331228 (:2331228) 11 PrintKitUI 0x2580 -[UIPrinterSearchingViewAccessibility layoutSubviews] + 56 12 UIKitCore 0x4860 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1980 13 QuartzCore 0x9b0c CA::Layer::layout_if_needed(CA::Transaction) + 500 14 QuartzCore 0x1d1c0 CA::Layer::layout_and_display_if_needed(CA::Transaction) + 148 15 QuartzCore 0x2e534 CA::Context::commit_transaction(CA::Transaction, double, double) + 444 16 QuartzCore 0x63930 CA::Transaction::commit() + 652 17 QuartzCore 0x4cbb4 CA::Transaction::flush_as_runloop_observer(bool) + 88 18 CoreFoundation 0x91d40 CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION + 36 19 CoreFoundation 0x1a290 CFRunLoopDoObservers + 532 20 CoreFoundation 0x7bc60 CFRunLoopRun + 1048 21 CoreFoundation 0x80ec0 CFRunLoopRunSpecific + 612 22 GraphicsServices 0x1368 GSEventRunModal + 164 23 UIKitCore 0x3a186c -[UIApplication _run] + 888 24 UIKitCore 0x3a14d0 UIApplicationMain + 340 25 SEA 0x8284 main + 25 (FatAppDelegate.swift:25) 26 ??? 0x1e21a2960 (Missing)

AikenCod commented 7 months ago

same question

ihnatmoisieiev commented 6 months ago

Same issue. Any updates here?

BarMalka commented 3 months ago

Same issue, any updates on this issue?

Kevin-007 commented 2 months ago

Crashed: com.apple.main-thread 0 libswiftCore.dylib 0x406590 swift_getInitializedObjCClass + 4 1 My App 0x1c8a80c @objc UIView.skeletonLayoutSubviews() + 20 (UIView+Swizzling.swift:20) 2 My App 0x1c8a80c @objc UIView.skeletonLayoutSubviews() + 20 (UIView+Swizzling.swift:20) 3 My App 0x1c8a80c @objc UIView.skeletonLayoutSubviews() + 20 (UIView+Swizzling.swift:20) 4 My App 0x1c8a80c @objc UIView.skeletonLayoutSubviews() + 20 (UIView+Swizzling.swift:20) 5 My App 0x1c8a80c @objc UIView.skeletonLayoutSubviews() + 20 (UIView+Swizzling.swift:20) 6 My App 0x1c8a80c @objc UIView.skeletonLayoutSubviews() + 20 (UIView+Swizzling.swift:20) 7 My App 0x1c8a80c @objc UIView.skeletonLayoutSubviews() + 20 (UIView+Swizzling.swift:20) 8 My App 0x1c8a80c @objc UIView.skeletonLayoutSubviews() + 20 (UIView+Swizzling.swift:20) 9 My App 0x1c8a80c @objc UIView.skeletonLayoutSubviews() + 20 (UIView+Swizzling.swift:20) 10 My App 0x1c8a80c @objc UIView.skeletonLayoutSubviews() + 20 (UIView+Swizzling.swift:20) 11 PrintKitUI 0x1560 -[UIPrinterSearchingViewAccessibility layoutSubviews] 12 UIKitCore 0x10918 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1528 13 QuartzCore 0x7f26c CA::Layer::layout_if_needed(CA::Transaction) + 504 14 QuartzCore 0x7edf0 CA::Layer::layout_and_display_if_needed(CA::Transaction) + 148 15 QuartzCore 0xd9fd8 CA::Context::commit_transaction(CA::Transaction, double, double) + 464 16 QuartzCore 0x4eee0 CA::Transaction::commit() + 648 17 QuartzCore 0x98c34 CA::Transaction::flush_as_runloop_observer(bool) + 88 18 UIKitCore 0xb9ee8 _UIApplicationFlushCATransaction + 52 19 UIKitCore 0xb7660 _UIUpdateSequenceRun + 84 20 UIKitCore 0xb72a4 schedulerStepScheduledMainSection + 172 21 UIKitCore 0xb8148 runloopSourceCallback + 92 22 CoreFoundation 0x56834 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 28 23 CoreFoundation 0x567c8 CFRunLoopDoSource0 + 176 24 CoreFoundation 0x54298 CFRunLoopDoSources0 + 244 25 CoreFoundation 0x53484 __CFRunLoopRun + 828 26 CoreFoundation 0x52cd8 CFRunLoopRunSpecific + 608 27 GraphicsServices 0x11a8 GSEventRunModal + 164 28 UIKitCore 0x40aae8 -[UIApplication _run] + 888 29 UIKitCore 0x4bed98 UIApplicationMain + 340 30 My App 0x470c main + 14 (main.swift:14) 31 ??? 0x1b2787154 (Missing)

hello @Juanpe it should be caused by recursive calls in UIView.skeletonLayoutSubviews() + 20 (UIView+Swizzling.swift:20), according the crash log line 11 [UIPrinterSearchingViewAccessibility layoutSubviews] called layoutSubviews-->UIView.skeletonLayoutSubviews()--> then recursive calls in UIView.skeletonLayoutSubviews() itself