• /
  • 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)

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.