Résolution des problèmes du Kit de développement logiciel (SDK) React Native
Important
Visual Studio App Center doit être mis hors service le 31 mars 2025. Bien que vous puissiez continuer à utiliser Visual Studio App Center jusqu’à ce qu’il soit entièrement mis hors service, il existe plusieurs alternatives recommandées vers lesquelles vous pouvez envisager de migrer.
En savoir plus sur les chronologies et les alternatives de support.
Fichier 'React/RCTDefines.h' introuvable
Cette erreur apparaît lorsque les bibliothèques principales RN ne sont pas référencées correctement, ce qui peut être dû à différents types de problèmes d’intégration ou de liaison. Cela se produit souvent lorsque vos dépendances sont liées à l’aide d’un chemin relatif dans un podfile, plutôt que de manière statique dans un projet.
Notre script de liaison prend uniquement en charge la méthode standard de liaison des pods, afin de résoudre le problème :
Remplacez les dépendances dans votre
Podfile
par des chemins de liaison relatifs :Avant :
pod 'AppCenter/Analytics', '~> 1.14.0' pod 'AppCenter/Crashes', '~> 1.14.0' pod 'AppCenterReactNativeShared', '~> 1.13.0'
Après :
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'
Exécutez
pod install
à partir duiOS
dossier.Dans AppDelegate.m, remplacez les importations :
Avant :
#import <AppCenterReactNative/AppCenterReactNative.h> #import <AppCenterReactNativeAnalytics/AppCenterReactNativeAnalytics.h> #import <AppCenterReactNativeCrashes/AppCenterReactNativeCrashes.h>
Après :
#import "AppCenterReactNative.h" #import "AppCenterReactNativeAnalytics.h" #import "AppCenterReactNativeCrashes.h"
Supprimez les dépendances AppCenter du projet (cliquez avec le bouton droit sur la dépendance > Supprimer la dépendance).
- Sélectionnez <YOUR_APP> ->Bibliothèques et supprimez les fichiers suivants :
AppCenterReactNative.xcodeproj
AppCenterReactNativeAnalytics.xcodeproj
AppCenterReactNativeCrashes.xcodeproj
- Ouvrez les paramètres de votre projet et, sous l’onglet Général de la section Infrastructures et bibliothèques liées , supprimez les nouveaux éléments référençant les bibliothèques cibles supprimées à l’étape précédente :
libAppCenterReactNative.a
libAppCenterReactNativeAnalytics.a
libAppCenterReactNativeCrashes.a
- Modifiez les chemins de recherche d’en-tête pour supprimer les en-têtes des projets de plug-ins AppCenter React Native. Ouvrez les paramètres de votre projet et sous l’onglet Paramètres de build de la section Chemins de recherche d’en-tête supprimez les emplacements suivants pour les fichiers d’en-tête :
$(SRCROOT)/../node_modules/appcenter/ios/AppCenterReactNative
$(SRCROOT)/../node_modules/appcenter-analytics/ios/AppCenterReactNativeAnalytics
$(SRCROOT)/../node_modules/appcenter-crashes/ios/AppCenterReactNativeCrashes
- Sélectionnez <YOUR_APP> ->Bibliothèques et supprimez les fichiers suivants :
React Native commande de lien non reconnue
Si vous avez yarn
installé sur votre ordinateur, react-native init {myapp}
initialisera votre application et installera les dépendances à l’aide yarn
de plutôt que de npm
. Si vous voyez le message d’erreur suivant lors de l’exécution react-native link
de , il est probable que yarn
npm
les dépendances App Center soient installées à partir de npm install {package}
au lieu de yarn add {package}
et soient mélangées pendant l’installation.
Command `link` unrecognized. Make sure that you have run `npm install` and that you are inside a react-native project.
Dans ce cas, exécutez npm install
et réessayez react-native link
.
Erreur de génération telle que le fichier « AppCenterCrashes/MSACErrorReport.h » introuvable
React-Native 0,60 et versions ultérieures
La cause probable est le conflit entre les principales versions de package en raison d’un changement cassant dans notre SDK Apple.
Assurez-vous que tous les
appcenter
packages utilisent la même version majeure. Mettez-les à jour avecnpm install
ouyarn
si nécessaire.Accédez au dossier ios de votre projet et supprimez Podfile.lock et le dossier Pods .
Exécutez
pod install --repo-update
dans votre dossier ios .Vérifiez que Podfile.lock contient
appcenter
des dépendances de la même version majeure.
React Native inférieur à 0,60
L’une des causes possibles est l’exécution react-native link
sans CocoaPods installé.
Pour confirmer la cause, exécutez react-native link
et dans les journaux, case activée pour la ligne suivante :
Could not configure AppCenter for iOS. Error Reason - spawn pod ENOENT
Cette ligne se trouve dans la section suivante des journaux :
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
Si vous voyez cette erreur, vérifiez que la pod
commande de CocoaPods est disponible dans la variable d’environnement PATH de votre système.
Une fois que vous avez résolu votre installation CocoaPods , exécutez pod install
dans le dossier ios pour corriger votre projet.
CocoaPods ne trouve pas de spécification pour AppCenterReactNativeShared pendant le lien react-native
Si vous voyez le message d’erreur CocoaPods suivant pendant react-native link
, il y a de fortes chances que votre clone local (~/.cocoapods/repos
sur votre ordinateur) du référentiel de spécification CocoaPods ne soit pas à jour.
Analyzing dependencies [!] Unable to find a specification for AppCenterReactNativeShared (~> {version})
Exécutez pod repo update
pour mettre à jour le référentiel de spécifications, puis réessayez react-native link
. Pour plus d’informations sur les commandes CocoaPods, consultez Informations de référence sur la ligne de commande CocoaPods.
Comment mettre à niveau une application à l’aide du Kit de développement logiciel (SDK) App Center de React Native 0,59 à 0,60
Pour mettre à niveau React Native vers la version 0.60.0, utilisez la commande suivante :
react-native upgrade 0.60.0
Notes
Si, pendant une mise à niveau, vous obtenez cette erreur Command failed: git status -s fatal: not a git repository (or any of the parent directories): .git
, effectuez les étapes suivantes :
git init
git add .
git commit -m "Upgrade react-native"
Une fois la mise à niveau terminée, vous pouvez supprimer le .git
répertoire.
Mettre à jour React Native iOS
Ouvrez Podfile et remplacez les dépendances App Center sur la ligne suivante :
use_native_modules!
Exécutez la commande suivante :
pod repo update
Comment mettre à jour React Native SDK vers la dernière version
Si vous avez déjà intégré notre KIT de développement logiciel (SDK) à votre application et que vous souhaitez effectuer une mise à niveau vers une version plus récente du KIT de développement logiciel (SDK), procédez comme suit :
npm uninstall --save appcenter appcenter-analytics appcenter-crashes
pour désinstaller les anciens packages App Center.npm install --save-exact appcenter appcenter-analytics appcenter-crashes
pour installer les derniers packages App Center.pod repo update
pour vous assurer que votre dépôt de spécification CocoaPods est à jour.react-native link
.
Conseil
Si vous voyez un message d’erreur similaire au message d’erreur CocoaPods suivant pendant react-native link
, supprimez le podfile.lock généré automatiquement dans votre dossier ios et réexécutez 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 de jCenter vers Maven Central
En raison de l’arrêt de la prise en charge de jCenter , tous nos assemblys ont été déplacés vers le référentiel Maven Central.
Pour utiliser App Center, vous devez ajouter mavenCentral()
au dépôt dans votre fichier Gradle, comme ci-dessous :
repositories {
google()
mavenCentral()
}
Protéger la valeur de secret App Center
app_secret
est un identificateur de votre application, il est nécessaire de savoir à quelle application le trafic s’applique et il ne peut pas être utilisé pour récupérer ou modifier des données existantes. Si votre app_secret
est exposé, le plus grand risque est d’envoyer des données incorrectes à votre application, mais cela n’aura pas d’effet sur la sécurité des données.
Pour récupérer des données sensibles, vous devez fournir un jeton d’application/utilisateur, qui est généré du côté du client. Il n’existe aucun moyen de sécuriser complètement les données côté client.
Vous pouvez améliorer la sécurité de votre application à l’aide d’une variable d’environnement pour injecter le secret d’application dans votre code. Ainsi, le secret n’est pas visible dans votre code.