• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Incompatibilité avec des tiers (iOS)

Problème

L'inclusion de l'agent iOS New Relic et de certains SDK Firebase dans la même application peut provoquer des conflits en raison du chevauchement de l'instrumentation. Les SDK Firebase concernés sont :

  • FirebasePerformance — swizzle NSURLSession pour le monitoring réseau et les méthodes de cycle de vie de UIViewController pour les traces d'écran, chevauchant directement l'instrumentation automatique de New Relic.
  • FirebaseCrashlytics — installe son propre gestionnaire d'exceptions non interceptées et ses gestionnaires de signaux (SIGABRT, SIGSEGV, etc.), qui peuvent écraser ou être écrasés par le rapporteur de plantage de New Relic selon l'ordre d'initialisation.

Les symptômes connus incluent :

  • Plantages dans les fonctions auto-instrumentées causés par un swizzling de méthode NSURLSession ou UIViewController conflictuel.
  • Rapports de plantage manquants ou incomplets dans l'un ou les deux outils car un seul gestionnaire d'exceptions peut être actif à la fois.
  • Événements réseau en double apparaissant dans les consoles New Relic ou Firebase.

Solution

Recommandé : Supprimer les composants Firebase en conflit

Si vous n'avez besoin que des rapports de plantage et de le monitoring réseau provenant d'une seule source, la solution la plus propre consiste à supprimer les pods Firebase en conflit :

  • Supprimez FirebasePerformance pour éliminer les conflits de swizzling NSURLSession et UIViewController.
  • Supprimer FirebaseCrashlytics pour éliminer les conflits de gestionnaires d'exceptions et de signaux.

Si vous utilisez Firebase pour l'analyse ou d'autres fonctionnalités (par ex. FirebaseAnalytics, FirebaseAuth, FirebaseFirestore), ces pods n'entrent pas en conflit avec l'agent New Relic et peuvent être conservés.

Alternative : Désactiver les fonctionnalités qui se chevauchent

Si la suppression des composants Firebase n'est pas envisageable, désactivez explicitement l'instrumentation qui se chevauche :

Désactiver l'instrumentation automatique de Firebase Performance :

// In your AppDelegate, before FirebaseApp.configure()
Performance.sharedInstance().isInstrumentationEnabled = false
Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(false)

Désactivez les fonctionnalités New Relic qui font double emploi avec Crashlytics :

Consultez le guide de configuration du SDK iOS New Relic pour des indicateurs tels que NRFeatureFlag_CrashReporting et NRFeatureFlag_NSURLSessionInstrumentation.

Ordre d'initialisation

Si les deux SDK restent actifs, initialisez l'agent New Relic le plus tôt possible — comme premier appel dans application(_:didFinishLaunchingWithOptions:) — avant FirebaseApp.configure(). Cela garantit que les gestionnaires d'exceptions et de signaux de New Relic sont enregistrés en premier, bien que Crashlytics puisse toujours les écraser via les méthodes +load qui s'exécutent avant le code de votre application.

Si vous avez besoin d'aide supplémentaire, obtenez de l'aide sur support.newrelic.com.

Droits d'auteur © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.