Řešení potíží se sadou React Native SDK

Důležité

31. března 2025 je naplánované vyřazení z provozu. I když můžete dál používat Visual Studio App Center, dokud ho úplně vyřadíte, existuje několik doporučených alternativ, na které můžete zvážit migraci.

Přečtěte si další informace o časových osách a alternativách podpory.

Soubor React/RCTDefines.h nebyl nalezen.

Tato chyba se zobrazí, když se na základní knihovny RN neodkazuje správně, což může být způsobeno různými druhy problémů s integrací nebo propojením. Často k tomu dochází, když máte závislosti propojené pomocí relativní cesty v podsouboru, nikoli staticky v projektu.

Náš propojovací skript podporuje pouze standardní způsob propojení podů, takže pokud chcete tento problém vyřešit:

  1. Nahraďte závislosti ve vašem Podfile souboru relativními cestami propojení:

    Před:

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

    Po:

    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. Spusťte pod install ze iOS složky.

  3. V souboru AppDelegate.m nahraďte importy:

    Před:

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

    Po:

    #import "AppCenterReactNative.h"
    #import "AppCenterReactNativeAnalytics.h"
    #import "AppCenterReactNativeCrashes.h"
    
  4. Odeberte z projektu závislosti AppCenter (klikněte pravým tlačítkem na závislost > Odebrat závislost).

    • Vyberte <YOUR_APP> ->Libraries a odeberte další soubory:
      • AppCenterReactNative.xcodeproj
      • AppCenterReactNativeAnalytics.xcodeproj
      • AppCenterReactNativeCrashes.xcodeproj
    • Otevřete nastavení projektu a na kartě Obecné v části Propojené architektury a knihovny odeberte nové položky odkazující na cílové knihovny odebrané v předchozím kroku:
      • libAppCenterReactNative.a
      • libAppCenterReactNativeAnalytics.a
      • libAppCenterReactNativeCrashes.a
    • Upravte cesty hledání hlaviček a odeberte záhlaví z projektů modulů plug-in appcenter React Native. Otevřete nastavení projektu a na kartě Nastavení sestavení v části Cesty hledání hlaviček odeberte následující umístění pro soubory hlaviček:
      • $(SRCROOT)/../node_modules/appcenter/ios/AppCenterReactNative
      • $(SRCROOT)/../node_modules/appcenter-analytics/ios/AppCenterReactNativeAnalytics
      • $(SRCROOT)/../node_modules/appcenter-crashes/ios/AppCenterReactNativeCrashes

Pokud jste na svém počítači nainstalovali yarn , react-native init {myapp} inicializuje aplikaci a nainstaluje závislosti místo yarnnpm. Pokud se při spuštění react-native linkzobrazí následující chybová zpráva , je pravděpodobné, že se závislosti App Center instalují z npm install {package} , yarn add {package} a ne tak, aby npmyarn se během instalace promíchaly.

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

V takovém případě spusťte npm install příkaz a zkuste to react-native link znovu.

Chyba sestavení, jako je soubor AppCenterCrashes/MSACErrorReport.h, nebyl nalezen.

React-Native 0,60 a vyšší

Pravděpodobnou příčinou je konflikt mezi hlavními verzemi balíčků kvůli zásadní změně v naší sadě Apple SDK.

  1. Ujistěte se, že všechny appcenter balíčky používají stejnou hlavní verzi. V případě potřeby je aktualizujte pomocí npm install nebo yarn .

  2. Přejděte do složky projektu ios a odeberte podfile.lock a složku Pods .

  3. Spusťte pod install --repo-update ve složce ios .

  4. Ověřte, že podfile.lock obsahuje appcenter závislosti stejné hlavní verze.

React Native nižší než 0,60

Jednou z možných příčin je spuštění react-native link bez nainstalovaného CocoaPods .

Pokud chcete ověřit příčinu, spusťte react-native linka v protokolech zkontrolujte následující řádek:

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

Tento řádek se nachází v následující části protokolů:

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

Pokud se zobrazí tato chyba, ujistěte se, že pod je příkaz z CocoaPods dostupný v proměnné prostředí PATH systému.

Po opravě instalace CocoaPods spusťte pod install ve složce ios a opravte projekt.

Pokud se během react-native linkprocesu zobrazí následující chybová zpráva CocoaPods, je pravděpodobné, že váš místní klon (~/.cocoapods/repos na vašem počítači) úložiště CocoaPods spec není aktuální.

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

Spuštěním příkazu pod repo update aktualizujte úložiště specifikace a zkuste to react-native link znovu. Další informace o příkazech CocoaPods najdete v tématu Referenční informace k příkazovému řádku CocoaPods.

Postup upgradu aplikace pomocí sady App Center SDK z React Native 0.59 na verzi 0.60

Pokud chcete upgradovat React Native na verzi 0.60.0, použijte následující příkaz:

react-native upgrade 0.60.0

Poznámka

Pokud se během upgradu zobrazí tato chyba Command failed: git status -s fatal: not a git repository (or any of the parent directories): .git, proveďte další kroky:

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

Po dokončení upgradu můžete adresář odebrat .git .

Aktualizace React Native iOS

  1. Otevřete podfile a nahraďte závislosti App Center na následujícím řádku:

    use_native_modules!
    
  2. Spusťte následující příkaz:

    pod repo update
    

Aktualizace sady React Native SDK na nejnovější verzi

Pokud jste už naši sadu SDK integrovali do své aplikace a chcete upgradovat na novější verzi sady SDK, proveďte upgrade následujícím postupem:

  1. npm uninstall --save appcenter appcenter-analytics appcenter-crashes a odinstalujte staré balíčky App Center.

  2. npm install --save-exact appcenter appcenter-analytics appcenter-crashes a nainstalujte nejnovější balíčky App Center.

  3. pod repo update a ujistěte se, že je vaše úložiště specifikace CocoaPods aktuální.

  4. react-native link.

Tip

Pokud se během react-native linkzobrazení zobrazí chybová zpráva podobná následující chybové zprávě CocoaPods , odstraňte automaticky vygenerovaný podfile.lock ve složce ios a spusťte react-native link příkaz znovu.

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

Migrace z jCenter na Maven Central

Z důvodu ukončení podpory jCenter se všechna naše sestavení přesunula do centrálního úložiště Mavenu. Pokud chcete používat App Center, musíte mavenCentral() přidat do úložiště v souboru Gradle, jak je uvedeno níže:

repositories {
   google()
   mavenCentral()
}

Ochrana hodnoty tajného klíče App Center

Jedná se app_secret o identifikátor vaší aplikace, je potřeba vědět, na kterou aplikaci se provoz vztahuje, a nelze ho použít k načtení nebo úpravám existujících dat. Pokud je váš app_secret problém vystavený, největší riziko spočívá v odesílání chybných dat do aplikace, ale nebude to mít vliv na zabezpečení dat.

Pokud chcete načíst citlivá data, musíte zadat token aplikace nebo uživatele, který se vygeneruje na straně klienta. Neexistuje žádný způsob, jak zajistit úplné zabezpečení dat na straně klienta.

Zabezpečení aplikace můžete zlepšit pomocí proměnné prostředí pro vložení tajného kódu aplikace do kódu. Tajný kód tak nebude v kódu viditelný.