While creating ProfCast, we wanted to have a way to get the crash reports back to us and not just to Apple. To solve this problem we found Smart Crash Reporter from Unsanity Software, but it did not solve our problem as well as we wanted it to. So we rolled up our sleeves and implemented a solution that provided what we needed.
The result a crash reporter that lives within your application. It does not catch the crash in the same way as other solutions. HDCrashReporter, when invoked, looks at the logs to see if the application crashed last time it was run. If a crash was detected, HDCrashReporter asks the user if he/she wants to submit in the crash report. In addition to the basic crash report, HDCrashReporter also sends in a filtered console log so that you can see exactly what occurred before the crash.
You can download the framework here along with its source. It has been build as a Universal binary, and thus requires 10.4, but if it is rebuilt, it could run on 10.3 as it uses bindings.
This new version of HDCrashReporter builds on top of the previous version. By re-factoring the code, we gave access to the code that retrieve the crash report and the console log, so that you can get those information independently of the rest. Also the console log and crash report are now sent as attachments. We also integrated the following submission contributed by Marc Liyanage 1.) Localizations. I used HDCrashReporter in an application which is localized in four languages so I translated the .nib file. It is now available in English, German, French and Italian. While the English version's text is unchanged, the width of the label boxes was expanded a bit because the text expands in most languages. Since Xcode uses the English version as a template when you use the "Add Localization" function, this means that future localizations won't have to fiddle with layout changes/geometry in Interface Builder (in most cases). It should be possible to add new localizations just by using the "nibtool -L" / "nibtool -d -w" commands and translating the string table.