New Relic Mobile iOS crash monitoring is one of our favorite features. In order to make it work, we rely on app developers to upload dSYM files so our services can symbolicate crashes, making the crash stacks an incredibly powerful tool when debugging iOS performance.
Today, we have a few ways of supplying dSYMs to us outlined in the docs. We are looking for your feedback regarding your method of choice and why that method works for you.
Our recommended approach is to add a post-build step to your app that invokes a Python script (generateMap.py) packaged with the agent. This script finds the dSYMs, converts them to text files (map files), then uploads those map files to New Relic. The map files allow us to symbolicate crashes faster, allowing us to decouple our systems from OSX hardware and ultimately letting us scale faster and bigger.
A second approach of supplying map files to us is by using an HTTP endpoint that accepts zipped up dSYMs. Once uploaded, we have systems in place to convert the dSYMs to map files, supplementing the step missed by not using the packaged Python script. This option is more manual and could slow down symbolication time as our systems must wait until the map files are ready for use.
We want to make the New Relic XCFramework (formally known as iOS) agent the best it can be, so we’re curious – why do you prefer the second option (manual dSYM upload) to the first (automatic uploads by the agent)?
Thank you for your feedback!