Install UXP Plugin with own Installer

Hi all,
I have a plugin which consists of PS filters, a UXP panel, and several external resources.
Therefore it has a own installer which installs the complete suite (Setup.exe / Setup.dmg) in one run.

In the CEP days it was easy to install the CEP plug-ins with a own installer. We just put the files in the extension folders:
Win: C:\Program Files (x86)\Common Files\Adobe\CEP\extensions
Mac: /Library/Application Support/Adobe/CEP/extensions/

So my questions is: What is the best practice to do the same with a UXP plugin?

According to the UXP documentation there are only two ways to install a UXP plugin.
Either using the Marketplace or using the Creative Cloud App.
Using the Marketplace makes not really sense for this use case.
The Creative Cloud App starts a second installer with separate user prompts which would deliver a poor UX.

I found out that I could - as in CEP - just paste the UXP plugin here:
%appdata%/Adobe/UXP/Plugins/External
but this would also require to maintain the %appdata%\Adobe\UXP\PluginsInfo\v1 config json which should probably not be touched by users.

I also read (here) that it is planned to provide a command line support in future. Would this do the job without showing user prompts?

Does someone have any ideas or experiences how to install a UXP Plugin using a own installer?

Kind Regards
Jens

As far I know there is some adobe made helper app to install UXP plugins and I think you can pass file path as an argument to install that file. Check file association in Windows registry to find out how double click on extension file works.

1 Like

Hi Jarda,
thanks for your reply and your good idea!

*.ccx launches UnifiedPluginInstallerAgent.exe

But if I try to do this manually using

UnifiedPluginInstallerAgent.exe" /install plugin.ccx

It returns
Failed to install, status = -410!

-410 means

EXMAN_FAILED_INVALID_ZXP_FILE

Whis is fair, because it’s not a ZXP file.

According to this article installing *.ccx is just not yet supported.
Does someone know the secret syntax to get it running for ccx?

Best Regards
Jens

What if you skip /install ? I don’t remember using it.

Hi Jarda,
thanks for your reply!

I also tested it without the /install parameter:

UnifiedPluginInstallerAgent.exe "C:\plugin.ccx"

This just terminates the command without any response. (Same if the terminal is launched in Admin mode)

/help also doesn’t reveal the secret how to install *.ccx files.

UnifiedPluginInstallerAgent.exe /help

Kind Regards
Jens

If you look in the registry for UnifiedPluginInstallerAgent, you’ll find the entry that has the flag /doubleClick.
I agree “install” makes more sense. :grinning_face_with_smiling_eyes:

Hi Sam,
many thanks for your reply!

Unfortunately

UnifiedPluginInstallerAgent.exe /doubleClick "C:\plugin.ccx"

is doing the same as directly opening the *.ccx via CMD…

"C:\plugin.ccx"

… It opens up the Creative Cloud App installer.
I would like to avoid showing up the CC installer, because I’m already within a installer wizard.
That’s why I’m searching for a “silent install” option for ccx plugins.

Kind Regards
Jens

Even with silent install… user would need to agree with permission dialog. And that won’t be silent.

Hi Jarda,
thanks again for your reply!

Do you mean the permission dialog from the OS?
Showing that would be OK. The external installation wizard is already asking for permissions so that we have admin permissions during the installation.

Using that rights I could already paste the plugin to
%appdata%/Adobe/UXP/Plugins/External (and adjust the config JSON %appdata%\Adobe\UXP\PluginsInfo\v1 )
to install it silently.
So showing the CC App dialog wouldn’t be a noteworthy security improvement in this use case.
But I think it is not wanted from Adobe that users adjust the config JSON manually.

Kind Regards
Jens

I think the CC dialog about install would be shown under any circumstances.

Btw I got an “evil” idea… I wonder what happens when you install plugin with zero permissions and change the permissions/pluginID/content afterward :smiley: @kerrishotts