Because bundles are simply file and folder hierarchies in the file system, it is possible to construct them by hand. It is far easier, however, to let Project Builder take care of as much of the work as possible. When building a bundle project type, Project Builder copies the contents of the Images and Other Resources suitcases into your bundle's
Resources
folder, creates an
Info.plist
file with the default properties defined, and copies any compiled code into the appropriate platform-specific folder.
If you wish to define any bundle properties for inclusion in the
Info.plist
file, you place them in Project Builder's Support Files suitcase in a file named
CustomInfo.plist
. During the build, Project Builder merges the contents of your plist into the default info plist.
If your application requires localization, you can create strings files using the genstrings development tool. This tool parses your source files looking for occurrences of the localized string macro calls (described in Localized Character Strings) and uses them to create annotated entries in a strings file. After translation, the strings files are then placed into the appropriate lproj folders.
The final step is for you to localize, and if necessary, create platform-specific versions of your other application resources and place them in the appropriate
.lproj
folders.
Project Builder currently supports the creation of two different bundle styles, either of which can be used by CFBundle. Old style bundles use the NSBundle layout inherited from OpenStep. This layout will continue to be readable by Bundle Services, but should not be used when creating new bundles. The new bundle style was developed specifically for Mac OS X and is the style documented here. It is possible to convert old style bundles into Mac OS X bundles using the command-line utility
/System/Developer/Makefiles/pb_makefiles/convertBundle
.