Installer plugin hangs in Catalina

I have an installer plugin that allows users to configure the settings of my product while installing. I noticed in Catalina that the plugin now runs not inside the installer process but inside a new executable named InstallerRemotePluginService.


My installer plugin has six UI pages, but on the third page it hangs. It hangs when I call to disable the Continue button until a user makes a couple of choices:


[super setNextEnabled:NO];


This is very strange behavior, I've never seen anything like this in the last ten years of using this installer plugin.


Anyone else having issues like this? Seeing it in all the betas, including build 19A558d (Beta 8).


I really want to support Catalina on Day #1, but obviously my users won't be able to install anything with this hang.

Replies

Yes, we have a similar problem: We have two installer plugins, and they have worked fine for 12 years (well, every few years, Apple makes a silent change and we have to adjust). Starting in OSX 10.14 or 10.15, the Installer is not working right for us: does not totally hang, but the GUI is non-responsive. Fortunately, in our design, the installation more-or-less finishes.


It definitely looks like Apple changed the Installer app to offload any plugin software into other processes: the com.Apple.InstallerRemotePluginService ... it gets its own PID. In our case, a single Installer has three processes are running: Installer and two InstallerRemotePluginService processes.


Our issue is that the plugins are not able to dynamically update controls/widgets on the installer GUI. They are updating a progress bar: but the main/GUI thread in the Installer process is not responding. I guess that software in the InstallerRemotePluginService cannot update widgets drawn by the main Installer process??


Have not figured out a solution yet, but clearly we'll need to redesign our plugins somehow.

... also, running the Installer in the XCode debugger is much more difficult now. Before 10.14, we had total flexibility to set breakpoints, etc. Now, the breakpoints are not getting hit. Not sure what is going on: XCode is showing all three processes in the left column, but it is not stopping on breakpoints. Perhaps it will not stop at breakpoints that are located in the plugin software executed in the InstallerRemotePluginService processes?