• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Incompatibilidad con terceros (iOS)

|View as Markdown (English)

Problema

Incluir tanto el agente de iOS de New Relic como ciertos SDK de Firebase en la misma aplicación puede causar conflictos debido a la superposición de la instrumentación. Los SDK de Firebase afectados son:

  • FirebasePerformance — intercambia NSURLSession para el monitoreo de red y UIViewController métodos de ciclo de vida para trazas de pantalla, superponiéndose directamente con la instrumentación automática de New Relic.
  • FirebaseCrashlytics — instala su propio manejador de excepciones no capturadas y manejadores de señales (SIGABRT, SIGSEGV, etc.), que pueden sobrescribir o ser sobrescritos por el notificador de fallos de New Relic dependiendo del orden de inicialización.

Los síntomas conocidos incluyen:

  • Fallos en funciones autoinstrumentadas causados por method swizzling conflictivo de NSURLSession o UIViewController.
  • Informes de fallos faltantes o incompletos en una o ambas herramientas porque solo un manejador de excepciones puede estar activo a la vez.
  • Eventos de red duplicados que aparecen en las consolas de New Relic o Firebase.

Solución

Preferido: Eliminar componentes de Firebase en conflicto

Si solo necesita reporte de fallos y monitoreo de red de una sola fuente, la solución más limpia es eliminar los pods de Firebase en conflicto:

  • Elimine FirebasePerformance para eliminar los conflictos de swizzling de NSURLSession y UIViewController.
  • Elimine FirebaseCrashlytics para eliminar los conflictos de los manejadores de excepciones y señales.

Si utiliza Firebase para análisis u otras funciones (p. ej., FirebaseAnalytics, FirebaseAuth, FirebaseFirestore), esos pods no entran en conflicto con el agente de New Relic y pueden permanecer.

Alternativa: Desactivar funcionalidades superpuestas

Si eliminar los componentes de Firebase no es una opción, deshabilita la instrumentación superpuesta explícitamente:

Deshabilitar la instrumentación automática de rendimiento de Firebase:

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

Desactive las funciones de New Relic que se superponen con Crashlytics:

Consulte la guía de configuración del SDK de New Relic para iOS para ver flags como NRFeatureFlag_CrashReporting y NRFeatureFlag_NSURLSessionInstrumentation.

Orden de inicialización

Si ambos SDKs permanecen activos, inicialice el agente de New Relic lo antes posible — como la primera llamada en application(_:didFinishLaunchingWithOptions:) — antes de FirebaseApp.configure(). Esto asegura que los manejadores de excepciones y señales de New Relic se registren primero, aunque Crashlytics aún podría sobrescribirlos mediante métodos +load que se ejecutan antes de que se ejecute el código de tu aplicación.

Si necesita ayuda adicional, obtenga soporte en support.newrelic.com.

Copyright © 2026 New Relic Inc.

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