Quick answer: Capture both GDScript errors and native engine crashes from your Godot Android and iOS exports, with device model, OS, renderer, and memory attached. The editor hides export-specific failures, so on-device capture is the only way to see what real phones actually do.
Godot makes mobile export deceptively easy, and that ease hides a trap: the editor on your desktop is not the export template on a phone. Renderer differences, missing export settings, and the gap between GDScript running in the editor and running on a constrained mobile device all produce crashes you will never see while developing. If you ship a Godot mobile game without on-device crash capture, the editor cheerful green checkmark is lying to you about how the game behaves in players hands.
The editor is not the export
When you press play in the Godot editor, you are running on your desktop with desktop drivers, plenty of memory, and the editor own error handling. The mobile export runs a different rendering backend, on a different GPU, with a hard memory ceiling, and none of the editor safety nets. Bugs that the editor quietly tolerates become hard crashes on a phone.
Renderer choice is a frequent culprit. The Forward+ and Mobile renderers behave differently, and shaders or features that work in one can fail in the other. A crash that never appears in your editor session can hit every player on a particular GPU, and you will only learn about it if you capture crashes from the actual export.
Capture GDScript errors and native crashes
Godot crashes come in two layers. GDScript runtime errors, a null instance, an index out of range, a failed type cast, are catchable at the script level and carry a readable message and a script position. These are the bread and butter of Godot bug reports and the easiest to act on.
Beneath that sits the native engine. Crashes in the C++ core, in GDExtension code, or in the renderer produce native crashes that do not surface as a clean GDScript error. A complete setup captures both: the script-level errors with their messages and the native crashes with whatever backtrace the platform provides, so an engine-level failure does not just vanish into a silent app close.
Export quirks that cause mobile crashes
Several Godot export settings cause crashes only on device. Missing permissions, an incorrect renderer for the target hardware, texture compression formats the device does not support, and resources excluded from the export by an overly aggressive filter all produce on-device failures. The export step itself is a source of bugs, not just your code.
Texture compression in particular bites mobile developers. A format that is fine on desktop may be unsupported on a given mobile GPU, producing a crash or a black screen on load. Capturing the device GPU and renderer in your crash reports lets you correlate these failures with specific hardware and trace them back to an export setting rather than your game logic.
Capture the device context
Attach the device model, OS version, the active renderer, and available memory to every crash. On Android especially, the device matrix is enormous, and a crash that clusters on one GPU family or one OS version is telling you the problem is hardware-specific rather than universal.
Memory matters on both platforms. Godot mobile games can exceed a device memory budget with large textures or many active nodes, and the OS will kill the app. Recording memory at crash time helps you distinguish a code crash from an out-of-memory kill, which require entirely different fixes, one in your logic and one in your asset budget.
Setting it up with Bugnet
Bugnet provides a Godot SDK that hooks the engine error handling to capture GDScript errors automatically, attaches device model, OS, renderer, and memory, and queues reports to upload on the next launch when a crash takes the app down. Your Android and iOS exports report the same way your other platforms do.
Add custom fields for the data only your game knows, like the current scene and quality preset, and turn on automatic capture so the export-specific failures surface without players needing to report them. Everything lands in one dashboard, so you can filter a crash by renderer or device and confirm whether an export-setting change actually fixed it.
Verify on real hardware
Crash capture is most valuable when paired with at least a little real-device testing. The export quirks that cause the worst crashes, wrong renderer, unsupported compression, missing permission, often show up on the very first launch on a real phone, so testing your export on one low-end Android device and one iOS device catches a surprising amount before players do.
Beyond that first-launch check, let your crash data carry the load. You cannot own every Android device, so your players collectively test the export across the whole hardware matrix. Capturing their crashes with full device context turns that uncontrolled distribution into usable data, so a Godot mobile crash on a phone you have never held still becomes something you can diagnose and fix.
The editor green checkmark is an opinion. The phone is the fact. Capture the phone.