Finding Previously Installed Softare
If you are creating a package that may upgrade a previous install, Installer.app needs to be able to find the previously installed files in order to upgrade them properly. If what you have installed is unlikely to be moved by the user, this generally is not a problem: the files are where Installer.app left them.
However, if the files are likely to be moved (e.g. an application), Installer.app needs some hints on how to find the moved files. The mechanism to provide these hints is called “Locator”, and an interface for Locator can be found in the “Contents” tab of the PackageMaker user interface.
A Locator definition specifies one or more “search methods” that will be used to locate a specific file in your root. For example, you might specify how to find ./My Great App.app
, as seen in the following screenshot:

In this way, you can specify Locator definitions for as many or as few files in your root as needed. Locator definitions can also be specified by hand by modifying files within your package, as described here.
The Search Methods
CheckPath
Simply checks a specific path. Succeeds if the file exists at that path.
LaunchServicesLookup
Consults the Launch Services database. Launch Services is a framework that provides an API for launching applications in Mac OS X.
BundleIdentifierSearch
Performs an exhaustive search of the entire filesystem for bundles with the specified CFBundleIdentifier
in their Info.plist file.
CommonAppSearch
Available in OS 10.3 or later. This method is simply a macro that expands into a CheckPath, a LaunchServicesLookup, and a BundleIdentifierSearch - meaning that you get a comprehensive search for your application.