3 May 2011
Some experience with Flex programming, Flash Builder, and Extension Builder is required. You must also already know how to create your additional resources, such as a native Photoshop or InDesign plug-in.
A Creative Suite hybrid extension is the solution for developers who want to build extensions with rich Flash-based interfaces and still take advantage of application-specific extensibility. This solution is ideal when:
Extension Builder packages the components of a hybrid extension into a single ZXP package. Extension Manager installs the package on the user's machine as a single extension.
This article shows you how to use Extension Builder 1.5 to package the multiple components as a single Creative Suite extension, including these steps:
Before getting started, perform the following tasks:
After you've created your application-specific plug-in or extension, you must add the final build to your Adobe Creative Suite Extension Builder project.
Create a folder in your Extension Builder project root, name it something like cs_resources, and copy in all of the files that need to be included in the final hybrid extension. If you're adding native plug-ins, add the files for the release version of each plug-in for each supported platform. You can organize the resources by platform. This image shows an example folder structure for a native Photoshop plug-in that supports Mac OS, Win32, and Win64:
After copying the additional resources to the project, you must add those files to the extension using the Bundle Manifest Editor.
Specify the following information for each resource:
Source: The relative location of the resource in the project. Click Browse to choose from among all the resources in the project.
Destination: The location in the file system where you want Extension Manager to install the resource. This is a path token defined in the product-specific SDK or a global path token known to the Extension Manager; see Extension Manager Configuration Reference. Click Select for a list of options, or update the field directly with the appropriate token.
Products: The target product or products for the resource. Separate multiple products with commas. If no product is specified (which is the default), the Extension Manager attempts to install the resource in all products that the extension supports. For example, you can use this to specify a Photoshop resource that should only be installed in the Win64 version (Photoshop64). This attribute is supported only for CS5.5; for CS5, it's ignored.
Platform: The platform the file is intended for. If you specify a platform, the file is installed only on that platform; for instance, you can provide two versions of a file, one for Windows and one for Mac OS, and specify a platform value for each.
File Type: The value "plugin" flags the file as part of a plug-in for InDesign/InCopy CS5 or higher. Use the default value "ordinary" for any other files.
The generated MXI file is an XML configuration file that Extension Manager uses to correctly install the extension and its components in the user's environment. The generated MXI file looks like this:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <macromedia-extension name="com.example.myextension" requires-restart="true" version="1.0"> <author name="Adobe Developer Technologies"/> <description><![CDATA[The description.]]></description> <license-agreement><![CDATA[Legal Text.]]></license-agreement> <products> <product familyname="Photoshop" maxversion="" primary="true" version="12.0"/> </products> <files> <file destination="" file-type="CSXS" products="" source="MyExtension.zxp"/> <file destination="$automate" platform="mac" products="Photoshop" source="cs_resources/mac/MyPlugin.plugin"/> <file destination="$automate" platform="win" products="Photoshop32" source="cs_resources/win32/MyPlugin.8li"/> <file destination="$automate" platform="win" products="Photoshop64" source="cs_resources/win64/MyPlugin.8li"/> </files> </macromedia-extension>
This file includes the display strings that Extension Manager uses when the extension has been installed, including the author, description, and legal text. These values are copied from those in the CS Extension manifest, if those are already set.
The Creative Suite extension component has already been added as a file element of type CSXS. Make sure you don't delete or edit this file element. If it's not present, the Extension Manager can't install your Flex-based component. In this case there’s no need to indicate the destination; Extension Manager knows about the shared installation location used by Creative Suite extensions. The Creative Suite extension component isn't listed in the hybrid page of the Bundle Manifest Editor.
We recommend using the Bundle Manifest Editor to make any modifications to the MXI file. However, if you need to add further details to the MXI that aren’t accessible through the editor, you can update the XML file manually. New elements or attributes that you add directly to the MXI XML manually aren't overwritten by the Bundle Manifest Editor when you update the information there. However, if you manually update elements of the MXI that are controlled by the editor, those values are overwritten the next time you update using the editor. These values include:
During development, test the components of your hybrid extension separately.
Note that Extension Builder doesn't copy the additonal resources to the destination location during development.
The Extension Builder Export wizard automates the process of packaging a hybrid extension. To create a signed ZXP package that Extension Manager can use to install your hybrid extension:
If you want to explore the contents of the packaged extension, select the "Unpack ZXP into export folder" option. The expanded archive is unpacked in the export directory.
Double-click the generated ZXP file in the file browser to install it using Extension Manager.
After Extension Manager verifies the contents and signature and successfully installs the extension, it appears in the list of available extensions for the supported applications. When you select your hybrid extension, you can see the author, description, and legal information specified in the MXI file, as well as the certificate information.
Here are some useful resources to use when developing your Creative Suite hybrid extension: