In this article, we will be covering some iOS crash reporting best practices to help you stay on top of issues and deliver a high-quality app experience to users. The topics covered will be:
Stay on top of crashes with instant alerts
Crashes are inevitable, any developer can and will try to prevent them completely but they are bound to happen. One of the best ways to deal with crashes and make sure users aren’t as affected is to reduce a crash’s impact. The way to do this is to catch a crash as early as possible. Once you know a crash has started to affect users, you can quickly address the issue before a large number of users experience it and eventually result in negative reviews, lost revenue, or churn.
With Instabug’s crash reporting, get an instant understanding of the impact a specific crash is having on your app with the crash severity metric on your dashboard. Instabug also allows you to set up email alerts on high severity crashes to stay on top of issues. Email alerts on crashes are enabled by default. But if you want to make sure, log in to your Instabug dashboard. Go to your profile icon in the top right corner of the dashboard, and select Profile. In the left sidebar, click on Email Notifications. Select the app you want to receive notifications on and make sure Crashes is selected.
With a host of supported integrations, Instabug also allows you to set up crash alerts with whichever tool best supports your workflow. Check out our docs for tutorials on how to set up integrations with your favorite tools such as Opsgenie and Slack.
Recreate and diagnose issues with repro steps
A big challenge facing developers when trying to diagnose an error is understanding how or why it occurred. One of the best ways to start diagnosing a crash is to be able to recreate it. By recreating the conditions leading up to a crash you can quickly pinpoint the exact reason or event that caused a crash.
Instabug’s repro steps show you all of the interactions a user makes with your app up until a crash is reported, grouped by app view. For each view that a user visits, all of the steps that they commit within those views are captured and displayed as a log, grouped by the view. Combined with the sessions profiler, full stack trace, and much more, you can quickly pinpoint exactly why your app crashed and how to resolve it.
For more details on how to enable and disable repro steps for crash reporting check out our docs.
Filter your way through the issue
Not all crashes are created equal. Crashes can vary in severity, reach, cause, and feasibility to fix. To quickly navigate through the different crashes, some caused by user devices and some caused by your app you will need filters. But with Instabug, filters don’t only help you know… filter. They’re a powerful tool that can help you diagnose issues.
With Instabug Crash Reporting you can use a very wide range of filters to help you get much more context on a crash. Filters such as app version, device, OS version, type, date, severity and more, can help you catch patterns in crashes intuitively. Say a new update that introduced a third-party SDK resulting in a spike in crashing sessions can be quickly diagnosed with app version and date filters. Flexibility with filters doesn’t stop with just unique crashes, it includes specific occurrences of unique crashes.
Diagnose network issues with attached logs
Of the many logs sent with crash reports, Instabug automatically logs all network requests performed by your app. Network logs give you a breadth of information to help you diagnose network errors and figure out what's causing them. Requests details, along with their responses, are sent with each report. Each request that you allow (you can omit whatever request you want) will provide a detailed report of the response times and details. Check out our docs for more information on logs.
Crash reduction is an inevitability when you're using Instabug crash reporting. Check out how Vectornator zeroed in on stability with Instabug and cut their crashes by 80%.