getsentry / getsentry/sentry-react-native

feat: Expose crashed last run API

Offen
#5,852 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Errors Feature React-Native
Vorherrschende Sprache
TypeScript
Sterne
1.8k
Forks
366
Ø Merge
1 T. 5 Std.
Gemergte PRs (30 T.)
93

Beschreibung

## 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

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die nativen React-Native-Module und den Initialisierungspfad zu lokalisieren, der nach Sentry.init() verwendet wird, und vergleiche anschließend die in diesem Issue beschriebenen Integrationen iOS lastRunStatus und Android isCrashedLastRun. Als abgeschlossen gilt die Aufgabe, wenn eine aufrufbare JavaScript-API auf beiden Plattformen ein dokumentiertes, konsistentes Ergebnis bereitstellt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
android, ios, react-native, typescript
Bereich
api, mobile
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.