Let's talk custom installers

I know many developers in this community write custom installers or script installation of ZXPs.

With the addition of UXP command line installation support, I want to start a thread about how you plan to add UXP plugins to your installation flows.

If you’ve been using UPIA (previously ExManCmd) for installation, you can now write something to install both a CCX and a ZXP for your end Photoshop users.

But how does that actually look?

Some installers I’ve heard of work something like this, here’s my pseudo code:

// Check for the presence of my plugin
cd “/Library/Application Support/Adobe/Adobe Desktop Common/RemoteComponents/UPI/UnifiedPluginInstallerAgent/UnifiedPluginInstallerAgent.app/Contents/MacOS”
./UnifiedPluginInstallerAgent --list all

// Run a search for my plugin name
// grep?

// If my plugin isn't installed, install it
./UnifiedPluginInstallerAgent --install ./UnifiedPluginInstallerAgent --install /filepath/to/myplugin.ccx

// Check to make sure my plugin installed successfully
// Or capture the error message
./UnifiedPluginInstallerAgent --list all

If you’re willing to share your command line installation methods, please let us know how you do it.


I got from an InDesign developer recently. Their workflow was signing CEP plugins, then unzipping the ZXP and moving the files to the correct folders (they also have C++ components as well). They had never used ExManCmd or any other installer…

Please note that the above method of installation isn’t supported in UXP, you must use UPIA for that kind of installation, or some combination of double-click installation, to enure a certain database file gets updated.

Likewise, the ZXP installation “fix” in this youtube video won’t work with UXP: Fix Installation Failed because the extension is not compatible Error in ZXP installer - YouTube

OK so, nobody responded to this thread. However, it is increasingly important.

It turns out that if you run UPIA --list all in a logged out state, you get an error. I got:

Request failed with status = -641

If you run ExManCmd 7.11.1 while logged out you get:

Failed to get extension count of product status = -503!

This seems to be by design, but it breaks the custom installer workflow… I’m off to open a request to fix it. If you got this error and wound up here, please do chime in and let us know.

For CEP I am using: Inno Setup . It always work very well and unlike .zxp and Adobe tools I had never problem with it. It comes with uninstaller it can check whether already installed in system, change registry if needed, ask to quit Photoshop and anythink I could possibly need on Windows.


Same here. InnoSetup and building pkg files for Mac. But only because i need to provide presets and profiles with my plugins. And going down the innosetup/pkg route means running into extra costs because of Gatekeeper/Windows Defender. Would love to see a solution from Adobe here.

Yes. If you are new in custom installers it adds few weeks of development. So I am glad that in case of UXP this is not needed in most of the cases.

The one I have always liked for Windows was https://www.actualinstaller.com/
and the one for MAC was Packages

1 Like

Note to self: https://jira.corp.adobe.com/browse/EXCH-4212961