getsentry / getsentry/sentry-react-native
feat: Expose crashed last run API
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.8k
- Forks
- 366
- Merge medio
- 1 d 6 h
- PR fusionados (30 d)
- 94
Descripción
## Problem Statement
Both native SDKs now provide APIs to check if the previous app session ended in a crash:
- **iOS (Cocoa SDK 9.8.0+):** [`SentrySDK.lastRunStatus`](https://github.com/getsentry/sentry-cocoa/issues/7469) — returns unknown, no-crash, or crash
- **Android:** `Sentry.isCrashedLastRun()` — returns a boolean
There is currently no way to access this information from the React Native (JavaScript) layer.
## Use Cases
- Show a recovery UI (e.g., "Sorry, the app crashed") after restarting from a crash
- Disable experimental features that may have caused a crash
- Send custom analytics or breadcrumbs about crash recovery
- Implement progressive rollout logic that backs off after crashes
## Proposed Solution
Expose a unified JS API, e.g.:
```typescript
import * as Sentry from '@sentry/react-native';
const status = Sentry.lastRunStatus();
// Returns: 'unknown' | 'no-crash' | 'crash'
```
### Implementation Notes
- Bridge `SentrySDK.lastRunStatus` on iOS and `Sentry.isCrashedLastRun()` on Android through the native modules
- Normalize the return value across platforms (iOS has 3 states, Android has a boolean — need to decide on a unified shape)
- Should be callable after `Sentry.init()`
## References
- Cocoa SDK PR: https://github.com/getsentry/sentry-cocoa/issues/7469
- Cocoa SDK bump to 9.8.0: https://github.com/getsentry/sentry-react-native/pull/5847
Guía de contribución
Línea de trabajo
Comienza localizando los módulos nativos de React Native y la ruta de inicialización que se utiliza después de Sentry.init(), y compara después las integraciones de iOS lastRunStatus y Android isCrashedLastRun descritas en el issue. Se considera terminado cuando una API de JavaScript invocable expone un resultado documentado y coherente en ambas plataformas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- android, ios, react-native, typescript
- Área
- api, mobile
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 48/100