Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

< Previous PageNext Page > Hide TOC

Building an Export Plug-in

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.

In this section:

An Example Export Plug-in
The Info.plist for an Export Plug-in


An Example 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.

The Info.plist for an Export Plug-in

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>


< Previous PageNext Page > Hide TOC


Last updated: 2008-04-23




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice