HTML Panel Tips #17: CC2015 Survival Guide

Davide Barranca —  — 92 Comments

Superstitious people in Italy think that seventeen is a bad luck number – yet I’m not gullible and I think it must be by chance that this Tip #17 is about the apparently, ehm, troublesome update to Creative Cloud 2015.

As follows is a checklist of common problems (both from the developer’s and user’s point of view – I’ve been in touch with quite a number of them both) and my own suggestions to stop worrying and love the bomb.

(UPDATED Jul 5th, 2015)

1. My [insert name here] Product doesn’t work anymore!

Why should it? I tell you why, it’s a matter of mismatching expectations.

The Creative Cloud app tells you it will port your Preferences: you would expect that this means Scripts-Plugins too but alas it’s not the case.

Moreover, by default (what a tumble!) the CC app removes old versions of Photoshop CC, so that you can’t just copy Scripts and Plugins from CC2014 on CC2015.

Developer: advise your customers to look in the Advanced properties of the CC update application and uncheck “Remove previous versions” so that they have access to stuff installed within the Photoshop CC2014 folder.

User: look in the Photoshop CC2014/Presets/Scripts/ for Script products, and/or Photoshop CC2014/Plug-ins/ and manually copy sensible stuff from there into the corresponding Photoshop CC2015/ paths – ask your developer for help.

2. Adobe Extension Manager says the product is installed but it isn’t!

You might have not heard about this, but Adobe Extension Manager (AEM) has reached his EOL (End Of Life) – that is, it’s not going to be supported by Adobe anymore.
AEM doesn’t know about CC2015, it’s of no use to install CC2015 products – more about it below.

Developer: it’s somehow by chance (or by design, depending on your POV) that your Panel shows up in CC2015, because the path for CC2014 and CC2015 is shared:

Mac: ~/Library/Application Support/Adobe/CEP/extensions
Win: C:\<username>\AppData\Roaming\Adobe\CEP\extensions

Mind you: if your panel is self-contained (doesn’t require files such as scripts installed within the Photoshop folder, like JSXs in Presets/Scripts/ or plugins in Plug-ins/) it will work on CC2015. Otherwise, you need to move the required files manually in order for the panel to be functional.

The same applies for Plug-ins and Scripts.

User: ask your developer if you think the Panel is not working properly even if it shows up, and ask for CC2015 installers (yes, you need to install them on the new version.

3. The [insert name here] Panel says it’s not properly signed and/or timestamped!

My friend, have you signed and timestamped your panel? Chances are you’ve not – or possibly you are used to keep the debug flag on (CC2014) on your machine and your users don’t – and you don’t have it either on CC2015.

CEP panels need to be signed/timestamped – I personally do this via ZXPSignCmd commandline tool, you’ll find all the excruciating details here).

Developer: Build a signed/timestamped ZXP, rename it as ZIP, unZip it (OSX won’t let you do this because his inner soul is mean, download any third party free app such as The Unarchiver) and now distribute the folder for manual installation in the usual paths (see #2 above).

You’ll notice that a signed/timestamped panel contains a META-INF folder and a mimetype file: take care of these guys.

Please notice that:

  • You modify a single file in a signed/timestamped panel (such as the manifest.xml to add compatibility to CC2015) and the signing/timestamping is screwed, error will follow and the panel won’t show up anymore.
  • You let the uncompressed panel lie in a Google Drive folder shared with somebody else, and the signing/timestamping is screwed as well (true! It took me forever to get this one, still I don’t know why it happens).
  • Perhaps if you stare at a panel long enough, the signing and timestamping will break into tears.

User: ask the developer for a manual installation Panel (see #2 for the installation paths).

4. Do I have to modify the Panel’s manifest.xml?

It depends. I never explicitly set an upper limit, so my panels will hopefully load in CC2015 as well:

The above means: from 14 upwards. Same story if you use a MXI file for hybrid panels:

5. How do I debug on CC2015?

Set the PlayerDebugMode as a String with value “1” in:

Win: regedit > HKEY_CURRENT_USER/Software/Adobe/CSXS.6
Mac: /Users/<username>/Library/Preferences/com.adobe.CSXS.6.plist

Let me read your mind: com.adobe.CSXS.6 doesn’t exist. Brave developer, clone it from CSXS.5 and rename it, you’ll be forgiven.

Mind you: Starting with Mac 10.9, Apple introduced a caching mechanism for plist files. Your modifications to plist files do not take effect until the cache gets updated (on a periodic basis, you cannot know exactly when the update will happen). To make sure your modifications take effect, kill all cfprefsd processes. They will restart automatically.

6. How do I let users install [insert name here] if Adobe Extension Manager is gone?

I’ve had this thought myself too, right after the eleventh glass of wine at the AEM Funeral Party. The developer community is facing this problem and to date several possibilities are on the table:

  • Manual installation: you let users move files around – it’s not needed that I list pros and cons.
  • Native installers: you’re braver than me. If you have reliable info on this process, please let me know in the comments
  • Scripted installers: I’ve built one (free and opensource, please find it here). The idea is simple: ExtendScript knows File Management, so Photoshop itself can deploy the needed files. You let users download a ZIP, which contains an Assets folder and an Installer.jsx file – they drag and drop it into Photoshop and it’ll do the magic.
  • Extension Manager CommandLine utility: not ready for public download when I’ writing this but it will in a short while. It’s basically the operational core of AEM in all the beauty and appeal of a CLI. You’re allowed to send users a ZIP packed with your usual product’s ZXP, the Adobe CLI plus a (OSX) or a Installer.bat (Windows) which runs the CLI with the right params.
  • Other opensource projects still under development, like this one.

My own preference goes (for obvious reasons) to Scripted installer, then Manual installation, then AEM CLI, then horse shoeing.

7. How do I sell through Adobe Add-ons if Extension Manager is gone?

Adobe Add-ons relies on the Creative Cloud app to deploy files, via the File Synch feature (let users check it’s enabled) – they’ve somehow transplanted the AEM core into the CC app.
So keep building your ZXP files and life will be good.

8. My [insert name here] Script behaves badly

From Photoshop CC2015 onwards, Adobe’s engineers have introduced the new Mondo rendering engine for ScriptUI dialogs. Previously it was Flash, and… you know.
Mondo is the same framework used in Photoshop actual Filters and Plug-ins, so we’re allowed to guess that engineers will take care of it.

I’ve to tell you that, while theoretically Mondo implements the same set of features that the one before it, actually it isn’t completely so (I’ll be blogposting in the near future about this). So:

  • The appearance of your Scripted Dialogs will be different
  • The functionality of your Scripted Dialogs might be different

And by functionality I mean: ScriptUI can’t load JPG images now, only PNGs – so if your dialog relies on JPGs, it will fail on CC2015. (This is going to be fixed in the future).

9. Some of my users say that their Adobe Extension Manager lists CC2015 as well!

Cool down the enthusiasm, it’s a false positive – Adobe said that:

The fact that it still seems to work for CC 2015 in some cases but not others, is because the Exchange Plugin, the component in the Creative Cloud desktop app that contains the ”brains” of Extension Manager and allows extensions to be automatically installed via Add-ons, automatically updates the Extension Manager Database. In some cases this ”just works” as if Extension Manager fully supported CC 2015. It should work more often on Windows than Mac. Having said that, it’s not a supported workflow.

(Bold is mine)

10. Timestamp failure when building the ZXP

You run into “Error – the timestamp returned from the chosen TSA could not be verified, so the ZXP created is likely to be rejected by other tools. Please create your ZXP with a different trusted TSA.”, right?
Please make sure you’re using CC2015 version of the ZXPSignCmd, grab the updated version from the CEP Github Repo (MAC and PC).

11. Extension Manager Opensource replacement

Developer Max Penson has come up with the free ZXP Installer, a native app (Mac/PC) which runs under the hood the new ExManCmd commandline utility. Drag and Drop your ZXP and voilà!
It still under development, but it works and you can point your customers to it.

(if, for some reason out of your control, you happen to have problems with your Extension Manager *and* Creative Cloud database files, it’s going to be bad times. Been there, seen things, wasted an awful amount of time).

12. After installing CC2015, my [insert name here] doesn’t work anymore on CC2014

I don’t know how on earth this can happen, but I’ve seen it myself (in my own case, an entire folder in the Presets/Script disappeared causing an HTML Panel failure).

13. More to come

I’m adding stuff to the list (already 4 extra topic since the original draft). Take care and have fun keeping up to date 🙂

Print Friendly, PDF & Email

92 responses to HTML Panel Tips #17: CC2015 Survival Guide

  1. Hi David- Thanks for all the great info and for offering solutions! I’m a bit confused (I’m sure many are). I have updated to the latest Extension Manager CC on OSX today (version It only lists “Photoshop CC” as a Product, but when I add or remove my panel, it becomes available/not available to CC 2014 and CC 2015 as well. Seems to “install” on my machine. Are you saying that I have some unique setup from history/development that lets me use AEM to make my panel available or not, but that that a clean install would now fail for CC 2015?

    • Hi Greg,
      as I’ve mentioned, the location where HTML Panels belong is shared between CC2014 and CC2015, so if you’ve installed a CC2014 Panel (which you made without an upper version limit), it will show in CC2015 too. Because AEM installs it for CC2014, and CC2015 “sees” it. It will work, if it doesn’t need stuff that you’d deploy inside a PS folder, such as a plugin or script.
      Yet AEM doesn’t know CC2015, and technically speaking it’s not for CC2015 installation. We’ve been told that the AEM CLI will be, and/or any other custom installation mechanism which is up to us to find (see the list in the post).

      • Thanks Davide. I think where I’m getting twitchy with the new AEM (the update just pushed through the cloud installer) as it just lists “Photoshop CC” as the Product – so unclear if that means CC 2014 or just CC. I need to find an easy way to turn on/off my plist developer flags so that I can make sure things would work on a non-dev machine (need to try making copies of the plist files and then just copy in from a dev/nondev flagged copy, not sure if that will work).

        On a separate note, thank you for publishing this new scripted installer, sounds amazing and I hope to leverage it. How do you recommend best managing upgrades/updates to panels through this tool? If the extension name is unchanged and the version is uprevved, will it automatically handle the details – or do we need a separate mechanism to delete the old panel?

        • For what it’s worth my Extension Manager lists both “Photoshop CC 2014” and “Photoshop CC 2015” separately on both Mac and Windows.

          Another piece to the puzzle regarding installing through Extension Manager. According to this post: there is a bug in the newest Creative Cloud App that prevents extra files from being copied during installation of extensions. If this gets fixed then perhaps Extension Manager will be more useful during the transition periode to future install methods.

          • I’ve had one of my users also send me a screenshot showing CC 2015 listed in AEM. Anyone have any idea as to the rhyme or reason when CC 2015 shows up? This same user reported successfully installing my panel under CC 2015.

          • Hi Greg,
            as I said, if the panel is self-contained (doesn’t require extra stuff from within the CC2015 host app subfolder) Extension Manager installs the CC2014 version and CC2015 sees it. I’ve asked why to some users AEM lists CC2015 as well, I’ll report back as soon as I get news, so keep an eye on this page. Thank you for the feedbacks!

        • I would like to know about the upgrade possibilities too with the installer script. My extension is needs to be upgraded from time to time and will this script remove the old extension and install the new one?

          Thanks – Sam

          • I would like to implement uninstalling, first.
            Updating is in the list, but will require a bit of extra work on your side to be adapted. It would be trivial (ehm, perhaps not trivial, let’s say: “easier”) in an HTML panel thanks to it’s built-in features, but two downsides: it would not work for scripted dialogs (which I use a lot); the code is not secure (you can uglify it, but can be reverse engineered). So I’d follow the ExtendScript Socket object way: harder, but can be JSXBIN-ed. Which is paramount, otherwise pirates could easily get direct access to installers on your server.

  2. Hi Davide,

    many thanks for this post. When Adobe does not provide enough info… Davide comes to help us!
    The only script that I’m using in my newest panel to open a dialog is making PS CC2015 crash.
    It’s tiring to have to change things all the time, and the lack of official info is awful.
    Anyway, I’m going to use your installer and wait for some info about how to make Scripted Dialogs work properly.

  3. Jonathan Ferman June 17, 2015 at 9:56 PM

    Hi Davide,

    Great article and thanks for writing it. I just want to add one point that we really don’t tell enough people about, Private Sharing. It lets ANY Adobe Exchange producer, share a product privately, in essence get a users email address, they get an invite and then the Add-on gets installed by the CC desktop application. More info here:

    • Thank you for the extra information Jonathan, much appreciated.

    • Jonathan – the Adobe Exchange Producer needs more options for privately deploying extensions. What I would like to see is the options of creating Private Sharing, but not emailing users right away. I would like to be able to email the users myself.

      • Good luck – I think Adobe’s privacy policies prevent us from getting in touch directly with our user base.
        I’ve asked in the past to implement a feature such as we compose a message, they deliver it to the (to us, undisclosed) list of our customers, but I don’t see many new stuff coming on Add-ons.

  4. Thanks for this information.

  5. Hi Davide, you really help us…thanks one more time.

  6. Hello, Davide. Thanks very much for the information! With PS-Installer all happened! Is it possible to make a script to uninstall?

  7. Sebastien Piconnier June 22, 2015 at 10:18 PM

    Thank you Davide for this very useful ans interesting post!

  8. Once again thanks Davide – I upgraded to Photoshop CC 2015 and lo and behold the extensions I developed were not showing up in AEM (even though they loaded into PS CC 2015). Know I know why. I will try you installer script and see if that solves the issue. Once again it seems that Adobe is chasing it’s tail.


  9. Report on using AEM in Windows 8.1. I am using Parallels Desktop on my Mac to emulate Window 8.1. Windows 8.1 was a fresh install. I downloaded Photoshop CC 2014 and AEM. Double clicked my extension and it loaded into AEM with the extension showing under Products -> Photoshop CC 2014. My extension loaded fine and showed up in PS.
    It does not show up in my Mac. Most of my users are on Windows so I am not sure how to progress with AEM.

  10. Follow up on Mac OS 10.10.2. Uninstalled AEM and then reinstalled. Extension still do not show up under Products. When I double click the extension to load it into AEM I get this:
    “This extension can not be installed, it requires Photoshop Version 14 or greater.”

  11. Davide – first thanks for creating this script. I have been wanting to get ride of AEM for sometime.

    Some questions:
    Timestamp – I have taken one of my extensions that installed fine in PS CC 2014 and unpacked it as you showed in Step 3. The panel installs with the install.js script, but when I try to open the panel I get this message “The extension could not be loaded because it was not properly signed”. I have within the HTML folder the unaltered META-INF and the minetype files.

    HTML – is it possible with your script to install two panels with one script? I was able to do this with the MXI folder you showed us in “HTML Panels Tips: #10 Packaging / ZXP Installers”.

    Brushes – how would I have the install brushes?

    Thanks in advance for your help – Sam

    • Hi Sam,
      please have a look at the latest installer version on Github (0.2.x), I’ve removed some Ignore Files (files that are not copied based on a RegExp you provide, say files starting with “.”) which might have corrupted the signing.
      Multiple panels are for the moment not supported, and the Brushes (which is apparently #1 request) can be handled by the EXTRA tag – I’ll add this implementation in the following days, if I survive the CC2015 upgrade 🙂
      Thank you -Davide

  12. Thanks Davide – still not working for me. But when I manually move my extension folder to the CEP – extensions, I do not get the “not properly signed” and the panel loads fine.
    I do have your latest script installer (you uploaded it this morning?).
    Any ideas as to what I do next.
    I feel your pain with CC2015. It seems like when I get everything configured. Adobe changes something.

    • Sam,
      could you please use an utility such as Delta Walker or the free FileMerge (OSX) or their equivalent on Windows to check differences between the installed extension and the extension that lies in the ASSETS folder? So that you can see if a file is missing. Thank you!
      (the latest version is the one with IGNORE: void 0, around line 78 of the JS)

      • Hello there. Same issue here using the latest PS-Installer.
        I’ve compared the original signed files with the files copied by the installer and looks exactly the same. To check differences I’m using the Compare plugin for Notepad ++.
        Obviously if I change PlayerDebugMode to 1 the Panel works fine.

        • That’s really strange Alex – I’ve double checked myself and it works properly on my side (Mac), I’ll give that a try on Windows just in case. The fun fact is that if the files are the same, the signing shouldn’t break, but when it comes to CEP, voodoo is within the realm of possibilities.
          UPDATE: checked on Windows 7 too, and on my hybrid extension it works with no errors. If you want to send me the assets I might have a look at it (of course I won’t share it with anybody and delete right afterwards) – mail me a dropbox link: davide.barranca at gmail dot com

          • Thanks a lot Davide! It was my fault, I modified a file without signing the extension again. I don’t know why but actually I can’t sign it again, the answer is allways the same:
            Error – cannot contact the chosen TSA. Please make sure the URL is valid and that you are connected to the internet.

          • The TSA stopped working, I’m investigating an will report back asap.

          • Hi,
            try using this version of the ZXPSignCmd (for MAC and for PC) and please leave a feedback here, thank you.

          • Amazingly the TSA is still down. There’s no alternatives? I did a quick search but couldn’t find a free alternative to timestamp an extension.

          • Alex, have you tried the new version of ZXPSignCmd I’ve linked? With that, the old TSA seems to work for me.
            Let me know! -Davide

          • Yes. I’m using the new ZXPSignCmd version. It worked fine to create a new certificate, but when I try to timestamp / creating a new .zxp it gives the same Error. I just follow the instructions you provide before (Pack and Sign an HTML Extension). Not sure what does mean “the old TSA”, is not

          • Yes, that TSA Alex.
            The command I’ve been using is ./ZXPSignCmd -sign src/myFolder src/MXI/HTML/myExtension.zxp myCert.p12 myPass -tsa' (I only go with self signed certificates).

          • Well… I guess I’m using the right command:
            ZXPSignCmd -sign ad.extensionname ad.extensionname.zxp myCertificate.p12 MyPassword -tsa

          • Yep, it looks correct.
            I’ve tried pinging it and apparently it answers something:
            PING ( 56 data bytes
            Request timeout for icmp_seq 0
            Request timeout for icmp_seq 1
            36 bytes from ( Communication prohibited by filter
            Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
            4 5 00 5400 eace 0 0000 34 01 9bdb

            (as far as I understand, it says that it doesn’t like to be pinged – yet the first two requests timed out!)

          • Tried on virtualized Windows: it fails! Will report the issue and let you know.

          • Thx a lot! I guess an alternative tsa is needed. Anyway, I’ll try again later.

          • I wouldn’t say so, since the TSA works with current Mac version of the commandline (while failed with previous Mac version). I don’t know (and don’t wanna know!) what happens while the CL talks to the TSA, but apparently there’s some mismatching in there that makes the process fail.

      • Hi Sam, thanks for sharing the extension on Dropbox, I’ve found the issue.
        First, but this appears not to be the problem yet I mention it anyway FYI, your original panel (the zipped version of it) folder’s name is different from the PRODUCT_ID in the installer. As a result the fonder that is created within CEP is named after the PRODUCT_ID and differs. As I said, it seems to make no difference.

        But the reason why your panel fails the signing control is that it lacks the .debug file. When you’ve signed the panel it contained the .debug file, that is missing inside the ASSETS/HTML folder. If you put it back in there (just copy it from the zipped panel) the installer deploys all the files and the panel is loaded without issues in Photoshop.

        Hope this helps! -Davide

  13. David – the beat goes on.
    I used FileMerge to compare the installed extension and the one that is in the ASSETS folder and there was no difference between the two.
    Here is another strange thing: I decided to go back to the original extension created with your “Package and Sign an HTML Extension”. When I try to install it on a Mac with AEM it fails to install and I get “…make sure the manifest.xml of this extension is valid…”. This is weird because using the same AEM a few weeks ago the extension installed fine (this before the PSCC2015 update). When I tried the same extension in Windows 8.1 with AEM it installed fine with no issues.
    Now I am really confused ;(.


  14. First, many thanks for this realy useful guide and your fantastic work with the panel tips Davide! That has helped me many times! And – the same here. Timestamp don’t work. And also for CC2014 panels can’t to be created a certificat. Hope there is a quick solution… 🙁

  15. Something has changed today, after trying to create the timestamp the message says:

    Error – the timestamp returned from the chosen TSA could not be verified, so the ZXP created is likely to be rejected by other tools. Please recreate your ZXP with a different trusted TSA.

    and after that there’s no ZXP created.

  16. Ivan Ovsyannikov July 1, 2015 at 11:51 PM

    I have same trouble last couple of days. I tried -tsa It helped create zxp file but Extension Manager says that signature not valid. ZXPSignCmd.exe -verify shows same info with previous successful version. Here is info, mb it helps.
    C:\Users\221po_000\AppData\Roaming\CTP\win64>ZXPSignCmd.exe -verify customizeToo
    lPanel_003.zxp -certInfo
    *********** Certificate Information ***********
    CN: Ivan Ovsyannikov
    DN: /C=RU/ST=VOR/O=2pic/CN=Ivan Ovsyannikov
    OS Trusted: false
    Revoked: false
    Timestamp: Valid and within certificate validity dates at time of signing
    Signing Certificate: Valid (from 2015-06-22 until 2026-09-08)
    Signature verified successfully

    C:\Users\221po_000\AppData\Roaming\CTP\win64>ZXPSignCmd.exe -verify customizeToo
    lPanel_005.zxp -certInfo
    *********** Certificate Information ***********
    CN: Ivan Ovsyannikov
    DN: /C=RU/ST=VOR/O=2pic/CN=Ivan Ovsyannikov
    OS Trusted: false
    Revoked: false
    Timestamp: Valid and within certificate validity dates at time of signing
    Signing Certificate: Valid (from 2015-06-22 until 2026-09-08)
    Signature verified successfully

    • I am having the same timestamp issue. tsa is not valid and I can’t sign my extension. Any ideas please?

      • I’m afraid I’m out of news – this error is kept being reported, sometimes it seems to work, sometimes not, which is a pity.

        • Is there any work around for this issue or do these extensions just not work anymore. Would purchasing a certificate be an answer? I have several groups using an extension I build but they stop working for no reason. I can not get any version to run it afterwards.

  17. Davide thanks for this post. help me a lot.
    I am an extenison developer, and many user complained to about the installation failure on CC2015.
    I tried your installer.jsx script, It works well to move the extension files to the right place. but when I open the panel in ps, It shows up “The xxxx extension could not be loaded because it was not properly signed.”
    It seems that the sign get screwed up after I unpack the signed zxp file. Is that true?
    and what should I go then?
    thanks again.

    • Hi,
      usually when I’m reported such errors I suggest to:

      De-compress the ZXP and manually move it in the CEP/extensions folder. Does it launch without errors in the Host App?
      Make sure the installer.jsx is latest version and there are no IGNORE extensions in the global configuration object
      Check with a program such as Delta Walker or the free OSX FileMerge and see whether there are differences between the manually-moved-to-CEP-and-working extension folder and the installed-with-installer.jsx-and-not-working extension folder. Usually there’s something missing in there, such as a hidden .debug file (reported by many users)

      Let me know if this helps!

      • After compare the files between the source and destination directory, I found that I have the .debug file in the package, and the Installer.jsx failed to copy the dot file. That’s why the sign failed. It worked when I deleted the dot file.

        Btw, many users reported to me that there installation failed because of the permission problem. They all happpend in Win system, The script has no permission to create the log file, or the directory in $$$/ScriptingSupport/InstalledScripts=Presets/Scripts

        as long as my panel contains pure html/js/css, without flash or external scripts, I have created my own Installer script, which just copy files to the target location, no log and other works. Thanks for you idea!

        Though, the script installation don’t feel elegant to me, and there is no way to uninstall. I am thinking(and preparing) some other way for this, eg. apple script for mac and .bat for win something like that. even more, create an independent application act like AEM which support CC2015. use coca on mac and .net on win system. the app can ask for authorization to copy files any where.

        • Hi,
          latest version creates an uninstaller (a feature I’ve been requested and I’ve finally implemented).
          As long as you are installing a panel only, and in the User library (not the System) permissions on Windows should not be requested – otherwise, everything you place in /presets/scripts, or /plug-ins or any other folder within the PS folder will require Admin permissions. For the app, you might want to take a look at made by Max Penson (a webapp which wraps the Extension Manager Commandline).

  18. Hi Davide,
    I have another question which you may or may not have the answer to. I have successfully implemented your js extension installer (again thanks for giving us a solution to replace AEM).
    One thing that bothers me is when a user unzips the extension they have access to all the files in the HTML folder. Is there a way to hide these? I tried, on a Mac, to make the files hidden, but the js script does not install them if they are hidden.

    Any ideas – Sam

    • Sam,
      a malicious user knows where to get files after they’ve been installed (CEP folder), so I would suggest you not to worry too much, but I understand your preoccupation because me too, I’m particularly concerned about intellectual property (I’m studying licensing systems lately, and it’s quite interesting 🙂 )
      One thing a brave and skilled developer could do is to install a dummy panel and let it download files from the internet at first launch, but it’s too much hassle IMHO.

      • Thanks Davide – I am concerned, but not overly as you mentioned in your reply. I did look over your last blog post on “Serial Number Verification”, but it is way above my level of understanding. I will just go with what I have for now.

        Thanks – Sam

        • I’m just exploring, Sam, it’s a new field for me too. From time to time I’m a bit discouraged – on one side you need to have, and maintain, at least some skills on a vast set of technologies (webdev, scripting, PS, cryptography, marketing), on the other side a new version comes up and you start wasting time on silly bugs that didn’t exist before, implementing (when you’re lucky) ugly workarounds. I don’t make my living on coding, it’s my second job, and on bad days it’s quite frustrating. Thanks for appreciating my blog! Best regards -Davide

  19. Hi, I have one question, it’s not about CC2015 but I think that You can help me. I’ve created panel for Photoshop CC2014. I successfully updated it to CC2015. Now I’m wondering about backwadr compatibility. As far as i know, to run it on CC i just have to make one more zxp and change the version in manifest file to [14.0,14.9] an that’s it. (correct me please if I’m wrong). But what about Photoshop CS6? It was running flash extensions, is there any way to use my html/script extension on CS6? Thank You very much for help!

    • Hi Adam,
      I’m afraid CS6 doesn’t support HTML so you have to code a FLASH panel from scratch if you need to support it.
      By the way, if you’re using a set of HTML features that are supported in all CC-CC2014-CC2015 versions, you don’t need to build 3 installers, just change the manifest version to “14” (not array notation) which means: from 14 onwards, with no max version specified.
      Hope this helps -Davide

      • Thank you for a great tip, I’ll try this. Btw this is amazing article, I’m sure that it helped many people. PS-Installer is also great solution, thank You for it.

  20. Hi, David!

    Many thanks for the list!

    The item 5 has a typo: “PayerDebugMode” instead of “PlayerDebugMode”. Could cost some poor soul a few hours. 🙂

    Thank you!

  21. Hello Davide. I can confirm that ScriptUI dialogs are fixed with the latest PS update (v2015.0.1)

    Unfortunately I’m still having troubles with the latest ZXPSignCmd.exe, I can’t sign my panels because there’s something wrong with the file. Each time I try to execute it I’m having the same message:

    “The version of this file is not compatible with the version of Windows you’re running. Check you computer system infromation to see whether you need an x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher.”

    Very strange ’cause I’m using the 64bits file with a Win 10 / 64bits
    I’ve tried to execute it in Compatibility Mode, as Admin without luck.

    • It seems to me that I’ve read somewhere else that you solved downloading the CEP-Resources folder as a ZIP from the GitHub repository and then it worked, is this correct?

      • That’s right Davide, downloading just the EXE did not work for me, but this morning after my last comment here I just downloaded the CEP-Resources folder as a ZIP and the ZXPSignCmd.exe worked as expected. So today is a great day! 🙂

  22. Hi Davide, I have extension folder (without signature) in Library/Application Support/Adobe/CEP and when I open extension in CC14 it works, but CC15 says “The extension XXX could not be loaded because it was not properly signed “. I dont know why doesn’t work nOW. Thanks.

    • Hi Sergio,
      at first I’d say that you had the debug flag active on CC2014 and not on CC2015, and your extension is, ehm, not properly signed 🙂 So that CC2015 complains.
      Hope this helps -Davide

  23. Hi Davide
    Now that my new users (Windows) have used the new installer, I have some info to add here. When a user (again Windows – most of my clients use Windows) double clicks on the installer.js file they get an error code. On my own emulated Windows (I am on a Mac) computer I made Photoshop the default for opening .js files and the installer.js works fine, but my users get an error code.
    I have created instructions for the users to install the installer.js file through Photoshop by going to File -> Scripts -> Browse. Inexperienced users get confused here because when they navigate to the installer folder they do not see the installer.js file. This is because in the Load dialogue only Adobe JavaScript File (*JSX) will show up. The user has to click on the lower right drop down menu to select JavaScript File (*JS). When they do that they see the installer.js file and after they select that everything works fine. It is just a gotcha that people should be aware of.

    It would be great if there is a way to make the installer.js file automatically open in Windows when double clicked, but I do not know if that is possible. I like the ZXP Installer that Max Penson created. The main problem for me is it’s size, over 40mb. My extension is only 11mb, so it would bloat my file to too large a size.

    Again Davide, thanks again for this resource. It looks like you have lots of people who have been saved by your efforts, including me.


  24. Just a quick follow up to my previous comment.
    I am now instructing the user to right click on the installer.js file and choose Adobe Photoshop CC 2015 as the program to install the installer.js.
    Much simpler.

    • Hi Sam,
      you can always rename the .js to .jsx, it’s no problem.
      Now, there’s a thing that you must be aware of when it comes to the installer: if you need to deploy only an HTML Panel and nothing else, and you do the installation on a User base (that is, not in the System library but in the User’s), Photoshop can be run normally and the installer will work.
      Conversely, if you need to deploy any file inside a Photoshop subfolder (for instance: a script in Photoshop CC-something/Presets/Scripts or a plugin in Photoshop CC-something/Plug-ins or an action in Photoshop CC-something/Presets/Actions, etc etc) Windows wants Photoshop to be Run As Administrator otherwise PS will fire a permission error.
      This is due entirely to Windows security policies.
      But (and see how things get complicated) if you right click on the PS icon and choose “Run As Administrator”, then you cannot drag & drop a JSX file in Photoshop – again, put the blame on the operative system.
      You can add a #target photoshop as the first line in the installer.jsx – which would possibly make Photoshop to open it by default (I suspect you need installed the ExtendScript ToolKit aka ESTK to make it work this way – ESTK is no longer installed by default alongside with PS) but I suspect that if it’s run as admin neither this will work.
      To sum up: if you have an HTML Panel only and nothing else, you can rename .js to .jsx, run PS normally and drag&drop the installer in PS.
      In any other case, on Windows PS needs to be run as administrator, and the only possible way to let it run the js-renamed-as-jsx is to File, Scripts, Browse…
      I know this is a major drawback, but it’s totally out of my reach, alas!

      • Thanks Davide,
        Lucky, for now all I have are HTML panels for the user to install. I will leave things as they are for now and have the user right click on the installer.js to choose Photoshop to open and run the script. If that fails the user, I know from experience that the installer.js script will run when opened from within Photoshop.
        I know you must feel the same frustration as the rest of us. Every time we get our panels up and running in Photoshop, Adobe changes something like no Flash support and then no more Extension Manager. What else do they have up their sleeves :).

        Thanks again – Sam

  25. Hi Davide,
    you mentioned the possibility to let users to install addons manually.
    But, how can they do it after downloading the zxp file?
    How can zxp packages content be extracted?

    Thanks very much for your help!

    • A ZXP is a Zip in disguise, just rename it as .ZIP and you should be able to de-compress it (on OSX, for some reason, you need to use the ZIP commandline utility or a free app such as The Unarchiver).
      Now, I’m not sure whether the above applies on ZXP downloaded from Add-ons – if I remember correctly it failed – but for sure it works for ZXP you build locally

      • Thanks, so much Davide!

        Yes, it seems that the downloaded package can’t be extracted.

        Anyway, what’s the addon directory to install it manually in CC2105. A user of mine email me that he doesn’t even have the “extensions” folder inside “CEP”. Can you please tell me the exact path for CC 2015.

        Thanks very much!

  26. Hi Davide,

    Hope you are well. My issue is not critical, but I was wondering if you had experienced your users getting the error message on installing the installer.js that the extension was not “properly signed”. I have had a couple of my users get this message. I have asked them to uninstall the extensions using the uninstaller.js and reinstall. So far the extensions for these users has installed correctly after the above procedure.
    Any idea of why this could be happening?

    As always, thanks for your help – Sam

    • Hi Sam,
      could that be that the extension already exists (at least with the same folder name) and files are just added? If some of the previously installed stuff is still there (say, a file that was required on version 2.3 and it’s not on version 2.3.1), that breaks the signing. Wiping out everything and installing fresh would solve – just an hypothesis!

  27. For anyone interested below is an applescript I made for packaging an extension in an apple app so the client can just double click on the Icon and the extension will (hopefully) install.
    One could easily change it to a droplet so that a zxp or zip file be dropped on it and installed.

    What I would like to know is what the command line tool of the or the AEM do differently that needs 50MB of code.

  28. Oh man, I thought I had already set my manifest to not have an end version support…I was trying for hours to get it to show up in 2015 and came back to re read that tip…and realized I had [] around the lines 😛

    Thanks a ton. Your tips (this and the multi-load JSX files) have been a god send for my extension.

  29. Marc-Andre Gauthier March 8, 2017 at 3:48 PM

    Hi Davide. I mus say your site is very helpful.

    I have a problem deploying a HTML extension to Photoshop through Adobe Exchange. I always get the “Extension is not signed properly” message. I created the zxp with Exchange Packager so it’s supposed to be signed. When I install the extension through Adobe Exchange, I get the error message. The only way to make it work was to rename the zxp to .zip and unzip the content manually in C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\myextension . Then I don’t get the message anymore. Is there a way to find what is wrong with the installation. I get no other messages.

    Any help would be great.

    Thanks in advance.

Trackbacks and Pingbacks:

  1. Adobe Extension Manager CC and Exchange issues | Photoshop, etc. - July 5, 2015

    […] It’s been discontinued, that is: Adobe Extension Manager will not support CC2015. Please read this page for updated information and […]

Leave a Reply

Text formatting is available via select .

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">