Este documento mostra como atualizar seu projeto watchOS para que você possa monitor com New Relic. Como os projetos watchOS ainda não contêm uma classe ApplicationDelegate ou ExtensionDelegate , você precisará adicionar uma ou outra ao seu projeto. Esses delegados são necessários para configurar e iniciar o agente New Relic em um projeto watchOS.
Requisitos
Antes de adicionar o WatchAppDelegate, primeiro instale o agente New Relic.
Importante
Para garantir a instrumentação adequada, você deve configurar e iniciar o agente como a primeira etapa em applicationDidFinishLaunching() e, em seguida, executar o agente no encadeamento principal. Iniciar a chamada posteriormente, em um thread em segundo plano ou de forma assíncrona, pode causar um comportamento inesperado ou instável.
Depois de instalar o agente, consulte as instruções abaixo para usar WatchAppDelegate ou a extensão watchOs.
Habilite New Relic com WatchAppDelegate
Crie um arquivo
WatchAppDelegate.swiftem seu projeto e adicione uma classe chamadaWatchAppDelegateque herda deNSObject. Esta classe deve estar em conformidade com o protocoloWKApplicationDelegate.Adicione o
applicationDidFinishLaunchingà classeWatchAppDelegate. O mais próximo possível do início da funçãoapplicationDidFinishLaunching, adicioneNewRelic.start(withApplicationToken: "APP_TOKEN"). Certifique-se de substituirAPP_TOKENpelotoken do seu aplicativo. Seu código pode ficar assim:import WatchKitimport NewRelicclass WatchAppDelegate: NSObject, WKApplicationDelegate {func applicationDidFinishLaunching() {NewRelic.start(withApplicationToken: "APP_TOKEN")return true}}No objeto de estrutura principal do aplicativo, adicione o seguinte trecho:
import NewRelic@mainstruct Watch_App: App {@WKApplicationDelegateAdaptor var appDelegate: WatchAppDelegate}
Habilite New Relic com extensão watchOS
Adicione a chave
WKExtensionDelegateClassNameao arquivoInfo.plistda sua extensão WatchKit. Isso cria automaticamente um objeto delegado denominadoExtensionDelegate. Para obter mais informações, consulte WKExtensionDelegate.Na classe
ExtensionDelegateque você criou, adicione a funçãoapplicationDidFinishLaunching.O mais próximo possível do início de
applicationDidFinishLaunching, adicioneNewRelic.start(withApplicationToken: "APP_TOKEN")substituindoAPP_TOKENpelo token do seu aplicativo. Seu código pode ficar assim:import WatckKitimport NewRelicclass ExtensionDelegate: NSObject, WKExtensionDelegate {func applicationDidFinishLaunching() {NewRelic.start(withApplicationToken: "APP_TOKEN")return true}}
Limitações da plataforma watchOS
A Apple não fornece a mesma API iOS para a plataforma watchOS. Isso significa que determinados recursos de agente do iOS ainda não estão disponíveis no watchOS. Buscamos ter paridade em nossa plataforma, então conforme a Apple lançar novas funcionalidades, continuaremos atualizando o agente. Aqui estão alguns recursos conhecidos e atualmente não suportados:
- Tratamento de falhas:
PLCrashReporteré uma biblioteca de terceiros usada pelo agente, que não é compatível com watchOS. - Contagem de falhas: como as falhas não são relatadas no watchOS, não podemos coletar a contagem de falhas.
- Exceções tratadas: o agente captura e carrega exceções tratadas, mas a New Relic não pode exibi-las no momento.
- Coleta em segundo plano: se
NRFeatureFlag_BackgroundReportingestiver ativado, o agente continuará monitor o aplicativo, mas não coletará nem fará upload para o New Relic enquanto estiver em segundo plano. - Evento marcado offline: Se
NRFeatureFlag_OfflineStorageestiver habilitado, o agente poderá armazenar colheitas offline e então enviá-las quando estiver online. um evento criado em estado offline, entretanto, não será marcado como tal no nível de atributo. - Horários de início do aplicativo quente/frio: O agente depende da notificação do UIKit para capturar os horários de início quente/frio, mas esta informação ainda não está disponível para watchOS.
Se precisar de ajuda adicional, você pode entrar em contato com o suporte em support.newrelic.com.