Freigeben über


React Native SDK–Problembehandlung

Von Bedeutung

Visual Studio App Center wurde am 31. März 2025 eingestellt, mit Ausnahme der Analyse- und Diagnosefeatures, die bis zum 30. Juni 2026 weiterhin unterstützt werden. Weitere Informationen

Die Datei "React/RCTDefines.h" wurde nicht gefunden.

Dieser Fehler tritt auf, wenn RN-Kernbibliotheken nicht korrekt referenziert werden, was durch verschiedene Arten von Integrations- oder Verknüpfungsproblemen verursacht werden kann. Dies geschieht häufig, wenn Ihre Abhängigkeiten mithilfe des relativen Pfads in einer Poddatei verknüpft sind, anstatt statisch in einem Projekt.

Unser Verknüpfungsskript unterstützt nur die Standardmethode zum Verknüpfen von Pods, um das Problem zu beheben:

  1. Ersetzen Sie die Abhängigkeiten in Ihrer Datei Podfile durch relative Verknüpfungspfade:

    Vorher:

    pod 'AppCenter/Analytics', '~> 1.14.0'
    pod 'AppCenter/Crashes', '~> 1.14.0'
    pod 'AppCenterReactNativeShared', '~> 1.13.0'
    

    Danach:

    pod 'appcenter', path: '../node_modules/appcenter/ios'
    pod 'appcenter-analytics', path: '../node_modules/appcenter-analytics/ios'
    pod 'appcenter-crashes', path: '../node_modules/appcenter-crashes/ios'
    
  2. Führen Sie pod install aus dem Ordner iOS aus.

  3. Ersetzen Sie die Importe innerhalb von AppDelegate.m.

    Vorher:

    #import <AppCenterReactNative/AppCenterReactNative.h>
    #import <AppCenterReactNativeAnalytics/AppCenterReactNativeAnalytics.h>
    #import <AppCenterReactNativeCrashes/AppCenterReactNativeCrashes.h>
    

    Danach:

    #import "AppCenterReactNative.h"
    #import "AppCenterReactNativeAnalytics.h"
    #import "AppCenterReactNativeCrashes.h"
    
  4. Entfernen Sie AppCenter-Abhängigkeiten aus dem Projekt (klicken Sie mit der rechten Maustaste auf die Abhängigkeit > und wählen Sie Abhängigkeit entfernen).

    • Wählen Sie YOUR_APP< -Bibliotheken aus, und entfernen Sie> die nächsten Dateien:>
      • AppCenterReactNative.xcodeproj
      • AppCenterReactNativeAnalytics.xcodeproj
      • AppCenterReactNativeCrashes.xcodeproj
    • Öffnen Sie Ihre Projekteinstellungen, und entfernen Sie im Abschnitt "Verknüpfte Frameworks und Bibliotheken" unter der Registerkarte "Allgemein" neue Elemente, die auf Zielbibliotheken verweisen, die im vorherigen Schritt entfernt wurden:
      • libAppCenterReactNative.a
      • libAppCenterReactNativeAnalytics.a
      • libAppCenterReactNativeCrashes.a
    • Ändern Sie Header-Suchpfade, um Kopfzeilen aus den AppCenter React Native-Plug-In-Projekten zu entfernen. Öffnen Sie Ihre Projekteinstellungen, und entfernen Sie unter der Registerkarte " Buildeinstellungen " im Abschnitt " Headersuchpfade " die folgenden Speicherorte für Headerdateien:
      • $(SRCROOT)/../node_modules/appcenter/ios/AppCenterReactNative
      • $(SRCROOT)/../node_modules/appcenter-analytics/ios/AppCenterReactNativeAnalytics
      • $(SRCROOT)/../node_modules/appcenter-crashes/ios/AppCenterReactNativeCrashes

Wenn Sie yarn auf Ihrem Computer installiert haben, wird react-native init {myapp} Ihre App initialisieren und Abhängigkeiten mit yarn statt npm installieren. Wenn beim Ausführen von react-native link die folgende Fehlermeldung angezeigt wird, besteht die Gefahr, dass App Center-Abhängigkeiten von npm install {package} anstelle von yarn add {package} installiert werden, sodass während der Installation npm und yarn vermischt werden.

Command `link` unrecognized. Make sure that you have run `npm install` and that you are inside a react-native project.

Führen Sie in diesem Fall npm install aus und versuchen Sie es react-native link erneut.

Buildfehler: Datei 'AppCenterCrashes/MSACErrorReport.h' nicht gefunden

React-Native 0,60 und höher

Die wahrscheinliche Ursache ist der Konflikt zwischen hauptpaketversionen aufgrund einer fehlerhaften Änderung in unserem Apple SDK.

  1. Stellen Sie sicher, dass alle appcenter Pakete dieselbe Hauptversion verwenden. Aktualisieren Sie sie mit npm install oder yarn bei Bedarf.

  2. Wechseln Sie zu "ios "-Ordner Ihres Projekts, und entfernen Sie "Podfile.lock " und den Ordner "Pods ".

  3. Führen Sie die Ausführung pod install --repo-update in Ihrem Ios-Ordner aus.

  4. Stellen Sie sicher, dass Podfile.lock Abhängigkeiten derselben Hauptversion enthält appcenter .

React Native niedriger als 0,60

Eine mögliche Ursache ist die Ausführung react-native link ohne dass CocoaPods installiert ist.

Um die Ursache zu bestätigen, führen Sie react-native link aus und überprüfen Sie in den Protokollen, ob die folgende Zeile enthalten ist:

Could not configure AppCenter for iOS. Error Reason - spawn pod ENOENT

Diese Zeile befindet sich im folgenden Abschnitt der Protokolle:

Added code to initialize iOS AppCenter SDK in ios/TestApp/AppDelegate.m
Installing Cocoapods dependencies...
Could not configure AppCenter for iOS. Error Reason - spawn pod ENOENT
rnpm-install info Platform 'ios' module appcenter-analytics is already linked
rnpm-install info Platform 'android' module appcenter-analytics is already linked

Wenn dieser Fehler angezeigt wird, stellen Sie sicher, dass der pod Befehl von CocoaPods in der PATH-Umgebungsvariable Ihres Systems verfügbar ist.

Nachdem Sie Ihre CocoaPods-Installation behoben haben, führen Sie pod install im iOS-Ordner aus, um Ihr Projekt zu reparieren.

Wenn die folgende CocoaPods-Fehlermeldung während react-native link angezeigt wird, besteht die Wahrscheinlichkeit, dass Ihr lokaler Klon (~/.cocoapods/repos auf Ihrem Computer) des CocoaPods Spec Repo nicht auf dem neuesten Stand ist.

Analyzing dependencies [!] Unable to find a specification for AppCenterReactNativeShared (~> {version})

Führen Sie den Vorgang pod repo update aus, um das Spezifikations-Repository zu aktualisieren, und versuchen Sie es react-native link erneut. Weitere Informationen zu CocoaPods-Befehlen finden Sie in der Befehlszeilenreferenz für CocoaPods.

So aktualisieren Sie Die App mithilfe des App Center SDK von React Native 0.59 auf 0.60

Verwenden Sie zum Aktualisieren von React Native auf Version 0.60.0 den folgenden Befehl:

react-native upgrade 0.60.0

Hinweis

Wenn während eines Upgrades dieser Fehler angezeigt Command failed: git status -s fatal: not a git repository (or any of the parent directories): .gitwird, führen Sie die folgenden Schritte aus:

git init
git add .
git commit -m "Upgrade react-native"

Nachdem Sie das Upgrade abgeschlossen haben, können Sie das .git Verzeichnis entfernen.

Aktualisieren von React Native iOS

  1. Öffnen Sie Podfile , und ersetzen Sie App Center-Abhängigkeiten in der folgenden Zeile:

    use_native_modules!
    
  2. Führen Sie den folgenden Befehl aus:

    pod repo update
    

So aktualisieren Sie React Native SDK auf die neueste Version

Wenn Sie unser SDK bereits in Ihre Anwendung integriert haben und ein Upgrade auf eine neuere Version des SDK durchführen möchten, führen Sie die folgenden Schritte aus, um ein Upgrade durchzuführen:

  1. npm uninstall --save appcenter appcenter-analytics appcenter-crashes um alte App Center-Pakete zu deinstallieren.

  2. npm install --save-exact appcenter appcenter-analytics appcenter-crashes um die neuesten App Center-Pakete zu installieren.

  3. pod repo update um sicherzustellen, dass Ihr CocoaPods SpecPo auf dem neuesten Stand ist.

  4. react-native link.

Tipp

Wenn die Fehlermeldung ähnlich der folgenden CocoaPods-Fehlermeldung angezeigt react-native linkwird, löschen Sie die automatisch generierte Podfile.lock in Ihrem Ios-Ordner , und führen Sie es erneut aus react-native link .

[!] Unable to satisfy the following requirements:

- `AppCenter/Core (= 1.0.0)` required by `Podfile.lock`
- `AppCenter/Core (= 1.0.0)` required by `AppCenter/Crashes (1.0.0)`
- `AppCenter/Core (= 1.0.0)` required by `AppCenter/Analytics (1.0.0)`
- `AppCenter/Core (= 1.0.1)` required by `AppCenterReactNativeShared (1.0.1)`

Migration von jCenter nach Maven Central

Aufgrund der Beendigung der jCenter-Unterstützung wurden alle unsere Assemblys in das Maven Central Repository verschoben. Um App Center zu verwenden, müssen Sie mavenCentral() wie unten gezeigt zu dem Repository in Ihrer Gradle-Datei hinzufügen.

repositories {
   google()
   mavenCentral()
}

Den Geheimwert des App Centers schützen

Dies app_secret ist ein Bezeichner Ihrer App, es ist erforderlich, zu wissen, für welche App der Datenverkehr gilt, und es kann nicht zum Abrufen oder Bearbeiten vorhandener Daten verwendet werden. Wenn Ihre app_secret Daten verfügbar gemacht werden, besteht das größte Risiko darin, schlechte Daten an Ihre App zu senden, hat aber keine Auswirkungen auf die Sicherheit der Daten.

Um vertrauliche Daten abzurufen, müssen Sie ein App-/ Benutzertoken bereitstellen, das auf der Clientseite generiert wird. Es gibt keine Möglichkeit, Daten auf der Clientseite vollständig sicher zu machen.

Sie können die Sicherheit Ihrer App verbessern, indem Sie eine Umgebungsvariable verwenden, um den geheimen App-Schlüssel in Ihren Code einzufügen. Auf diese Weise ist der geheime Schlüssel in Ihrem Code nicht sichtbar.