Este documento le explica cómo actualizar su proyecto watchOS para que pueda monitor con New Relic. Debido a que los proyectos de watchOS aún no contienen una clase ApplicationDelegate o ExtensionDelegate , deberás agregar una u otra a tu proyecto. Estos delegados son necesarios para configurar e iniciar el agente New Relic en un proyecto de watchOS.
Requisitos
Antes de agregar WatchAppDelegate, primero instale el agente New Relic.
Importante
Para garantizar una instrumentación adecuada, debe configurar e iniciar el agente como primer paso en applicationDidFinishLaunching() y luego ejecutar el agente en el subproceso principal. Iniciar la llamada más tarde, en un subproceso en segundo plano o de forma asincrónica, puede provocar un comportamiento inesperado o inestable.
Luego de instalar el agente, consulte las instrucciones a continuación para usar WatchAppDelegate o la extensión watchOs.
Habilitar New Relic con WatchAppDelegate 
Cree un archivo
WatchAppDelegate.swiften su proyecto, luego agregue una clase llamadaWatchAppDelegateque herede deNSObject. Esta clase debe ajustar al protocoloWKApplicationDelegate.Agregue el
applicationDidFinishLaunchinga la claseWatchAppDelegate. Lo más cerca del inicio de la funciónapplicationDidFinishLaunching, agregueNewRelic.start(withApplicationToken: "APP_TOKEN"). Cerciorar de reemplazarAPP_TOKENcon sutoken de aplicación. Su código podría ver así:import WatchKitimport NewRelicclass WatchAppDelegate: NSObject, WKApplicationDelegate {func applicationDidFinishLaunching() {NewRelic.start(withApplicationToken: "APP_TOKEN")return true}}En el objeto de estructura de la aplicación principal, agregue el siguiente fragmento:
import NewRelic@mainstruct Watch_App: App {@WKApplicationDelegateAdaptor var appDelegate: WatchAppDelegate}
Habilite New Relic con la extensión watchOS
Agregue la clave
WKExtensionDelegateClassNameen el archivoInfo.plistde su extensión WatchKit. Esto crea automáticamente un objeto delegado llamadoExtensionDelegate. Para obtener más información, consulte WKExtensionDelegate.En la clase
ExtensionDelegateque creó, agregue la funciónapplicationDidFinishLaunching.Lo más cerca posible del inicio de
applicationDidFinishLaunching, agregueNewRelic.start(withApplicationToken: "APP_TOKEN")reemplazandoAPP_TOKENcon su token de aplicación. Su código podría ver así:import WatckKitimport NewRelicclass ExtensionDelegate: NSObject, WKExtensionDelegate {func applicationDidFinishLaunching() {NewRelic.start(withApplicationToken: "APP_TOKEN")return true}}
Limitaciones de la plataforma watchOS
Apple no proporciona las mismas API de iOS para la plataforma watchOS. Esto significa que ciertas características del agente de iOS aún no están disponibles en watchOS. Buscamos tener paridad en nuestra plataforma, por lo que a medida que Apple lance nueva funcionalidad, continuaremos actualizando el agente. A continuación se muestran algunas características conocidas que actualmente no son compatibles:
- Manejo de fallos: 
PLCrashReporteres una biblioteca de terceros que emplea el agente, que no es compatible con watchOS. - Recuento de fallos: debido a que los fallos no se informan en watchOS, no podemos recopilar el recuento de fallos.
 - Excepciones manejadas: el agente captura y carga excepciones manejadas, pero New Relic no puede mostrarlas actualmente.
 - Recolección en segundo plano: si 
NRFeatureFlag_BackgroundReportingestá habilitado, el agente continuará monitor la aplicación, pero no recolectará ni cargará en New Relic mientras esté en segundo plano. - Evento marcado sin conexión: si 
NRFeatureFlag_OfflineStorageestá habilitado, el agente puede almacenar cosechas sin conexión y luego enviarlas cuando esté en línea. El evento creado en estado offline, sin embargo, no será marcado como tal en el nivel de atributo. - Horas de inicio de la aplicación caliente/fría: el agente depende de la notificación de UIKit para capturar las horas de inicio caliente/frío, pero esta información aún no está disponible para watchOS.
 
Si necesita ayuda adicional, puede comunicar con el soporte en support.newrelic.com.