¿Qué hace sentry-react-native-sdk?
Configuración completa del SDK de Sentry para React Native y Expo. Úsalo cuando te pidan "añadir Sentry a React Native", "instalar @sentry/react-native", "configurar Sentry en Expo", o configurar monitoreo de errores, trazado, perfilado, repetición de sesiones o registro en aplicaciones React Native. Compatible con Expo gestionado, Expo bare y React Native vanilla.
Instalación
Ejecuta el siguiente comando en la raíz de tu proyecto:
npm install @sentry/react-native
# o si usas Yarn:
yarn add @sentry/react-native
Si usas Expo managed, ejecuta además:
expo install @sentry/react-native
Configuración básica
1. Inicializar Sentry
En tu archivo principal (por ejemplo, App.tsx o index.js), importa e inicializa Sentry:
import * as Sentry from '@sentry/react-native';
Sentry.init({
dsn: 'TU_DSN_DE_SENTRY_AQUI',
// Configura el nivel de rendimiento (opcional)
tracesSampleRate: 1.0, // Ajusta en producción (p. ej., 0.2)
profilesSampleRate: 1.0, // Para perfilado
// Habilita repetición de sesiones (opcional)
replaysSessionSampleRate: 1.0,
replaysOnErrorSampleRate: 1.0,
});
2. Envolver tu aplicación
Envuelve el componente raíz con Sentry.wrap:
const App = () => {
return (
<View>
<Text>Hola Mundo</Text>
</View>
);
};
export default Sentry.wrap(App);
Configuración avanzada
Trazado distribuido
Para habilitar el trazado automático de solicitudes HTTP, añade un SentryTracingIntegration:
Sentry.init({
dsn: 'TU_DSN',
integrations: [new Sentry.BrowserTracingIntegration()],
tracesSampleRate: 1.0,
});
Perfilado de rendimiento
Habilita el perfilado de transacciones y de código:
Sentry.init({
enableAppHangTracking: true, // Para iOS/Android
appHangTimeoutInterval: 2, // Segundos
enableAutoPerformanceTracing: true,
});
Repetición de sesiones (Session Replay)
Para grabar sesiones de usuario:
npm install @sentry/react-native-replay
Luego, en la configuración:
import { Replay } from '@sentry/react-native-replay';
Sentry.init({
integrations: [new Replay()],
replaysSessionSampleRate: 0.1, // 10% de sesiones
replaysOnErrorSampleRate: 1.0, // Siempre grabar en errores
});
Registro de mensajes (Logging)
Usa Sentry.captureMessage para enviar eventos de log:
Sentry.captureMessage('Algo sucedió', 'info');
O captura excepciones:
try {
// código que puede lanzar error
} catch (error) {
Sentry.captureException(error);
}
Compatibilidad
- React Native: 0.70+
- Expo SDK: 48+
- Plataformas: iOS, Android
Enlaces útiles
Soporte
Para problemas o preguntas, revisa las issues del repositorio en GitHub.