Skip to main content

Visión general

La app utiliza Sentry React Native SDK (v7.x) junto con el plugin de Expo para el monitoreo de errores en producción.
Sentry solo se inicializa si el DSN está configurado. En entorno de test, la integración se deshabilita completamente.

Configuración

SDK de Sentry

La configuración principal se encuentra en src/core/config/sentry.ts:

Plugin de Expo

En app.config.js, el plugin @sentry/react-native se integra con el sistema de build de Expo. Sentry v7 cambió el nombre del plugin — antes era @sentry/react-native/expo, ahora es @sentry/react-native.
El authToken no se pasa inline al plugin (es un secreto). Sentry lo lee automáticamente del env var SENTRY_AUTH_TOKEN.
El upload de source maps está deshabilitado por defecto. Para habilitarlo en builds de producción, configura las credenciales de Sentry en el pipeline de CI/CD.

Integración en la app

Root layout

El root layout de la aplicación está envuelto con Sentry.wrap(), lo que permite a Sentry capturar errores no manejados y monitorear la navegación automáticamente.

Error Handler centralizado

El error handler en src/shared/services/api/errorHandler.ts proporciona una capa de manejo de errores que se integra directamente con Sentry.

Clasificación de errores de red

El handler clasifica los errores de red en las siguientes categorías:
Los stores de Zustand registran breadcrumbs en Sentry durante operaciones clave, proporcionando una traza de las acciones del usuario previas a un error.
Los breadcrumbs se agregan automáticamente en operaciones como login, logout, cambios de estado de conexión y acciones críticas de negocio.

Integración con el API client

Los errores de red capturados por el API client se reportan automáticamente a Sentry. El flujo es:
  1. El API client detecta un error de red
  2. El error handler clasifica el tipo de error
  3. Se agregan breadcrumbs con contexto de la solicitud
  4. El error se reporta a Sentry
  5. Se muestra un mensaje amigable al usuario

Archivos clave