• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Incompatibilidade com terceiros (iOS)

Problema

Incluir o agente iOS da New Relic e certos SDKs do Firebase no mesmo aplicativo pode causar conflitos devido à sobreposição de instrumentação. Os SDKs do Firebase afetados são:

  • FirebasePerformance — faz swizzling em NSURLSession para monitoramento de rede e em métodos de ciclo de vida de UIViewController para rastreamentos de tela, sobrepondo-se diretamente à instrumentação automática da New Relic.
  • FirebaseCrashlytics — instala seu próprio manipulador de exceções não tratadas e manipuladores de sinais (SIGABRT, SIGSEGV, etc.), que podem sobrescrever ou ser sobrescritos pelo relator de falhas da New Relic, dependendo da ordem de inicialização.

Sintomas conhecidos incluem:

  • Falhas em funções autoinstrumentadas causadas por method swizzling conflitante de NSURLSession ou UIViewController.
  • Relatórios de falhas ausentes ou incompletos em uma ou ambas as ferramentas, pois apenas um manipulador de exceções pode estar ativo por vez.
  • Eventos de rede duplicados aparecendo nos consoles do New Relic ou Firebase.

Solução

Preferencial: Remova componentes conflitantes do Firebase

Se você precisa apenas de relatórios de falhas e monitoramento de rede de uma única fonte, a solução mais limpa é remover os pods do Firebase conflitantes:

  • Remova FirebasePerformance para eliminar conflitos de swizzling de NSURLSession e UIViewController.
  • Remova FirebaseCrashlytics para eliminar conflitos de manipuladores de exceção e sinal.

Se você estiver usando o Firebase para analytics ou outros recursos (por exemplo, FirebaseAnalytics, FirebaseAuth, FirebaseFirestore), esses pods não entram em conflito com o agente New Relic e podem permanecer.

Alternativa: Desativar recursos sobrepostos

Se remover os componentes do Firebase não for uma opção, desative explicitamente a instrumentação sobreposta:

Desativar a instrumentação automática do Firebase Performance:

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

Desative os recursos do New Relic que se sobrepõem ao Crashlytics:

Consulte o guia de configuração do New Relic iOS SDK para flags como NRFeatureFlag_CrashReporting e NRFeatureFlag_NSURLSessionInstrumentation.

Ordem de inicialização

Se ambos os SDKs permanecerem ativos, inicialize o agente New Relic o mais cedo possível — como a primeira chamada em application(_:didFinishLaunchingWithOptions:) — antes de FirebaseApp.configure(). Isso garante que os manipuladores de exceção e sinal da New Relic sejam registrados primeiro, embora o Crashlytics ainda possa sobrescrevê-los via métodos +load que são executados antes do código do seu aplicativo.

Se precisar de ajuda adicional, obtenha suporte em support.newrelic.com.

Copyright © 2026 New Relic Inc.

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