Skip to content

Remote symbolication

TheRealKerni edited this page Jun 19, 2011 · 9 revisions

NOTICE: These are the instructions when using Mac OS X 10.6.2

  • Copy the files inside of /server/local onto a local directory on your Intel Mac running at least Mac OS X 10.6.2 having the iPhone SDK 3.x installed
  • Adjust settings in local/serverconfig.php
    • set $hostname to the server hostname running the server side part, e.g. www.crashreporterdemo.com
    • if the /admin/ directory on the server is access restricted, set the required username into $webuser and password into $webpwd
    • adjust the path to access the scripts (will be appended to $hostname):
      • $downloadtodosurl = ‘/admin/symbolicate_todo.php’; // the path to the script delivering the todo list
      • $getcrashdataurl = ‘/admin/crash_get.php?id=’; // the path to the script delivering the crashlog
      • $updatecrashdataurl = ‘/admin/crash_update.php’; // the path to the script updating the crashlog
  • Make the modified symbolicatecrash.pl file from the /server/local/ directory executable: chmod + x symbolicatecrash.pl
  • Copy the .app package and .app.dSYM package of each version into the local directory where scripts are located. Best is to create a directory per ap pversion and put the files in there, so multiple versions of the same app can be symbolicated. Example:
    • CrashReporterDemo_1_0/CrashReporterDemo.app
    • CrashReporterDemo_1_0/CrashReporterDemo.app.dSYM
    • CrashReporterDemoBeta_1_1/CrashReporterDemoBeta.app
    • CrashReporterDemoBeta_1_1/CrashReporterDemoBeta.app.dSYM
  • Test symbolication:
    • Download a crash report into the local directory from above
    • run symbolicatecrash nameofthecrashlogfile
    • if the output shows function names and line numbers for your code and apples code, everything is fine and ready to go, otherwise there is a problem :(
  • If test was successful, try to execute php symbolicate.php
    This will print some error message which can be ignored
  • Open the web interface and check the crashlogs if they are now symbolicated
  • If everything went fine, setup the launchagent:
    • Adjust the paths to the directory the files are located in symbolicate.sh (don’t forget chmod +x) and com.crashreportsender.symbolicator.plist
    • Copy com.crashreportsender.symbolicator.plist into User/Library/LaunchAgents and add it via
launchctl load com.crashreportsender.symbolicator.plist

IMPORTANT: Don’t forget to add new builds with .app and .app.dSYM packages to the directory, so symbolification will be done correctly. There is currently no checking if a package is found in the directory before symbolification is started, no matter if it was or not, the result will be uploaded to the server

Clone this wiki locally