This was a task in Cocoa development that was new to me. In MiLife I provided a customized FAQ document separate from the standard help, and in EasyBatch it opens the web-based FAQ.
In BravoBug’s newest upcoming app I thought it was time I implement a nice Apple-style help-book in the standard Mac OS X way. Surprisingly, getting the help book up and running was a bit trickier than I thought. Apple’s internal help application that is responsible for loading these things is a bit finicky. You have to have several things sync’ed and organized just right. And there are a few gotcha’s, it seems. So here’s a step by step procedure on how to get ‘er done:
1. Create your HTML help file
The actual help files are just HTML pages. So create your pages, and any subfolders of necessary images, stylesheets, etc. I read different tutorials for this, some of which said that your index.html page should be called ‘index.html’, others that said it should be called ‘MyAppHelp.html’ (where MyApp is the name of your Cocoa executable). I ended up using ‘MyAppHelp.html’.
So name your top-level HTML file, “MyAppHelp.html”. The directory that contains your top-level HTML file, should also be called ‘MyApp Help’. Once they’re ready…
2. Add your AppleTitle meta tag
To recognize your help book, you need to add the following meta tag to your top HTML page (in the HEAD tag):
<meta name="AppleTitle" content="MyApp Help">
(Again, replacing “MyApp” with the name of your Cocoa program.) You may also want to add the AppleIcon meta tag while you’re at it.
3. Add the help files to your localized .lproj folder.
Again, I read different tutorials that said different things. Some said the folder did not need to be inside a localized language project. Ultimately what worked for me was having my help folder inside of English.lproj, which makes sense anyways since the only language I speak fluently is English, and that’s what I’m writing in. So move your help folder (and all its subdirectories and HTML files) into the necessary language project for your app.
4. Add the top help directory to your XCode project ‘Resources’
Drag your help folder to your XCode project’s Resources. When the import dialog comes up, be sure to click ‘Create Folder References’. This is essential for preserving the proper folder structure, and was something I kept forgetting to do when I was making my help book.

5. Add two new keys to your Info.plist file.
This should be your top-level Info.plist file (I think). Add the following two keys, replacing the obvious MyApp with the name you have used so far.
<key>CFBundleHelpBookName</key>
<string>MyApp Help</string>
<key>CFBundleHelpBookFolder</key>
<string>MyApp Help</string>
Now you should have a working help book file, when your users select ‘MyApp Help’ from the Help menu, it should load fine. If you choose the menu item and get an error (such as, ‘Help not available for MyApp’), check that you imported your files properly, and that all your files and keys match. If nothing happens, check that the menu item is connected to the First Responder and its action is -showHelp:.
You may also want to run Apple’s Help Indexer app before distributing your app. I believe this provides a meta-data friendly index so that spotlight can find all the goodies in your help file.