getsentry / getsentry/sentry-react-native
feat: Expose crashed last run API
- 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
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