tl;dr: How can I package my extension for both cs4 and cs5 in a way that respects the extension's window geometry?
I have a panel that specifies window geometry in it's manifest.xml. When the panel is installed into Photoshop's panels/ folder, the geometry gets ignored, so I'm trying to package the panel as an extension to be installed via the Extension Manager. I have run into different problems for each CS version. I've read quite a few pdfs about the Extension Manager, UCF command line packaging, etc, and have not been able to find a solution that works for both platforms.
My trial and error research has lead me to understand that the extension's files must eventually end up in the (mac) /Library/Application Support/Adobe/<CSversion>ServiceManager/extensions/ directory. In CS5, if the extension's folder contains a manifest.xml file (ex: /extensions/GuideGuide/CSXS/manifest.xml) that specifies window geometry, Photoshop will respect that window geometry when the panel opens. However, in CS4, this is not enough. From my tests, Photoshop CS4 doesn't seem to do anything with the manifest.xml file. Instead, I had to modify /Library/Application Support/Adobe/CS4ServiceManager/ServiceManifest.xml and add my extension to it's contents. Once I did this, Photoshop CS4 launches my panel and respects it's window geometry.
The problem with this is that it's a manual installation. I can't ask my users to dig around in their system files to install my panel. In addition, since it's unsigned using this method, it won't work if they're not flagged for debugging. I've started exploring using the Extension Manager, but I have run into problems that I cannot find ansers in the few pdfs about packaging that I've been able to find.
If I use the UCF command line tool, I can package and sign my file. It installs fine and does what I want. However, using this method, I haven't been able to find a way to specify the author and description that shows up in the Extension Manager.
The UCF command line tool doesn't appear to make packages that can be installed by CS4, and I haven't been able to find one that is compatable. I've had to result to using the Extension Manager to package my extension based on a .mxi file. The problem I have here is that installing files this way limits me to putting them in the /panels directory, which then causes the panel to ignore the indow geometry. Is there a way with an .mxi file to install in the /Library/Application Support/Adobe/<CSversion>ServiceManager/extensions/ directory and modify the /Library/Application Support/Adobe/CS4ServiceManager/ServiceManifest.xml file?
There must be, because Kuler and other extensions are installed there.
Thank you SO much for any help you might provide. I've spent weeks trying to get this to work and have run into nothing but dead ends and wild goose chases.
In manifest.xml of CSXS extension, "Author" and "Abstract" tags can be used to specify author name and description of extension. The following is an example:
<?xml version="1.0" encoding="utf-8"?>
<ExtensionManifest Version="2.0" ExtensionBundleId="SampleExtension" ExtensionBundleVersion="2.0.0">
<Author>Adobe Systems Incorporated</Author>
This is the extension description
The extensions created by UCF command line tool cannot be recognized by CS4 since the format has been changed. It's impossible to install ordinary extensions to /Library/Application Support/Adobe/<CSversion>ServiceManager/extensions/ directory. Extension Manager doesn't provide means to modify the /Library/Application Support/Adobe/CS4ServiceManager/ServiceManifest.xml file, either.
Your extension is a CSXS extension. For CSXS extension it's introduced in Extension Manager 2.1. (You can download Extension manager 2.1 from http://www.adobe.com/exchange/em_download/em20_download.html)
In Extension Manager CS2.1 only MXP package is supported. In Extension Manager CS5 CSXS extension must be packaged by ZXP format. So you have to generate two packages for CS4(mxp) and CS5(zxp)
For CS5, you can use ucf.jar to generate the zxp package.
For CS4, you have to create an MXI file and package it by Extension Manager 2.1 to mxp package. Here is a sample CSXS mxi file:
<author name="Macromedia" />
<product name="Dreamweaver" version="10" primary="true" />
<product name="Fireworks" version="10" primary="true" />
<product name="Flash" version="10" primary="true" />
<product name="" version="11" familyname="Photoshop" primary="true" />
<product name="Illustrator" version="14" primary="true" />
<product name="CSXS" version="1" />
CSXS extension sample.
Extension Name: kuler
<file source="test_extension" destination="" />