This is an informational post about the various methods available for installing plugins not downloaded from the marketplace. Any of us developing plugins for closed network teams, such as VFX or game production, may find this info helpful. Especially when you need to figure out how to deploy your homemade plugins via scripts and automated processes, while having limited or varying Admin permissions on each system.
CCX == ZIP
Before we get started, I wanted to point out that Plugins are packaged as .ccx files, and this has a fancy appearance and unique filename. However, their function is nearly identical to zip files. ccx files have additional metadata, and probably some other bells and whistles which I don’t understand. But as you see in the installation paths below, its basically just a zip archive!
Method 1: Double-click
You can package a .ccx file from the UXP Developer Tool.
From there, just double click the .ccx file. If creative cloud app is installed, you are signed in, and you have full permissions on the PC, the install will work!
Method 2: Use the UPIA.exe directly
UPIA (Unified Plugin Installer Agent) helper app is the thing that actually unzips the .ccx file into Creative Cloud. You can call it directly. For example, this might be useful if you have a build-deployment script running on your machines, and you are pulling private plugins from a source control depot. However, if you have locked down IT permissions, this may not be possible as it still interfaces with Creative Cloud. Thus your adobe account, inter-app communication, and who knows what else may fail or be denied permission.
First, find your UPIA. Mine is located here:
"C:\Program Files\Common Files\Adobe\Adobe Desktop Common\RemoteComponents\UPI\UnifiedPluginInstallerAgent\UnifiedPluginInstallerAgent.exe"
Then, in command prompt, you can use /help
to see all commands. To install, you would use /install
like this:
"<PATH_TO_UnifiedPluginInstallerAgent.exe>" /install "<PATH_TO_CCX_FILE>"
Method 3: Unzip CCX File Manually
You can also unzip the ccx file using programs such as 7zip. send it to your Photoshop’s plugin folder.
Mine is located here
C:\Program Files\Adobe\Adobe Photoshop 2023\Plug-ins
You may have trouble unzipping directly into the plug-ins folder. Permission may be denied.
Instead, you just have to unzip it somewhere else, and then drag-and-drop it into the plug-ins folder.
Method 4: Direct Copy
But wait, you might say. Doesn’t that mean you can just copy the plugin directly from your dev folder into the plug-ins folder?
The answer is yes! But it might not work right away. Make sure your dev files, notably the manifest.json, matches the .ccx version exactly. For example, in the ‘host’ property of a manifest V4, you are supposed to have an array of objects, each one representing an app such as Photoshop or Illustrator.
The ccx does edit this property to be a ref to 1 object. Here is an example:
// .ccx manifest - drag and drop compatible
"host": {
"app": "PS",
"minVersion": "23.0.0"
},
// how the dev-side manifests are usually setup
"host": [
{
"app": "PS",
"minVersion": "23.0.0"
}
],
For me it was the Photoshop app, but I’d imagine that a ccx is packaged specifically for a single app, and it picks that one from your dev-side host. Setting up my dev-side manifest to be exactly that, and then doing a drag and drop, skipping the package process entirely, works! Obviously the limitation here is that developing a plug-in for use in two apps makes this more complicated, but still achievable with some automation scripts.
Conclusion
This flexibility is extremely appreciated for closed ecosystems, as I’ve mentioned before. It is also good to know for developers who want to control the installation of their plug-ins outside the marketplace.
As always, please correct me if there is something wrong.