Dela via


React Native SDK-felsökning

Viktigt!

Visual Studio App Center drogs tillbaka den 31 mars 2025, förutom analys- och diagnostikfunktionerna, som fortsätter att stödjas fram till den 30 juni 2026. Läs mer.

Filen React/RCTDefines.h hittades inte

Det här felet visas när RN-kärnbibliotek inte refereras korrekt, vilket kan orsakas av olika typer av integrerings- eller länkningsproblem. Det händer ofta när du har dina beroenden länkade med hjälp av relativ sökväg i en podfil i stället för statiskt i ett projekt.

Vårt länkningsskript stöder endast standardsättet för att länka poddar, så för att lösa problemet:

  1. Ersätt beroendena i din Podfile med relativa länksökvägar:

    Före:

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

    Efter:

    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. Kör pod install från iOS mappen.

  3. I AppDelegate.m ersätter du importer:

    Före:

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

    Efter:

    #import "AppCenterReactNative.h"
    #import "AppCenterReactNativeAnalytics.h"
    #import "AppCenterReactNativeCrashes.h"
    
  4. Ta bort AppCenter-beroenden från projektet (högerklicka på beroendet > Ta bort beroende).

    • Välj <YOUR_APP> ->Libraries och ta bort nästa filer:
      • AppCenterReactNative.xcodeproj
      • AppCenterReactNativeAnalytics.xcodeproj
      • AppCenterReactNativeCrashes.xcodeproj
    • Öppna projektinställningarna och under fliken Allmänt i avsnittet Länkade ramverk och bibliotek tar du bort nya objekt som refererar till målbibliotek som tagits bort i föregående steg:
      • libAppCenterReactNative.a
      • libAppCenterReactNativeAnalytics.a
      • libAppCenterReactNativeCrashes.a
    • Ändra Header Search Paths för att ta bort headers från AppCenter React Native Plugins-projekt. Öppna projektinställningarna och under fliken Bygginställningar i avsnittet Sökvägar för sidhuvud tar du bort följande platser för huvudfiler:
      • $(SRCROOT)/../node_modules/appcenter/ios/AppCenterReactNative
      • $(SRCROOT)/../node_modules/appcenter-analytics/ios/AppCenterReactNativeAnalytics
      • $(SRCROOT)/../node_modules/appcenter-crashes/ios/AppCenterReactNativeCrashes

Om du har yarn installerat på din dator kommer react-native init {myapp} att initiera din app och installera beroenden med hjälp av yarn istället för npm. Om du ser följande felmeddelande när du kör react-native linkär sannolikheten stor att App Center-beroenden installeras från npm install {package} i stället för yarn add {package} så att npm och yarn blandas under installationen.

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

I det här fallet, kör npm install och försök react-native link igen.

Kompilationsfel såsom att filen 'AppCenterCrashes/MSACErrorReport.h' inte hittas

React-Native 0,60 och högre

Den troliga orsaken är konflikten mellan huvudsakliga paketversioner på grund av en störande ändring i vår Apple SDK.

  1. Kontrollera att alla appcenter paket använder samma huvudversion. Uppdatera dem med npm install eller yarn om det behövs.

  2. Gå till ios-mappen för projektet och ta bort Podfile.lock och mappen Poddar .

  3. Kör pod install --repo-update i din ios-mapp.

  4. Kontrollera att Podfile.lock innehåller appcenter beroenden av samma huvudversion.

React Native lägre än 0,60

En möjlig orsak är när du kör react-native link utan CocoaPods installerat.

Kontrollera orsaken genom att köra react-native link, och i loggarna söker du efter följande rad:

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

Den här raden finns i följande avsnitt av loggarna:

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

Om du ser det felet kontrollerar du att pod kommandot från CocoaPods är tillgängligt i systemets PATH-miljövariabel .

När du har åtgärdat installationen av CocoaPods kör du pod install i ios-mappen för att åtgärda projektet.

Om du ser följande CocoaPods-felmeddelande under react-native linkär chansen stor att din lokala klon (~/.cocoapods/repos på datorn) av CocoaPods spec-lagringsplatsen inte är uppdaterad.

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

Kör pod repo update för att uppdatera spec-lagringsplatsen och försök react-native link igen. Mer information om CocoaPods-kommandon finns i Referens för CocoaPods-kommandoraden.

Uppgradera appen med App Center SDK från React Native 0.59 till 0.60

Om du vill uppgradera React Native till version 0.60.0 använder du följande kommando:

react-native upgrade 0.60.0

Anmärkning

Om du får det här felet Command failed: git status -s fatal: not a git repository (or any of the parent directories): .gitunder en uppgradering utför du följande steg:

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

När du har uppgraderat kan du ta bort .git katalogen.

Uppdatera React Native iOS

  1. Öppna Podfile och ersätt App Center-beroenden på följande rad:

    use_native_modules!
    
  2. Kör följande kommando:

    pod repo update
    

Så här uppdaterar du React Native SDK till den senaste versionen

Om du redan har integrerat vår SDK i ditt program och vill uppgradera till en nyare version av SDK följer du följande steg för att uppgradera:

  1. npm uninstall --save appcenter appcenter-analytics appcenter-crashes för att avinstallera gamla App Center-paket.

  2. npm install --save-exact appcenter appcenter-analytics appcenter-crashes för att installera de senaste App Center-paketen.

  3. pod repo update för att se till att ditt CocoaPods specifikationsarkiv är uppdaterat.

  4. react-native link.

Tips/Råd

Om du ser ett felmeddelande som liknar följande CocoaPods-felmeddelande under react-native linktar du bort den automatiskt genererade Podfile.lock i ios-mappen och kör react-native link igen.

[!] 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)`

Migrering från jCenter till Maven Central

På grund av att jCenter-supporten avslutats flyttades alla våra sammansättningar till Maven Central-lagringsplatsen. Om du vill använda App Center måste du lägga mavenCentral() till lagringsplatsen i Gradle-filen som nedan:

repositories {
   google()
   mavenCentral()
}

Skydda App Center-hemlighetsvärdet

app_secret Är en identifierare för din app, det är nödvändigt att veta vilken app trafiken gäller för och det kan inte användas för att hämta eller redigera befintliga data. Om din app_secret exponeras är den största risken att skicka felaktiga data till din app, men det påverkar inte datasäkerheten.

Om du vill hämta känsliga data måste du ange en app-/ användartoken som genereras på klientsidan. Det går inte att göra data på klientsidan helt säkra.

Du kan förbättra din apps säkerhet genom att använda en miljövariabel för att mata in apphemligheten i koden. På så sätt syns inte hemligheten i koden.