Property List for an Open Directory Plug-in

An Open Directory plug-in is a standard OS X bundle and follows the guidelines defined for OS X packages.

Open Directory plug-ins are loaded from the following directories:

or from other directories that may be defined later by OS X.

Open Directory loads Open Directory plug-ins using the CFBundle load mechanism.

No special linker commands are required to build an Open Directory plug-in, but you should use the -bundle_loader /usr/sbin/DirectoryService option if you want to call APIs from the DirectoryService framework. Do no link to the DirectoryService framework, but use the DirectoryService framework to locate header files. The benefit of this approach is that calls can be directly dispatched without the overhead of a Mach message.

You must provide a property list file for your Open Directory plug-in. Here is the property list file for a plug-in named SamplePlugin:

Listing 10-1  Property list for a sample plug-in

{
    "CFBundleExecutable" = "SamplePlugin";
    "CFBundleName" = "DirectoryServiceSamplePlugIn";
    "CFBundleIdentifier" = "com.apple.DirectoryService.SamplePlugin";
    "CFBundleVersion" = "1.0";
    "CFBundleShortVersionString" = "1.0";
    "CFBundlePackageType" = "dspi";
    "CFBundlePackageSignature" = "adss";
    "CFPlugInDynamicRegistration" = "NO";
    "CFPlugInFactories" = {
        "D970D52E-D515-11D3-9FF9-000502C1C736" = "ModuleFactory";
    };
    "CFPlugInTypes" = {"697B5D6C-87A1-1226-89CA-000502C1C736"  =
        ("D970D52E-D515-11D3-9FF9-000502C1C736");
    };
    "DSServerSignature" = "Samp";
}

In Listing 10-1, you are responsible for setting the following values:

The following values must be set as shown in Listing 10-1:

See the section Local Configuration for information about the CFBundleConfigAvail property, which is used to specify a configuration application for your Open Directory plug-in OS X v10.1.