Our app crashes only on iPad with iOS 26.x when a GADBannerView loads or refresh ad while the iOS print dialog is visible (UIPrintPanelViewController).
Crash reason:
-[UIPrintPanelViewController viewControllers]: unrecognized selector
Excerpt from the crash report:
Hardware Model: iPad15,7
AppVariant: 1:iPad15,7:18
Code Type: ARM-64 (Native)
Role: Foreground
OS Version: iPhone OS 26.0.1 (23A355)
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Reason: -[UIPrintPanelViewController viewControllers]: unrecognized selector sent to instance 0x1274bd900
Termination Reason: SIGNAL 6 Abort trap: 6
Terminating Process: TheAppName [...]
Triggered by Thread: 0
Last Exception Backtrace:
0 CoreFoundation
0x19c41a8c8 __exceptionPreprocess + 164 (NSException.m:249)
1 libobjc.A.dylib
0x1993917c4 objc_exception_throw + 88 (
objc-exception.mm:356)
2 CoreFoundation
0x19c4b6838 -[NSObject(NSObject) doesNotRecognizeSelector:] + 364 (NSObject.m:168)
3 UIKitCore
0x1a2fe9484 -[UIResponder doesNotRecognizeSelector:] + 260 (UIResponder.m:841)
4 CoreFoundation
0x19c3974f8 ___forwarding___ + 1472 (NSForwarding.m:3616)
5 CoreFoundation
0x19c39f3a0 _CF_forwarding_prep_0 + 96 (:-1)
6 TheAppName
0x1029095f4 GADViewHierarchyInformationForViewAndScene + 968
7 TheAppName
0x1029097b4 GADAdKeySignalSource + 40
8 TheAppName
0x1028aa480 GAD_GADBannerView_arm64_12_11_0 + 7984
9 TheAppName
0x1028ab830 __destroy_helper_block_e8_32s40s48s56s64s72w + 1868
10 TheAppName
0x1028aa184 GAD_GADBannerView_arm64_12_11_0 + 7220
11 TheAppName
0x1028f3c6c GAD_GADRefreshTimer_arm64_12_11_0 + 820
12 libdispatch.dylib
0x1d3d26adc _dispatch_call_block_and_release + 32 (init.c:1575)
13 libdispatch.dylib
0x1d3d407ec _dispatch_client_callout + 16 (
client_callout.mm:85)
14 libdispatch.dylib
0x1d3d5db24 _dispatch_main_queue_drain.cold.5 + 812 (queue.c:8181)
15 libdispatch.dylib
0x1d3d35ec8 _dispatch_main_queue_drain + 180 (queue.c:8162)
16 libdispatch.dylib
0x1d3d35e04 _dispatch_main_queue_callback_4CF + 44 (queue.c:8341)
17 CoreFoundation
0x19c3bc520 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16 (CFRunLoop.c:1820)
18 CoreFoundation
0x19c36ed14 __CFRunLoopRun + 1944 (CFRunLoop.c:3177)
19 CoreFoundation
0x19c36dc44 _CFRunLoopRunSpecificWithOptions + 532 (CFRunLoop.c:3462)
20 GraphicsServices
0x23b4c7498 GSEventRunModal + 120 (GSEvent.c:2049)
21 UIKitCore
0x1a1ce8ddc -[UIApplication _run] + 792 (UIApplication.m:3899)
22 UIKitCore
0x1a1c8db0c UIApplicationMain + 336 (UIApplication.m:5574)
23 TheAppName
0x1027de5c4 main + 80 (main.m:16)
24 dyld
0x1993e6e28 start + 7116 (dyldMain.cpp:1477)
Environment:
iPad with iOS 26.0.1 (23A355)
Google Mobile Ads SDK 12.11.0 and 12.12.0
No crash on iOS ≤ 18.x
Removing AppLovin / other mediation adapters doesn’t help — still in GMA core
Steps to Reproduce:
1. Load an ad on GADBannerView
2. Present the iOS print UI (e.g., UIPrintInteractionController, which shows UIPrintPanelViewController).
3. Wait until the configured banner refresh time has passed before the crash occurs.
Alternative steps for reproduction:
1. Present the iOS print UI (e.g., UIPrintInteractionController, which shows UIPrintPanelViewController).
2. Call loadRequest on the GADBannerView (By calling a function with a delay before the print preview was showed)