Bitrise + Bugsnag

Since Buddy Build was bought by Apple (congrats!) I've been keeping an eye out for a possible alternative. Not because Buddy Build has become rubbish since the acquisition (it's still awesome) but because if it is shut down and absorbed into Apple (e.g. TestFlight) then I would have to spend a ton of time migrating client projects somewhere else.

So for new projects I have been using Bitrise. It is a lot more configurable than Buddy Build and definitely took a bit longer to get setup, but once I got my head around it, it became super powerful.

One out of the box "integration" that was missing was uploading dSYM files to Bugsnag. I've written a previous post about how I got this working with Buddy Build. Getting it to work with Bitrise is very similar:

Firstly you need to head over to the Workflow Editor. After your Xcode Archive & Export step, insert a Script step.

Under the config menu, set the working directory to $BITRISE_XCARCHIVE_PATH.

Then set the script content to:

#!/usr/bin/env bash
# fail if any commands fails
set -e
# debug log
set -x

ls **/*.dSYM/Contents/Resources/DWARF/* | while read line; do
    echo "Uploading $line"
    echo "Running: curl https://upload.bugsnag.com/ -F 'dsym=@$line'"
    curl https://upload.bugsnag.com/ -F "dsym=@$line"
done