Echolume is a small Mac app I make for live audio-reactive visuals. A few days after it went on sale, I got my first real customer email. It was a crash report. The app quit the moment he opened it.
That is a rough first impression to hand someone who just paid you. But he had done the most useful thing a user can do: he attached the report Apple generated. I opened it, and the top of the stack pointed straight at the menu bar icon being created before the app had a connection to the window server, on his particular launch path. I moved that setup later in the launch, replied to him, and asked Apple to expedite the review. The fix was live within a day, and he wrote back that it launched.
I thought that was the end of it. Then, testing a later build myself, the app started crashing now and then. Randomly. And this time there was no crash report at all. Clicking "show report" gave me nothing.
So I did the thing you are not supposed to do. I guessed. Twice. I was sure it was a heavy new visual scene overloading the GPU, so I spent an evening making that shader cheaper. It was a real improvement, and it was not the bug. Then I was sure it was a memory problem in the new video recorder, so I reworked part of that. Also a real improvement. Also not the bug.
What finally solved it was boring. I opened Xcode's Organizer, which collects the crashes from TestFlight builds even when nothing shows up on your own machine, and read the actual symbolicated stack. There it was. The audio engine was raising an exception when the input device changed while the app was running, Swift cannot catch that kind of exception, and the app just aborts. No signal, no local report, because it is not a normal crash.
The fix was small once I could see it. The lesson was not. Get the real stack before you theorize. I had the answer sitting in Organizer the whole time and spent two evenings not looking at it.
Echolume is on the Mac App Store if you make music on a Mac. But mostly I wanted to pass on the debugging lesson, because I doubt I am the only one who reaches for a guess before the log.
curious whether other people have hit the "crash with no crash report" thing, and where you found the answer.