getsentry / getsentry/sentry-react-native

feat: Expose crashed last run API

Abierto
#5,852 2 comentarios 0 reacciones 0 asignados Ver en GitHub
Errors Feature React-Native
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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.