CrashFix

Your top crash, fixed by morning.

CrashFix takes your worst crashes from Crashlytics, finds the line in your Unity or native code, writes a fix and proves it with a test. Then it opens the pull request, starts the build, and tells you when players stop crashing.

A Mac app for macOS 14 or later. It works with your own Claude, ChatGPT or Gemini key, and your code never touches a CrashFix server.

CrashFix
NullReferenceException
#1 in Crashlytics this week
1,204 players
NullReferenceException: Object reference not set
  at libil2cpp.so 0x00000000004a2f3c
  at WaveController.NextWave () WaveController.cs:132
  at UnityEngine.Events.InvokableCall.Invoke ()

Root cause: spawn points are destroyed when a level unloads, but the wave timer calls Spawn for one more frame.

  • ✕New test SpawnAfterUnload fails on the old code as it should
  • ✓It passes with the fix, and so do the other 214 tests
Pull request #142 Jenkins build #42 Sent to testers
Gone in 1.4.2. No crashes in 7 days. It was hitting 1,204 players a week.

One crash, all the way to gone.

Explaining a stack trace is the easy part. CrashFix does the rest of the job too, and keeps going after the fix ships.

  1. Find

    It reads your top issues from Crashlytics or your crash service, picks the repository that matches the app, and names unsymbolicated frames from your dSYMs, mapping files and IL2CPP symbols. It also tells you when a crash looks like one you've already fixed.

  2. Fix

    Your AI of choice reads the trace, the device logs and the code around the crash. You get the root cause, the exact lines, steps to reproduce, and a fix branch with the change committed.

  3. Prove

    It builds the project in Unity batch mode, Xcode or Gradle and writes a regression test. The fix counts as verified only when that test fails on the old code and passes with the fix.

  4. Ship

    It pushes the branch, opens the pull request with the verification attached, starts your Jenkins build and picks up the Firebase App Distribution link for QA. Jira and Trello tickets come with it.

  5. Watch

    After the release, it watches that crash in the new version. When it stays gone, CrashFix closes the tickets and says so on the PR, with the numbers. If it comes back, it reopens them.

Wake up to fixes, not alerts.

Each night CrashFix takes the top crashes of every game you link, analyzes each one, and tries a fix branch it verifies with your tests. The results are waiting when you come in.

  • Nothing is pushed. Fixes are made in a separate worktree, so your checkout and your uncommitted work are never touched.
  • Ranked by players affected and how sure the analysis is, so the first one you open is the one worth opening.
  • A spending cap per night and a monthly budget, because every analysis uses your AI key.
  • The digest also goes to Slack and a notification, if you want it there.

Fits into the tools you already use.

No new dashboard to keep open. CrashFix reads from where crashes land and writes to where your team already works.

Crash reports from

  • Firebase Crashlytics
  • Sentry
  • BugSnag
  • Backtrace
  • Google Play Android vitals
  • App Store Connect
  • Crash files .ips, .xccrashpoint

Fixes and tickets go to

  • GitHub branches, PRs
  • Jira
  • Trello with a QA bot
  • Jenkins
  • Firebase App Distribution
  • Slack morning digest

Analyzed by your choice of

  • Claude
  • Claude Code edits in your repo
  • ChatGPT
  • Gemini

Not sure about an answer? Ask a second engine and compare the two side by side.

Your code stays yours.

Game studios don't send their source code to strangers, and CrashFix doesn't ask you to.

Your key, your provider

Crash data and the code around a crash go straight from your Mac to the AI provider you pick, with your own API key, under your agreement with them.

No CrashFix cloud

There's no CrashFix server between you and your code. The app's only network call of its own is checking for updates. License keys are checked offline.

You press the buttons

Fixes land on their own branch. Nothing reaches your main branch unless you open and merge the pull request yourself.

Try it with your studio.

I'm starting with a small group of mobile game studios. You get CrashFix free during the pilot and a direct line to me. I get your honest feedback, and if it works for you, a number I can quote.

I'm Giorgi, and I make CrashFix. I answer every request myself, usually within a day.

Questions studios ask.

What does it cost?

Nothing during the pilot. Pricing comes after, and pilot studios hear it first. The AI itself is billed by your provider on your own key; CrashFix shows what each analysis cost and can stop at a monthly budget.

Do you see my code or my crashes?

No. Everything happens on your Mac, and code goes only to the AI provider you choose with your own key. There's no CrashFix account and no CrashFix server in the loop.

Which crashes can it handle?

Unity (IL2CPP and Mono), native iOS and macOS, Android Java and Kotlin, Android NDK and Unreal C++ stack traces. It names unsymbolicated frames from dSYMs, Android mapping files and IL2CPP symbol files before analyzing.

Will it change my code without asking?

It never touches your main branch. Fixes are committed to their own branch, and nothing is pushed until you press Push or open a pull request. The overnight run doesn't push at all.

Is there a Windows version?

Not yet. CrashFix is a Mac app, partly because it builds and tests iOS projects. For CI, its command-line mode runs on macOS runners, with a ready-made GitHub Action.

How is this different from asking an AI chat?

A chat explains one trace. CrashFix finds the crashes worth fixing, works in the right repository with your symbols, proves the fix with a test, ships it through your pull requests and CI, and checks afterwards that players stopped crashing. It also remembers every crash it has seen.