Creating Extension Manager Packages for Creative Suite Apps
If you’ve opened Extension Manager CS4, you might have noticed there’s a longer list of products available than there have been in previous versions.
You can now package Illustrator, InDesign, Photoshop, InCopy, and Bridge scripts and SWF panels (yes, most of these apps can have SWF panels now!) as Extension Manager packages. Flash, Fireworks, and Dreamweaver have worked with Extension Manager for years (since they all used to be Macromedia products). Extension Manager comes free with any Adobe CS4 application, so CS4 users will already have it installed. So far, I haven’t noticed Adobe making a big deal about this, but this is a great new capability for Adobe users and developers.
You may have noticed Extension Manager extension (.mxp) files showing up on my blog for Illustrator and InDesign scripts:
- Merge Text Extension for Adobe Illustrator
- Send Colors from InDesign and Illustrator to Flash
- Merge TextFrames Extension for Adobe InDesign
There are several advantages to using Extension Manager to install Extendscripts:
- Easy install: no complicated, cross-platform installation instructions needed
- Easy uninstall
- Version control
- Extensions can also be disabled without uninstalling
- A central location for extension instructions and credits
- Built-in license agreement
Packaging an extension can seem daunting, but it’s a fairly simple process to put one together. Especially if you’re already somewhat familiar XML files. There are two main components in packaging an extension:
- MXI (XML) file
- source files
The MXI file is just an XML file with information about your extension, its author, (optional) license agreement information, and where to install the necessary files. You can also find complete details on the MXI file format.
Don’t fret if you’re not familiar with XML. It’s a fairly readable text format, similar to HTML. XML differs in that it doesn’t have a restricted set of tags like HTML (tags are what appear between less than “<” and great than “>” brackets– e.g., <body> is an HTML tag).
Lee Brimelow has a great video tutorial on creating a SWF Panel extension in Flash. If you skip ahead to about 19 minutes in, you’ll see an example of an MXI file and how to create the MXP package using Extension Manager. You can also download his sample files from this page as well. This tutorial is what got me started making extensions.
Additionally, these two tutorials also have great step-by-step examples on how to populate an MXI file:
- Adobe – Developer Center : Creating and packaging a professional JSFL command
- Adobe – Developer Center : Creating an MXP Texture Extension for Fireworks
There are also tools that help you put together MXI files like this Flash panel: MXI file creator.
One thing you’ll notice inside an MXI file is the <files> node. This node lists all of the files that will be installed to the user’s computer. The <files> node will contain individual <file> nodes which have a source attribute and a destination attribute.
<files>
<file source="Queasy Tools.swf" destination="$flash/WindowSWF" />
</files>
If your source files are in the same folder as your MXI file, you simply have assign the filenames of those files to your source attributes. The destination attribute is where much of the power of an MXI file is found, because it can contain special, platform-independent keywords. Each application has its own set of keywords. The keywords begin with a dollar sign ($) character ($flash in the example above refers to the Flash Configuration directory). A complete list of keywords for any of the enabled applications can be found in their respective XManConfig.xml file.
Here’s the Illustrator CS4 config from my system (Applications/Adobe Illustrator CS4/Configuration/XManConfig.xml):
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<VariableForExMan>
<Data key="UserExtensionFolder">$InstallFolder/Configuration/Extensions</Data>
<Data key="$illustrator">$InstallFolder</Data>
<Data key="$plugin">$InstallFolder/Plug-ins.localized</Data>
<Data key="$scripting">$InstallFolder/Scripting.localized</Data>
<Data key="$presets">$InstallFolder/Presets.localized</Data>
<Data key="DisplayName">Illustrator CS4</Data>
<Data key="ProductName">Illustrator</Data>
<Data key="ProductVersion">14.0</Data>
<Data key="IconPath">Configuration/ai_exman_24x24.png</Data>
<Data key="SupportedInSuite">CS4</Data>
<Data key="DefaultLocale">en_US</Data>
<Data key="EmStorePath">$SharedRibsDataFolder/Adobe/Extension Manager2/Illustrator CS4</Data>
</VariableForExMan>
</Configuration>
One thing that hasn’t quite been perfected in CS4 is that, in some cases, a keyword takes you to a directory which has language/region-specific sub-directories. For example, if I take the $presets keyword from the Illustrator config file above for my destination attribute, in order to install a script in the proper location on my machine, the complete path would look like this:
destination=”$presets/en_us/Scripts”
(these strings are case-insensitive in an MXI file)
The problem here, is that a user who didn’t install the US English version of Illustrator won’t be able to install this version of my extension. So it’s not perfect…yet…but still very useful, and I’m confident that Adobe will resolve this in CS5.
Once you’ve finished creating your MXI file, and you’ve got your scripts and/or SWFs that you want to package, you can create your extension. To create an MXP file, all you have to do is double-click your MXI file and Extension Manager will open, package the extension, and prompt you on where you’d like to save it. Your extension is now ready to distribute.





Info on creating MXP extension for Illustrator, InDesign, Photoshop:
http://tinyurl.com/bbcmmk
Comment by justinputney (Justin Putney) — March 2, 2009 @ 6:11 am
[...] The rest is here: Creating Extension Manager Packages for Creative Suite Apps [...]
Pingback by Ingenius Idiot » Blog Archive » Creating Extension Manager Packages for Creative Suite Apps — March 2, 2009 @ 11:13 am
hi there great post. i have another problem. i have a non-standard install of dreamweaver cs4 with extension manager 2.1 downloaded and installed. but when i try to file/import product and specify the /Dreamweaver/configuration/ folder that contains XMANconfig.xml, I get an error from EM saying: ‘does not provide the display nane tag. Please check your configuration. So, i can’t even begin to use EM on this machine! any tips would be really appreciated!!! thx
Comment by forumhound — June 12, 2009 @ 2:27 am
Not sure on that one, forumhound. I would recommend posting that question on the Adobe forums. Maybe someone else has run into this issue as well.
Comment by Justin — June 15, 2009 @ 8:33 pm
thx, fixed the problem with a reinstall the normal way! cheers…
Comment by forumhound — June 15, 2009 @ 9:09 pm