Crash Reporter

Aug 22, 2006 — Whitney Young

I've abstracted Adium's Crash Reporter and modified it a bit. It's pretty nice.

Here's a screenshot:

Check it out here:
svn://fadingred.org/crashreporter/trunk

And for your reference here are the setup instructions:

*  -- To use the Crash Reporter:
* --------------------------------------------------------------------------------------
*  1) In the Info.plist file of your main Application, include a key
*     CrashReportURL that is a string containing the URL to which you
*     want crash reports sent.
*  2) Compile the framework and add it to your main project
*     If you don't have a normal way of adding frameworks to your project,
*     simply right click in the list of files and navigate to Add Existing Frameworks...
*     You can add the framework that way.
*  3) Add a copy files build phase to your main project.  Set the destination to
*     Frameworks, and add the CrashReporter framework to that build phase so that
*     your application contains the CrashReporter.
*  4) At the earliest point in your code that you can (in an
*      applicationDidFinishLaunching: call or something similar), add the following calls
*
*     #include <CrashReporter/CrashReporter.h>
*     ....
*     [AICrashController enableCrashCatching];
*     [AIExceptionController enableExceptionCatching];
*
*     to enable crash and exception catching.
*  5) Implement a script on your server (at the CrashReportURL location from step 1)
*     that will save the information.  Information that will be received via POST variables
*     is as follows:
*           version - The version of your application
*           email - The email address of the user submitting the report
*           short_desc - The short description the user gave
*           desc - The long description the user gave
*           log - The crash/exception log
*
*  That's it!  You're finished.  Enjoy using the crash reporter!
*  --------------------------------------------------------------------------------------
*
*
*
*  -- Options:
*  --------------------------------------------------------------------------------------
*  You can supply a plist file called BuildInfo in the resources folder of your application
*  containing a dictionary of keys and values.  The keys will be sent as post variables to
*  your save script and the values will be the values of those variables.  An example is
*  shown below.
*
*  If you use Sparkle, the CrashReporter framework can leverage Sparkle and check to make
*  sure that the person using your application is using the most recent version of it.  If
*  they're not using the most recent version, the CrashReporter will disable crash reporting
*  and allow them to update it before relaunching the application.  In order to enable this
*  support, you must be using a modified version of Sparkle which can be checked out from
*  an subversion repository at Fadingred.org:
*       svn co svn://fadingred.org/sparkle/trunk/
*  This verion of Sparkle has a lot of changes and enhancements, but should be a drag and
*  drop replacement for Sparkle versions 1.0 and 1.1 (and possibly versions to come).
*  --------------------------------------------------------------------------------------

Tags: Cocoa, Framework, Open Source, Software