Debugging React Native Apps
React Native debugging changed a lot since Flipper was the default answer. In modern React Native apps, the first tool to open is React Native DevTools. Use native tooling from Xcode and Android Studio when you need to debug the platform layer, and keep Flipper only for older apps or custom plugin workflows that still depend on it.
Quick Answerโ
For current React Native apps:
- Start Metro with your normal command.
- Open the Dev Menu from the simulator or device.
- Choose "Open DevTools" or press
jin the React Native CLI. - Use React Native DevTools for console logs, breakpoints, React components, profiler, memory, and supported network inspection.
- Use Xcode, Android Studio, and Logcat for native crashes, permissions, signing, Gradle, pods, and platform performance.
Do not copy old Flipper Gradle and Podfile snippets into a new React Native app unless you are maintaining a legacy setup that explicitly requires Flipper.
React Native DevToolsโ
React Native DevTools is the modern built-in debugger for React Native. It is based on Chrome DevTools concepts, but it is shipped and supported with React Native instead of relying on an external Chrome debugging frontend.
Use it for:
- console logs and runtime evaluation;
- JavaScript breakpoints;
- React component inspection;
- React Profiler;
- memory snapshots;
- network inspection where supported by your React Native version.
yarn start
Then press:
j
You can also open the Dev Menu and select "Open DevTools".
Mega Bundle Sale is ON! Get ALL of our React Native codebases at 90% OFF discount ๐ฅ
Get the Mega BundleDebugging Network Requestsโ
For API bugs, start with the Network panel when your React Native version
supports it. It helps you inspect fetch, XMLHttpRequest, and image requests
without adding logging code to every service call.
When the request does not appear in DevTools:
- confirm the app is running a supported React Native and Hermes setup;
- check whether a custom networking library bypasses the captured APIs;
- add temporary logging around the request boundary;
- inspect backend logs and Firebase Functions logs for server-side errors.
For Firebase-heavy apps, also check Firestore rules, Storage rules, App Check, missing indexes, and function region settings. A client-side "network failed" message often hides a backend permission or billing issue.
Debugging Native Issuesโ
React Native DevTools is not meant to replace native tools. Use:
- Xcode for iOS build settings, pods, signing, native breakpoints, memory graph, and device logs;
- Android Studio and Logcat for Gradle, permissions, native crashes, emulator state, and Java/Kotlin logs;
- the React Native release build debugging docs when the bug only happens in a production build.
If a crash happens before the JavaScript bundle loads, DevTools will not help much. Start from the native logs.
What About Flipper?โ
Flipper is still useful in some legacy React Native projects, especially when a team has custom Flipper plugins or an older app that was built around that workflow. But it should not be presented as the default setup for new React Native apps.
If you already have Flipper in an older app:
- Keep it isolated to debug builds.
- Confirm it does not block React Native upgrades.
- Remove obsolete Gradle and Podfile snippets when migrating to current React Native versions.
- Prefer React Native DevTools for JavaScript and React-level debugging after the app is upgraded.
Practical Debugging Checklistโ
When a React Native screen is broken, use this order:
- Reproduce the bug with a clean Metro cache only if needed.
- Check LogBox for the first real error.
- Open React Native DevTools and inspect console output.
- Add a breakpoint at the failing code path.
- Check network requests and backend logs.
- Check native logs if the app crashes or permissions behave differently.
- Create a minimal repro before changing shared infrastructure.
For generated Instamobile apps, also verify that the source app, release app, and shared core code are aligned. A bug fixed only in a release folder can be overwritten the next time the generator produces a release.
Useful Referencesโ
- React Native Debugging Basics
- React Native DevTools
- Debugging Native Code
- Debugging Release Builds
- Android Studio Logcat
- Xcode debugging
Looking for a custom mobile application?
Our team of expert mobile developers can help you build a custom mobile app that meets your specific needs.
Get in TouchConclusionโ
The best React Native debugging setup is simpler than it used to be. Start with React Native DevTools, use native tools for platform problems, and keep Flipper only when a legacy project has a specific reason to depend on it.