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.swift
em seu projeto e adicione uma classe chamadaWatchAppDelegate
que 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_TOKEN
pelotoken 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
WKExtensionDelegateClassName
ao arquivoInfo.plist
da sua extensão WatchKit. Isso cria automaticamente um objeto delegado denominadoExtensionDelegate
. Para obter mais informações, consulte WKExtensionDelegate.Na classe
ExtensionDelegate
que você criou, adicione a funçãoapplicationDidFinishLaunching
.O mais próximo possível do início de
applicationDidFinishLaunching
, adicioneNewRelic.start(withApplicationToken: "APP_TOKEN")
substituindoAPP_TOKEN
pelo 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_BackgroundReporting
estiver 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_OfflineStorage
estiver 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.