Print Dialog Extensions don't load in Apple apps

Originator:tim1724
Number:rdar://45715123 Date Originated:10/31/2018
Status:Duplicate/45000321 (Open) Resolved:
Product:macOS: Printing & Faxing Product Version:10.14
Classification: Reproducible:Always
 
Summary:

Many printer drivers (particularly for those used in commercial settings) use Print Dialog Extensions to provide custom user interfaces.

In Mojave the PDEs aren't loaded in Apple apps and in many cases this results in the printer being unusable from those apps. If a printer requires authentication to use it (for example, a Xerox copier) then if a PDE is loaded the user may not be able to enter authentication information. In that case the user will NOT be able to print.


Steps to Reproduce:
1. Set up a Xerox C70 copier to require username/password authentication.
2. Install the Xerox printer drivers on a Mac running Mojave.
3. Configure the Mac to print to the Xerox C70.
4. Open the Print dialog in Safari or TextEdit.
5. Choose the C70
5. Go to the Printer Features settings
6. Attempt to configure authentication
7. You can't, because there's no place to enter the username/password.
8. Thus you can't print at all, because the copier rejects the unauthenticated print job.

Note: This is NOT a bug in the Xerox driver. The same thing happens with ANY printer driver that uses a PDE, even if the "PMSandboxCompatiblePDEs" key is set in Info.plist (as it is in the Xerox driver). I'm just using the Xerox one as an example because I happen to be trying to print something to my department's C70 copier at the moment.

It still works normally in a non-Apple app even when sandboxed.

The only workaround is to print to PDF and then print the PDF from Acrobat Reader (NOT Apple's Preview, obviously). But that's a painful workaround.

I'm guessing one could also get around it by disabling SIP but I don't want to do that.


Expected Results:

The print dialog should load the Print Dialog Extension to provide a custom user interface for Printer Features.


Actual Results:

The print dialog fails to load the Print Dialog Extension and instead falls back to the generic UI generated by parsing the PPD.

This is the error listed in Console.app for an app that's bundled with the operating system:

Library Validation failed: Rejecting '/Library/Printers/Xerox/PDEs/XeroxFeatures.plugin/Contents/MacOS/XeroxFeatures' (Team ID: G59Y3XFNFR, platform: no) for process 'Safari(38982)' (Team ID: none, platform: yes), reason: mapping process is a platform binary, but mapped file is not

And the error for an app that isn't:

Library Validation failed: Rejecting '/Library/Printers/Xerox/PDEs/XeroxFeatures.plugin/Contents/MacOS/XeroxFeatures' (Team ID: G59Y3XFNFR, platform: no) for process 'Pages(38906)' (Team ID: K36BKF7T3D, platform: no), reason: mapping process and mapped file (non-platform) have different Team IDs


Version/Build:

macOS 10.14.1 Beta (18B73a)


Configuration:
iMac (Retina 5K, 27-inch, Late 2014)
4 GHz Intel Core i7
16 GB 1600 MHz DDR3
Internal SSD
AMD Radeon R9 M295X 4096 MB

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!