Building a Crash Report Automation for iOS and Android
Automate crash triage with Crashlytics, BigQuery, and Jira
This episode explains how to build a predictable crash report automation system that ingests Crashlytics data, aggregates crash signatures in BigQuery, maps crashes to repository files and owners, and automatically opens Jira issues for the most impactful problems. The approach reduces manual triage overhead, prevents regressions, and speeds developer response.
Set up Crashlytics export and BigQuery aggregation
Start by enabling Crashlytics export to Google Cloud Platform and writing BigQuery SQL to group individual events into unique crash signatures. The show walks through aggregations like total events, affected users, and per-version breakdowns, and explains how to surface blame_files, blame_symbols, and library contexts for both iOS and Android.
Query crash data from BigQuery using Python
Use the BigQuery Python client with a service account JSON credential to run queries and parse results into typed models. The episode recommends storing credentials securely with a secrets manager and optionally pre-aggregating heavy datasets on Google to improve performance for millions of users.
Map crashes to repository files and owners using Git history
Collect and normalize commit authors from GitHub, merging duplicate or no-reply emails, then map blame_files from stack traces to repository paths. The process uses platform-specific symbol parsing for iOS and Android and an abstract mapping layer so a single workflow can support multiple symbol formats.
Create Jira tasks for top mobile crash issues
Automate Jira issue creation for the highest-impact crashes and persist metadata so tasks aren’t duplicated. Practical tips include limiting to the top 5–10 issues, recreating tasks after regressions, linking related crashes, adding detailed descriptions, and notifying teams in Slack.
Best practices, error handling, and performance tips
- Persist created task metadata in BigQuery to avoid duplicate issues.
- Cache slow BigQuery queries during development to speed iteration.
- Use try/except with Slack alerts to handle automation failures safely.
- Automatically create issues even for shared-library crashes with manual owner fallback.
By combining Crashlytics exports, BigQuery aggregation, Python-driven queries, Git committer normalization, and Jira automation, teams can process thousands of crash reports per day and route them to the right developer in minutes. The episode gives clear implementation steps, sample SQL structure, and pragmatic operational advice for production-grade crash triage automation.