Same manifest/ID with multiple hosts

I’m building a panel that targets both Photoshop and InDesign, so my manifest host definition looks like this:

  "host": [
    {
      "app": "PS",
      "minVersion": "25.3.1"
    },
    {
      "app": "ID",
      "minVersion": "19.1.0"
    }
  ],
)

This works fine in UXP developer tools, I can select the manifest file and both Photoshop and InDesign can be launched/debugged simultaneously. I can also package separate .ccx files, they are appended _PS and _ID automatically.

But when I distribute the .ccx files, only one of them can be installed at a time.

Double clicking and installing My.Addon_PS.ccx, I can then launch Photoshop and use the addon.

Double clicking and installing My.Addon_ID.ccx I can launch InDesign and use the addon. But If I open Photoshop now, the previously installed addon is now gone.

I use a single manifest file/code base targeting both PS and ID. Do I need to make separate manifest.json files, with unique IDs for PS and ID, in order to have them both available simultaneously?

If so, what’s the point of being able to define multiple host definitions in the manifest file?

IIRC, yes. If I’m not mistaken, you would also need to change you host to:

  "host": {
      "app": "PS",
      "minVersion": "25.3.1"
    },

Probably same for ID (not sure), but definitely for PS

Yeah, if I split the project into two separate manifest files it makes sense to remove the dual host definition.

Any idea why it’s possible to define multiple hosts like this though? I’m pretty sure I got this from an official Adobe example.

If each host addon still needs a unique ID to function, being able to declare multiple host definitions for the same ID seems a bit strange. I was hoping for this to work since the project and packaging would be a bit easier with a single manifest file (similar to how CEP plugins could target multiple hosts)

1 Like

There was the same question somewhere here in the forum. I don’t think we got a proper answer to why it is like it is. At least I don’t recall. If there was an answer, probably didn’t explain much :slight_smile:

It is strange that 1 manifest creates separate CCX files per host. It’s even more strange that the IDs need to be unique.

Ideally the UXP manifest should accept multiple hosts in CCX prod like you can in UDT dev. (I believe this in the works at one point mentioned during an Adobe Office Hours cc @indranil )

Or else multiple CCX extensions should be allowed with the same ID if they have different hosts.

Short answer: This is not a UXP limitation, as is evident that it works via UDT. It’s something that needs to change on the Marketpace end. If it’s prioritized, I shall update this thread.