Hi,
- We are seeing following crash in our codebase (iOS 15) with following call stack in UIPrintInteractionController.
- Could anyone please help with your inputs on how we can address following "UIPrintInteractionController's printToPrinter api crash"
Crash stack
uncaught ObjC exception, reason: -[PKPrinter _internalPrinter]: unrecognized selector sent to instance
Last Exception Backtrace:
2 libobjc.A.dylib objc_exception_throw (??:0)w +
3 CoreFoundation __CFOAInitializeNSObject (??:0)3 +
4 CoreFoundation ___forwarding___ (??:0)3 +
5 CoreFoundation __CFRunLoopDoTimers (??:0)0 +
6 UIKitCore __51-[UIPrintPanelViewController lookupLastUsedPrinter]_block_invoke (??:0)5 +
7 UIKitCore -[UIPrintPanelViewController loadView] (??:0)5 +
8 UIKitCore __88-[UIPrintInteractionController _generatePDFInRange:useFullRange:withQuality:completion:]_block_invoke (??:0)5 +
9 UIKitCore -[UIPrintInteractionController printToPrinter:completionHandler:] (??:0)5 +
10 UIKitCore -[UIPrintInteractionController _completePrintPageWithError:] (??:0)5 +
11 UIKitCore -[UIPrintInteractionController printToPrinter:completionHandler:] (??:0)5 +
Codebase that resulted above crash
UIPrintInteractionController *printController = [UIPrintInteractionController sharedPrintController];
UIPrintInteractionCompletionHandler completionHandler = ^(UIPrintInteractionController *printControllerT, BOOL completed, NSError *error) {
[printControllerT setDelegate:nil];
};
[printController setDelegate:printDelegate];
[printController setPrintingItem:rurlPrintJob];
[printController presentAnimated:YES completionHandler:completionHandler];
More info
- meanwhile I have found one apple thread where its mentioned that “App Crash when using print of UIPrintInteractionController” ==>https://developer.apple.com/forums/thread/689876.
- Above thread suggested to use printer.contactPrinter instead of printerController.print.Since our current codebase used default iOS codepath(printToPrinter) with ‘[[UIPrintInteractionController sharedPrintController]presentAnimated:YES completionHandler:completionHandler]]’ api call , I am not able to apply this suggestion in current codebase.