Daltron / NotificationBanner

The easiest way to display highly customizable in app notification banners in iOS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

closure #2 in BaseNotificationBanner.dismiss(forced:) NSInternalInconsistencyException - Must have a keyboard layer tracked.

fenglingdeyi opened this issue · comments

Crash OS version: Only iOS17
NotificationBannerSwift Version: 3.2.0 and 3.1.0(Both versions have the same Crash on iOS17)

Crash Logs:

Fatal Exception: NSInternalInconsistencyException
Must have a keyboard layer tracked.

Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0xc7bc __exceptionPreprocess
1 libobjc.A.dylib 0x18ea0 objc_exception_throw
2 Foundation 0x6aac24 _userInfoForFileAndLine
3 UIKitCore 0x8f9968 -[_UISceneKeyboardProxyLayerForwardingStateMachine _newProxyLayers]
4 UIKitCore 0x8f8b64 -[_UISceneKeyboardProxyLayerForwardingStateMachine window:changedFromLevel:toLevel:]
5 UIKitCore 0x333b6c -[UIWindow setWindowLevel:]
6 xxxxxx 0x16a7db8 closure #2 in BaseNotificationBanner.dismiss(forced:) + 610 (BaseNotificationBanner.swift:610)
7 xxxxxx 0x4707a0 thunk for @escaping @callee_guaranteed (@unowned Bool) -> () ()
8 UIKitCore 0x120b088 UIVIEW_IS_EXECUTING_ANIMATION_COMPLETION_BLOCK
9 UIKitCore 0xc6488 -[UIViewAnimationBlockDelegate _didEndBlockAnimation:finished:context:]
10 UIKitCore 0xc5448 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:]
11 UIKitCore 0xc4b68 -[UIViewAnimationState animationDidStop:finished:]
12 QuartzCore 0x27c520 run_animation_callbacks(void*)
13 libdispatch.dylib 0x4300 _dispatch_client_callout
14 libdispatch.dylib 0x12998 _dispatch_main_queue_drain
15 libdispatch.dylib 0x125b0 _dispatch_main_queue_callback_4CF
16 CoreFoundation 0x997e0 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE
17 CoreFoundation 0x7ceb4 __CFRunLoopRun
18 CoreFoundation 0x816c0 CFRunLoopRunSpecific
19 GraphicsServices 0x1224 GSEventRunModal
20 UIKitCore 0x38ed2c -[UIApplication _run]
21 UIKitCore 0x38e990 UIApplicationMain
22 xxxxxx 0x6d2c main + 14 (main.swift:14)
23 ??? 0x1b9f644f8 (Missing)

BaseNotificationBanner.swift
line: 610

self.bannerQueue.showNext(callback: { (isEmpty) in
if isEmpty || self.statusBarShouldBeShown() {
self.appWindow?.windowLevel = UIWindow.Level.normal
}
})

@Daltron hello, Looking at the stack information, it seems that on iOS17, when setting the windowLevel of Window, there is a problem. Does it need to be adapted on iOS17?