Sie haben eine React Native-Anwendung lokal erfolgreich getestet, die QA hat zugestimmt und die Produktion ist nahe. Dann landet die offensichtliche Frage: Was passiert, wenn sie auf einem Gerät des Benutzers zusammenbricht?
Ohne Sentry ist die Antwort normalerweise schlecht. Sie erhalten ein Support-Ticket, ein vages Screenshot, vielleicht ein Konsolen-Log aus einem Entwickler-Builder, der sich nicht mit der Produktion übereinstimmt. Mit Sentry React Native, wenn Sie es richtig einrichten, erhalten Sie den Fehler, die Stack, die Release, die es verschickt hat, und genug Kontext, um es ohne Vermutungen zu beheben. Der Haken ist, dassdie grundlegende Installation das leichtere Teil ist
. Die schmerzhaften Teile kommen später: native Integration, Symbolisierung, Quellkarten, Release-Namen und das Festhalten an all dem, wenn Ihr Liefermodell Live-Updates beinhaltet.
Die meisten Leitfäden stoppen zu früh. Eine echte Einrichtung muss CI, App-Store-Builds, Android-Releases und JavaScript-Bundles überleben, die nicht immer aus dem Original-Datei stammen.
- Getting Started with the Sentry SDK
- Das Wizard ausführen und das Ergebnis überprüfen
- Automatisierung von Releases und Source Maps
- Leistungsmessung und benutzerdefinierte Ereignisse
- Überprüfen und Fehlerbehebung Ihrer Integration
- Integrieren mit Live-Update-Workflows wie Capgo
Einführung in die Sentry SDK
Die schnellste Möglichkeit, Sentry React Native in eine neue App zu integrieren, ist immer noch der Installations-Assistent. Er handhabt den größten Teil der wiederholten Einstellungen und bringt Sie schnell zu einem funktionierenden Grundlayout. Das ist wichtig, weil die Handarbeit der ersten Installation normalerweise zu kleinen Abweichungen führt, die Sie erst bei der ersten Produktionsstörung bemerken.
Was Sie vor der Installation benötigen
Sie benötigen zunächst eine normale React Native-Entwicklungsumgebung. Node, ein Paketmanager, Plattform-Tools für iOS und Android und Watchman auf macOS, wenn das bereits Teil Ihres Workflows ist. Sie benötigen auch ein Sentry-Konto und ein Projekt für React Native.
Wenn Sie noch evalieren, ob React Native die richtige Betriebswahl für Ihr Team ist, dieser React Native-Leitfaden für Unternehmen gibt nützliche, nicht-marketingbezogene Kontextinformationen zu Plattform-Abwägungen, Personalplanung und Wartungserwartungen. Es lohnt sich, ihn vor der Verpflichtung Ihres Überwachungs- und Release-Prozesses um eine gemeinsame Codebasis zu lesen.
Installieren Sie die SDK mit dem Assistenten aus der Projektwurzel:
npx @sentry/wizard@latest -i reactNative
The Zauberer fragt einige Dinge, die Entwickler oft zu schnell durchklicken:
- Projekt auswählen. Wählen Sie das tatsächliche Sentry-Projekt, das Sie in der Produktion verwenden möchten, und nicht ein temporärer Sandbox, den Sie später vergessen werden, zu aktualisieren.
- Nativänderungen. Ja sagen. Die JavaScript- nur-Fehlerfänge reichen nicht für mobile Apps aus.
- Optionale Funktionen. Aktivieren Sie nur, was Sie wissen, dass Sie verwenden werden, aber nicht alles blind auf den ersten Tag aktivieren, wenn Ihr Team die resultierenden Daten nicht überprüfen wird.
Das Wizard ausführen und das Ergebnis überprüfen
Nachdem das Wizard abgeschlossen ist, überprüfen Sie die Änderungen anstatt ihnen ohne Überprüfung zu vertrauen. Sie sollten ein Sentry-Paket in package.json, nativen Änderungen unter ios und android, sowie eine Initialisierungsoberfläche in Ihrem Anwendungsstartdatei sehen.
Ein typischer Initialisierungsprozess sieht so aus:
import * as Sentry from '@sentry/react-native';
Sentry.init({
dsn: 'YOUR_DSN',
});
Die DSN erzählt dem SDK , wohin Ereignisse gesendet werden sollen. Behandeln Sie es als Konfiguration, nicht als ein Geheimnis, das niemals sichtbar sein darf. Es ist nicht dasselbe wie ein Authentifizierungstoken. Halten Sie jedoch Ihre Umgebungs-Einstellungen sauber und konsistent, damit Ihre App auf die richtige Sentry-Projekt in jeder Umgebung verweist.
Ein praktisches Muster besteht darin, die DSN aus umgebungs-spezifischen Konfigurationen zu laden und Sentry vor dem Rest Ihres App-Tree zu initialisieren. Wenn Sie auch durch die Politur der Startphase arbeiten, ist diese Anleitung zu React Native Splash-Screen-Einstellungen nützlich, da die Start-code-Reihenfolge oft mit dem Ort überschneidet, an dem Teams Sentry-Initialisierung platzieren.
Praktische Regel: Initialisieren Sie Sentry so früh wie möglich in der App-Startphase. Wenn Sie bis zum Navigieren, Authentifizierungshydratation oder Remote-Konfiguration warten, werden Sie Startfehler verpassen.
Zu diesem Zeitpunkt sollten Sie sich nicht auf Perfektion konzentrieren. Das sofortige Ziel ist einfach: Lassen Sie die App starten, lösen Sie später in diesem Artikel einen JavaScript-Fehler aus und bestätigen Sie, dass Ereignisse bei Sentry ankommen. Sobald das funktioniert, werden die native und die Release-Schichten viel einfacher zu verstehen.
Konfiguration von Native iOS- und Android-Projekten
Zu diesem Zeitpunkt bekommen viele React Native-Teams einen falschen Eindruck der Vollständigkeit. Die JavaScript-SDK ist installiert, Ereignisse erscheinen und alle denken, dass Crash-Reporting abgeschlossen ist. Es ist nicht der Fall. Wenn die native Integration ausgeschaltet ist, werden einige der Crashes, die Sie am meisten interessieren, nie in einer verwendbaren Form bei Sentry ankommen.
Was änderte sich auf iOS
Öffnen Sie das iOS-Projekt und überprüfen Sie, was der Zauberer geändert hat. In einer reinen React Native-Anwendung bedeutet das normalerweise Updates in Bezug auf die Anwendungsstart- und Buildphasen. Sie suchen nach Sentry-Initialisierungshooks und Uploadschritten, die mit Ihrem Buildprozess verbunden sind.
In Xcode überprüfen Sie diese Orte:
- Delegat-Start von code. Die App benötigt eine native Sentry-Initialisierung frühzeitig bei der Startphase.
- Build-Phasen. Suchen Sie nach einem Sentry-Upload-Script, das mit Debugsymbolen oder Sourcemap-Handling verbunden ist.
- Build-Einstellungen und Archivverhalten. Symboldateien müssen generiert und während Archivbuilds verfügbar sein.
Wenn Ihre App AppDelegate.mm, sitzt die Initialisierung oft nahe bei der Bootstrapping des React Native-Bridge. Die genaue Dateiinhalt kann je nach React Native-Version, Vorlage und Verwendung der neuen Architektur variieren, daher sollten Sie keine Snippets aus zufälligen Repositories kopieren, es sei denn, sie passen Ihrer Projektstruktur.
Was zählt ist die Absicht: iOS-native Crashs benötigen Symboldaten, und die App muss Sentry vor dem Crash zuverlässig beobachten können.
Wenn auf iOS bei Sentry Crashmeldungen mit nicht lesbaren nativen Frames auftauchen, ist das Problem meist nicht "Sentry ist kaputt." Es ist die Symbol-Upload- oder Release-Übereinstimmung.
Was hat sich auf Android geändert
Android fügt normalerweise Änderungen in Gradle-Dateien und manchmal manifest-level-Konfiguration hinzu. Überprüfen Sie android/build.gradle, android/app/build.gradleund jede Sentry-zu-Plugin- oder -Aufgaben-Verkabelung.
Dinge zu überprüfen:
- Die Sentry-Gradle-Plugin ist angewendet damit Release-Artikel während der Build-Zeit verarbeitet werden können.
- Die Variante-Verwaltung ist sinnvoll wenn Sie Produktflavors oder mehrere Build-Typen verwenden.
- ProGuard oder R8-Ausgaben werden berücksichtigt wenn Ihre Release-Builds schrumpfen oder code verschleiern.
Ein häufiger Fehler bei Android ist die Annahme, dass ein erfolgreicher lokaler Debug-Run beweist, dass die Release-Konfiguration korrekt ist. Es tut das nicht. Der Release-Weg ist anders, insbesondere wenn Minifizierung und CI-Signierung im Spiel sind. Wenn Ihr Team separate Debug-, Staging-, QA- und Store-Builds unterhält, ist diese mobile Buildtypen Ein nützlicher Leitfaden zur Anpassung der Überwachungsverhalten an jede Build-Variante.
Native Setup überprüft wichtige Einstellungen, die später Zeit sparen.
Halten Sie sich nicht bei 'Der Zauberer hat Dateien geändert' auf. Überprüfen Sie das Verhalten direkt.
Verwenden Sie diesen Checklistenpunkt:
- Archivieren Sie eine iOS-Build lokal und bestätigen Sie, dass die Build nicht während der Symbolverarbeitung fehlschlägt.
- Erstellen Sie eine Release-Android-Build und überprüfen Sie die CI-Protokolle auf Aufgaben, die mit Sentry zusammenhängen.
- Überprüfen Sie die Paketnamen- und Bundle-Identifier-Kartierung in Sentry, wenn Sie mehrere Apps unter einer Organisation verwalten.
- Bestätigen Sie die Release-Namenskonventionen jetzt, bevor die CI-Artifacts unter inkonsistenten Namen hochgeladen werden.
Hier ist, was normalerweise nicht gut funktioniert:
| Ansatz | Was geht schief |
|---|---|
| Der Zauberer ohne Überprüfung vertrauen | Die native Einrichtung driftet, wenn React Native oder die Build-Tooling ändert |
| Nur im Debug-Modus testen | Der Debug-Erfolg verdeckt die Symbolisierung bei der Veröffentlichung |
| Mischung aus manueller und automatischer Upload-Schritte | Die Artefakte landen unter verschiedenen Releases und passen nicht zu den Ereignissen |
Die beste Einrichtung ist langweilig. Die native Start-Hooks sind im Einsatz, die Build-Skripte laufen jeden Mal und die Release-Namen sind deterministisch über iOS, Android und JavaScript-Bundles.
Automatisierung von Releases und Source Maps
Wenn es ein Ort gibt, an dem Sentry React Native-Einstellungen auseinanderfallen, ist es hier. Teams installieren den SDK, sehen Ereignisse und verzögern die Automatisierung der Veröffentlichung. Dann kommt das erste ernsthafte Produktionsproblem herein und die Stack-Spur ist minimiert, die Veröffentlichung fehlt oder die Quellkarten-Upload gehörte zu einer anderen Pakete.
Manuelle Quellkarten-Uploads klingen akzeptabel, wenn Sie selten liefern. In der Praxis scheitern sie, weil Menschen schlecht bei wiederholter Veröffentlichungs-Verwaltung sind.
Warum manuelle Uploads in der Praxis scheitern
Die Fehlertypen sind vorhersehbar:
- Jemand vergisst, die Karten hochzuladen nach einer spätnächtlichen Hotfix.
- Die hochgeladenen Dateien gehören zu einem anderen Commit als das Binär- oder OTA-Paket, das die Benutzer ausführen.
- Der Release-Name ändert sich leicht zwischen iOS, Android und CI-Schritten.
- Ein Rebuild erfolgt nach dem Karten-Upload und ungültigt, was Sentry gegenüber abgleichen sollte.
Deshwegen empfehle ich Ihnen nicht, einen "Schritt für Schritt in Notion dokumentieren" Ansatz zu verwenden. Er funktioniert, bis ein dringender Release unter Druck herausgeht.

Ein Release-Prozess, der tatsächlich hält
Ein zuverlässiger Setup hat einige Eigenschaften:
- Release-IDs werden einmal generiert und überall wiederverwendet.
- Build-, Bundle- und Upload-Schritte finden in derselben Pipeline statt.
- Sourcenmaps werden von CI hochgeladen, nicht von einem Entwickler-Laptop.
- Die App initialisiert Sentry mit demselben Release-String der CI während des Uploads verwendet hat.
Das letzte Punkt ist wichtiger als allgemein angenommen. Sie benötigen nicht nur Sourcenmaps in Sentry. Sie benötigen Die korrekten Quellkarten, die der genauen Release-Bezeichner angehängt sind, der vom App-Programm bei Laufzeit ausgegeben wird..
Wenn Ihr Team bereits die Mobilautomatisierung standardisiert, passt sich diese Anleitung zu den automatischen Build- und Release-Workflows mit __CAPGO_KEEP_0__ Actions an. automatic build and release workflows with GitHub Actions Verwenden Sie ein Skript wie dieses in CI und füllen Sie Werte aus Ihrem Pipeline-Umgebung ein:
Sie müssen die Bundle-Kommandozeilenanweisung für Android anpassen und viele Teams teilen Plattform-spezifische Aufgaben anstatt eine Skript zu zwingen, beide zu tun. Das ist in Ordnung. Was zählt ist Konsistenz.
Die Disziplin der Veröffentlichung besiegt cleveres Skripten.
#!/usr/bin/env bash
set -euo pipefail
export SENTRY_AUTH_TOKEN="$SENTRY_AUTH_TOKEN"
export SENTRY_ORG="your-org"
export SENTRY_PROJECT="your-project"
RELEASE_NAME="${APP_VERSION}+${GIT_SHA}"
npx sentry-cli releases new "$RELEASE_NAME"
npx react-native bundle \
--platform ios \
--dev false \
--entry-file index.js \
--bundle-output ./dist/main.jsbundle \
--sourcemap-output ./dist/main.jsbundle.map
npx sentry-cli releases files "$RELEASE_NAME" upload-sourcemaps ./dist \
--rewrite \
--strip-prefix "$(pwd)"
npx sentry-cli releases finalize "$RELEASE_NAME"
Wählen Sie eine Namenskonvention, injizieren Sie sie in die App bei der Build-Zeit und lassen Sie keine lokalen Ad-hoc-Uploads mit CI konkurrieren.
Für React Native bevorzuge ich die Speicherung der Release-Zeichenfolge in einer Build-generierten Konfigurations-Location und die Lesung während der Der Gewinn ist einfach. Wenn ein Ereignis eintritt, kann Sentry die minimierte Frame zurück auf den __CAPGO_KEEP_0__ mappen, den Sie verschickt haben, nicht auf den __CAPGO_KEEP_1__ den Sie glauben, verschickt zu haben.
Erkennen Sie Leistungsdaten und benutzerdefinierte Ereignisse. Sentry.init():
Sentry.init({
dsn: Config.SENTRY_DSN,
release: Config.SENTRY_RELEASE,
dist: Config.SENTRY_DIST,
});
The payoff is simple. When an event arrives, Sentry can map the minified frame back to the code you shipped, not the code you think you shipped.
Erkennen Sie Leistungsdaten und benutzerdefinierte Ereignisse.
Crashes zeigen dir, was gebrochen ist. Leistungstracing zeigt dir, was die Benutzer vorher gefühlt haben, bevor sie aufgaben.
Eine häufige Meldung klingt wie folgt: „Das Dashboard ist langsam.“ Das ist nicht genug, um zu debuggen. Langsam wo? Bei der Navigation? Während des Datenabrufs? Während der Darstellung eines schweren Charts? Sentry wird hier nützlich, wenn du aufhörst, es wie einen Fehlerbriefkasten zu behandeln und stattdessen das Verhalten der App instrumentierst.

Stattdessen das Langsame aufzeichnen, anstatt zu raten
Beginne damit, die Leistungstracing in deiner Initialisierung zu aktivieren. Die genaue Abtaststrategie hängt von deinem Umfeld und deinem Volumen-Toleranz, aber die Struktur sieht wie folgt aus:
Sentry.init({
dsn: Config.SENTRY_DSN,
tracesSampleRate: 1.0,
});
Wenn du React Navigation verwendest, wire die Integration so, dass die Bildschirmübergänge Spuren erzeugen. Dann reproduziere den Vorwurf auf einem physischen Gerät, nicht nur auf einem Simulator. Simulatoren verbergen den Art der Schläfrigkeit, die Benutzer bemerken.
Ein praktisches Dashboard-Beispiel:
- Ein Benutzer öffnet das Hauptdashboard nach dem Anmelden.
- Die Navigation ist abgeschlossen, aber der Inhalt erscheint verspätet.
- Die Spur zeigt, dass die Bildschirmanzeige lange dauert.
- Kind-Spuren offenbaren einen API-Anfrage und einen teuren Render-Path.
- Du optimierst den Render-Path, schippst wieder und vergleichst die neue Spurform.
Besser als Argumentieren aus Bauchgefühl.
Für Teams, die breit über Webview- oder Hybrid-App-Monitoringmuster nachdenken, ist diese Schrift über Leistungsmessung in Capacitor-Projekten wertvoll, weil der operative Mindset ähnlich ist, obwohl die Stacks sich unterscheiden.
Hinzufügen von nützlichem Kontext zu Fehlern
Leistungsdaten werden nützlicher, wenn Ereignisse Geschäfts-Kontext tragen. Nicht nur Schönheitsfehler. Nur genug, um zu beantworten, wer betroffen war, auf welcher Seite sie waren und was vor dem Scheitern passierte.
Benutze diese Werkzeuge absichtlich:
- Benutzerkontext mit
Sentry.setUser()damit Support-Berichte an einen betroffenen Account korrelieren kann, ohne durch Vermutungen zu graben. - Krumen zum Beispiel für Tasten wie Absenden, Öffnen eines Modals oder Starten eines Synchronisierungsprozesses.
- Benutzerdefinierte Tags zum Beispiel für die Dimensionen wie Planart, Status von Featureflags oder API Region.
- Fehlertypen mit zusätzlichen Kontext bei der Fehlerrückgabe oder der Oberflächenpräsentation von kontrollierten Fehlern.
Beispiel:
Sentry.setUser({
id: user.id,
email: user.email,
});
Sentry.addBreadcrumb({
category: 'navigation',
message: 'Opened dashboard screen',
level: 'info',
});
try {
await loadDashboard();
} catch (error) {
Sentry.captureException(error, {
tags: { screen: 'dashboard' },
extra: { widget: 'balance-summary' },
});
}
Ein Brotkrumenpfad kann oft den Unterschied zwischen „Benutzer sagt, dass das App gefroren ist“ und „Die App ist nach dem Öffnen des Dashboards, dem Starten des Synchronisierens und dem erneuten Versuch eines veralteten Anforderung gescheitert“ ausmachen.
Bei Fehlern in der benutzerdefinierten Instrumentierung geht es meistens schief, weil sie zu laut sind. Fassen Sie nicht jeden Tastendruck für immer auf. Fassen Sie Grenzen, Zustandsübergänge und wichtige Operationen, wenn Sie debuggen. Genug Kontext, um das Ereignis zu erklären. Nicht genug, um es zu ertränken.
Überprüfen und Fehlerbehebung Ihrer Integration
Sie sollten Sentry vor dem Versand, nach Änderungen in der Buildpipeline und nach SDK-Upgrades überprüfen. „Es funktionierte Monate her“ ist kein bedeutender Test.
Die sauberste Methode ist es, kontrollierte Fehlerrückgaben für beide JavaScript- und native-Pfade auszulösen und dann zu überprüfen, wie sie in Sentry landen.

Sichere Auslösung von Testereignissen
For einen JavaScript-Fehler, fügen Sie einen temporären Button in einer nicht produktiven Anzeige ein:
<Button
title="Trigger JS Error"
onPress={() => {
throw new Error('Test JavaScript Sentry error');
}}
/>
Fangen Sie einen erfassten Ausnahmefall ein, der das App nicht abstürzen wird:
<Button
title="Capture Exception"
onPress={() => {
Sentry.captureException(new Error('Handled Sentry test error'));
}}
/>
Native-Crash-Tests sollten sorgfältig und nur in der Entwicklung oder einem kontrollierten QA-Build durchgeführt werden. Die genauen Hilfsfunktionen, die verfügbar sind, können je nach SDK-Version und Plattform-Verkabelung variieren, daher bevorzuge ich die Verwendung der SDK-dokumentierten native Crash-Test-Utility, wenn sie vorhanden ist, anstatt eigene Crash-Pfade zu erfinden.
Was zu überprüfen ist in der Sentry-UI
Wenn das Ereignis erscheint, überprüfen Sie mehr als den Titel.
Überprüfen Sie diese Felder:
- Plattform und MechanismusDies hilft, JavaScript-Ausnahmen von native Crashes zu unterscheiden.
- Release und distWenn sie leer oder falsch sind, werden Source Maps und Symbolikation aus dem Gleichgewicht geraten.
- Stack FramesLesbare Quellortungen sollten für korrekt hochgeladene JavaScript-Maps erscheinen.
- Brotkrumen und Tags. Bestätigen Sie, dass Ihr benutzerdefinierter Kontext eingetroffen ist.
- Umgebung. Stellen Sie sicher, dass Entwicklungs- und Produktionsereignisse nicht in einem einzigen Stream gemischt werden.
Wenn ein natives Ereignis eintritt, aber eine schlechte Symbolisierung hat, ändern Sie nicht weiterhin die Anwendung code. Das ist meist ein Problem mit einem Build-Artifact.
Häufige Probleme bei Sentry React Native
| Symptom | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| JavaScript-Fehler treten auf, aber Stapelspuren sind minimiert | Quellkarten wurden nicht für die entsprechende Version hochgeladen | Überprüfen Sie, ob die CI nach dem Bundeln Karten hochlädt und dass release entspricht genau der hochgeladenen Version Sentry.init() Native Crashs erscheinen nicht |
| Native __CAPGO_KEEP_0__-Hooks fehlen oder wurden zu spät initialisiert | Native SDK hooks are missing or not initialized early enough | IOS-Native-Frames sind nicht lesbar |
| Die Debugsymbolen wurden nicht hochgeladen oder nicht mit der richtigen Build verknüpft | Bestätigen Sie, dass Archiv-Builds Symbole erzeugen und dass Upload-Schritte während der CI- oder Xcode-Archiv-Fluss ausgeführt werden | Die Android-Release-Verhalten unterscheidet sich von dem Debug-Verhalten |
| Kleinziehen oder Verschlüsselung ändert den Pfad des Release-Artifacts | Überprüfen Sie die Release-Gradle-Aufgaben und stellen Sie sicher, dass Sentry-Verarbeitung für Release-Varianten ausgeführt wird | Events erscheinen unter der falschen Umgebung |
| Events erscheinen unter der falschen Umgebung | Zeitpunkt der Konfiguration wird zwischen Umgebungen ausgetauscht | Separieren Sie DSN, Umgebung, Release und Werte pro Ziel der Buildanwendung |
| Krumen oder Benutzerdaten fehlen | Der Kontext wird zu spät gesetzt oder während der Änderungen des Anwendungsstatus gelöscht | Setzen Sie Benutzer und Tags sofort nach der Authentifizierungsstatusauflösung und fügen Sie Krumen um kritische Flüsse hinzu |
Ein letzter Gewohnheit, der sich auszahlt, ist das Halten eines kleinen „Überwachungs-Smoke-Test“-Checklisten im Releaseprozess. Auslösen Sie ein JS-Ereignis in der Staging-Umgebung, bestätigen Sie die Releasewerte und überprüfen Sie die Quellorte, bevor Sie eine Buildversion promoten.
Integrieren Sie mit Live-Update-Workflows wie Capgo
Live-Updates ändern das Release-Modell. Das Binärdatei im Store bleibt gleich, während die JavaScript-Bundle unterhalb davon sich ändert. Wenn Sentry immer noch nur an die ursprüngliche Anwendungsversion denkt, werden die Stapelspuren schnell irreführend.
Die Lösung besteht darin, dass Die Identität der Release folgt dem lebenden Bundlenicht nur dem nativen Binärdatei.
Die Release-Identifikatoren passen sich an die lebenden Bundles an
For live update Workflows, behandeln Sie release und dist als Laufzeitidentifikatoren, die der gelieferten JavaScript-Paket verknüpft sind. Die native App-Version ist immer noch wichtig, aber sie reicht nicht aus, wenn sich die Bundel unabhängig voneinander ändern können.
Eine praktische Muster sieht so aus:
- Verwenden Sie die native App-Version als Teil des Basis-Release-Namens.
- Fügen Sie die Live-Update-Version oder das Paket-Identifikator hinzu.
- Verwenden Sie
distfür kanal- oder build-spezifische Differenzierung, wenn das zu Ihrem Modell passt. - Laden Sie Quellkarten für jeden Live-Bundle unter genau diesem Release-Identifikator hoch.
Beispiel: Wenn Ihre App bei der Startzeit Update-Metadaten lädt, initialisieren Sie Sentry mit Werten, die aus der derzeit aktiven Bundle abgeleitet werden, nicht nur aus der statischen Build-Konfiguration.
Sentry.init({
dsn: Config.SENTRY_DSN,
release: activeBundle.releaseName,
dist: activeBundle.channel,
});
Dadurch wird, wenn ein Benutzer auf einem hotfixierten Bundle einen Fehler trifft, Sentry die Frames gegen die Quellkarte für diesen Hotfix auflöst, anstatt gegen die ältere Store-Bundle.
Dies ist bei jedem OTA-Workflow wichtig. Wenn Sie eine gute Einführung in die beweglichen Teile hinter diesem Liefermodell wünschen, ist diese Erklärung von wie Capacitor-Updates funktionieren ist eine zuverlässige Referenz.
Hier ist der Art von Betriebsbild, das Teams erreichen möchten, wenn sie Update-Metadaten mit Release-Tracking kombinieren:

Der Hauptfehler, den man vermeiden sollte, ist die Wiederholung eines statischen Release-Strings für jeden post-Store-Update. Wenn mehrere Pakete denselben Sentry-Release teilen, wird das Debuggen wieder zu einem Rätselkäfer.
Wenn Ihr Team außerhalb der App-Store-Bewertungszyklen Reparaturen ausfährt, Capgo ist wertvoll. Es gibt Capacitor-Teams eine strukturierte Möglichkeit, live Updates bereitzustellen, Zielkanäle anzusteuern, Rollouts zu kontrollieren und sich schnell von schlechten Releases erholen. Paaren Sie das mit disziplinierten Sentry-Release-Namen und Quellcode-Uploads, und Sie erhalten ein Workflow, bei dem Fehler immer noch auf die genauen code-Versionen hinweisen, die die Benutzer laufen.