The easiest way to build a new export plug-in for Aperture is to create a new project in Xcode using the Aperture Export Plug-In project template. (This template is included in the SDK install.) Be sure to customize the class names and fill in the proper UUIDs to avoid namespace collisions.
An Example Export Plug-in
The Info.plist for an Export Plug-in
An example Export plug-in, which provides simple FTP upload capability, is installed in /Developer/Examples/Aperture/. This example illustrates API usage as well as several more advanced concepts.
An Aperture Export plug-in is packaged in a CFBundle. Each bundle contains one or more plug-ins. A bundle also contains an Info.plist file.
This Info.plist file encodes key-value pairs that are specific to the ProPlug plug-in architecture. They tell the plug-in manager what protocols and versions the plug-in implements and what host protocols and versions it supports. As well, the key-value pairs specify appropriate names, IDs, and groupings.
Here is a commented Info.plist template for an Aperture Export plug-in:
Listing 1-1 An Export Plug-in Info.plist
<key>ProPlugDictionaryVersion</key> |
<string>1.0</string> |
<!--Required. Identifies the version of the ProPlug dictionary this plug-in uses. The value should be 1.0 for this version of the Aperture SDK.--> |
<key>ProPlugDynamicRegistration</key> |
<false/> |
<!--Required. Tells the plug-in manager whether the plug-in principal class performs plug-in registration tasks. If true, the class must implement the PROPluginRegisterBundle protocol.--> |
<key>ProPlugInGroupList</key> |
<!--Required, along with all child keys. Identifies this plug-in as an Export plug-in.--> |
<array> |
<dict> |
<key>groupName</key> |
<string>Export</string> |
<key>uuid</key> |
<string>616BA321-B4C2-49DF-8FD8-2E3392D2D240</string> |
</dict> |
</array> |
<key>ProPlugPlugInList</key> |
<!--Required. Identifies the plug-in's in this bundle.--> |
<array> |
<dict> |
<key>className</key> |
<string>xxxxxxxxxxx</string> |
<!--Required. The name of the class that implements the plug-in |
protocol.--> |
<key>displayName</key> |
<string>xxxxxxxxxxx</string> |
<!--Required. The name that will appear in menus and on the export |
window.--> |
<key>helpURL</key> |
<string>xxxxxxxxxxx</string> |
<!--Optional. If provided, Aperture displays a Help button on the |
export window. If the user clicks the Help button, Aperture launches |
the URL specified here.--> |
<key>protocolNames</key> |
<array> |
<string>ApertureExportPlugIn</string> |
</array> |
<!--Required. Specifies the plug-in protocol this plug-in implements. |
This value should be ApertureExportPlugIn for this version of the |
Aperture SDK.--> |
<key>infoString</key> |
<string>Description of your plug-in and what it does</string> |
<!-- Optional. This is the descriptive text that displays in the Aperture |
Command Customization window.--> |
<key>uuid</key> |
<string>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx</string> |
<!--Required. Specifies a unique identifier for this plug-in. Use the |
uuidgen command-line tool to generate a unique identifier.--> |
<key>version</key> |
<string>1</string> |
</dict> |
</array> |
<key>ProPlugProtocolList</key> |
<!--Required, along with all child keys. Specifies the host protocols that this plug-in supports.--> |
<array> |
<dict> |
<key>protocolName</key> |
<string>ApertureExportManager</string> |
<key>versions</key> |
<array> |
<integer>1</integer> |
</array> |
</dict> |
</array> |
Last updated: 2008-04-23