Sdílet prostřednictvím


Řešení potíží s nativní sadou SDK React

Důležité

Visual Studio App Center bylo vyřazeno 31. března 2025 s výjimkou funkcí Analýzy a diagnostiky, které se budou dál podporovat až do 30. června 2026. Další informace.

Soubor React/RCTDefines.h nebyl nalezen.

Tato chyba se zobrazí, když se na základní knihovny RN neodkazují 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, a ne staticky v projektu.

Náš skript propojování podporuje pouze standardní způsob propojení podů, takže problém vyřešíte takto:

  1. Nahraďte závislosti ve vašem Podfile relativním propojení cest:

    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. Uvnitř 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 myši na závislost a zvolte "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ů pluginů AppCenter pro 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 máte na svém počítači nainstalované yarn, react-native init {myapp} inicializuje vaši aplikaci a nainstaluje závislosti pomocí yarn namísto npm. Pokud se při spuštění react-native link zobrazí následující chybová zpráva, je pravděpodobné, že se závislosti App Center instalují z npm install {package} namísto yarn add {package}, takže během instalace dojde k jejich smíchání npm a yarn.

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

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

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

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. Aktualizujte je pomocí npm install nebo yarn v případě potřeby.

  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ých CocoaPods.

Pokud chcete potvrdit 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 příkaz pod z CocoaPods je dostupný v proměnné prostředí PATH vašeho systému.

Po opravě instalace CocoaPods spusťte pod install ve složce ios k opravě projektu.

Pokud během react-native link uvidíte následující chybovou zprávu CocoaPods, je velká šance, že váš místní klon (~/.cocoapods/repos na vašem počítači) úložiště spec repo CocoaPods není aktualizovaný.

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

Spusťte pod repo update pro aktualizaci úložiště specifikace a zkuste react-native link znovu. Další informace o příkazech CocoaPods najdete v referenčních informacích k příkazovému řádku CocoaPods.

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

Pro upgrade 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ář .git odebrat.

Aktualizovat React Native pro 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
    

Postup 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 pomocí následujících kroků:

  1. npm uninstall --save appcenter appcenter-analytics appcenter-crashes pro odinstalaci starých balíčků App Center.

  2. npm install --save-exact appcenter appcenter-analytics appcenter-crashes k nainstalování nejnovějších balíčků App Center.

  3. pod repo update abyste měli jistotu, že je vaše úložiště specifikace CocoaPods aktuální.

  4. react-native link.

Návod

Pokud se zobrazí chybová zpráva podobná následující chybové zprávě CocoaPods během react-native link, odstraňte automaticky vygenerovaný Podfile.lock ve složce ios a spusťte react-native link 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

Kvůli ukončení podpory jCenter byly všechna naše sestavení přesunuta do centrálního úložiště Maven. Pokud chcete použít App Center, musíte ho přidat mavenCentral() do úložiště v souboru Gradle, jak je znázorněno níže:

repositories {
   google()
   mavenCentral()
}

Chraňte tajnou hodnotu App Center

Jedná app_secret se o identifikátor vaší aplikace, je potřeba vědět, na kterou aplikaci se provoz vztahuje, a nedá se použít k načtení nebo úpravě existujících dat. Pokud je vaše app_secret vystaveno, největším rizikem je posílání špatných dat do vaší aplikace, ale nebude to mít vliv na bezpečnost dat.

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

Zabezpečení své aplikace můžete zlepšit použitím proměnné prostředí pro vložení tajemství aplikace do kódu. Tajný kód tak není ve vašem kódu viditelný.