Ce document vous explique comment mettre à jour votre projet watchOS afin que vous puissiez le monitorer avec New Relic. Étant donné que les projets watchOS ne contiennent pas déjà de classe ApplicationDelegate ou ExtensionDelegate , vous devrez ajouter l'une ou l'autre à votre projet. Ces délégués sont nécessaires pour configurer et démarrer l'agent New Relic dans un projet watchOS.
Exigences
Avant d'ajouter le WatchAppDelegate, installez d'abord l'agent New Relic.
Important
Pour garantir une instrumentation appropriée, vous devez configurer et démarrer l'agent comme première étape de applicationDidFinishLaunching() , puis exécuter l'agent sur le thread principal. Démarrer l'appel ultérieurement, sur un thread d'arrière-plan ou de manière asynchrone, peut provoquer un comportement inattendu ou instable.
Après avoir installé l'agent, consultez les instructions ci-dessous pour utiliser WatchAppDelegate ou l'extension watchOs.
Activer New Relic avec WatchAppDelegate
Créez un fichier
WatchAppDelegate.swiftdans votre projet, puis ajoutez une classe nomméeWatchAppDelegatequi hérite deNSObject. Cette classe doit être conforme au protocoleWKApplicationDelegate.Ajoutez le
applicationDidFinishLaunchingà la classeWatchAppDelegate. Au plus près du début de la fonctionapplicationDidFinishLaunching, ajoutezNewRelic.start(withApplicationToken: "APP_TOKEN"). Assurez-vous de remplacerAPP_TOKENpar votrejeton d'application. Votre code pourrait ressembler à ceci :import WatchKitimport NewRelicclass WatchAppDelegate: NSObject, WKApplicationDelegate {func applicationDidFinishLaunching() {NewRelic.start(withApplicationToken: "APP_TOKEN")return true}}Dans l’objet de structure de l’application principale, ajoutez le snippet suivant :
import NewRelic@mainstruct Watch_App: App {@WKApplicationDelegateAdaptor var appDelegate: WatchAppDelegate}
Activer New Relic avec l'extension watchOS
Ajoutez la clé
WKExtensionDelegateClassNamedans le fichierInfo.plistde votre extension WatchKit. Cela crée automatiquement un objet délégué nomméExtensionDelegate. Pour plus d'informations, voir WKExtensionDelegate.Dans la classe
ExtensionDelegateque vous avez créée, ajoutez la fonctionapplicationDidFinishLaunching.Le plus près possible du début de
applicationDidFinishLaunching, ajoutezNewRelic.start(withApplicationToken: "APP_TOKEN")en remplaçantAPP_TOKENpar votre jeton d'application. Votre code pourrait ressembler à ceci :import WatckKitimport NewRelicclass ExtensionDelegate: NSObject, WKExtensionDelegate {func applicationDidFinishLaunching() {NewRelic.start(withApplicationToken: "APP_TOKEN")return true}}
Limitations de la plateforme watchOS
Apple ne fournit pas les mêmes API iOS à la plateforme watchOS. Cela signifie que certaines fonctionnalités de l'agent iOS ne sont pas encore disponibles sur watchOS. Nous cherchons à avoir la parité dans notre plateforme, donc au fur et à mesure qu'Apple sortira de nouvelles fonctionnalités, nous continuerons à mettre à jour l'agent. Voici quelques fonctionnalités connues, actuellement non prises en charge :
- Gestion des crashs :
PLCrashReporterest une bibliothèque tierce utilisée par l'agent, qui n'est pas compatible avec watchOS. - Nombre de plantages : étant donné que les plantages ne sont pas signalés sur watchOS, nous ne pouvons pas collecter le nombre de plantages.
- Exceptions gérées : l'agent capture et télécharge les exceptions gérées, mais New Relic ne peut actuellement pas les afficher.
- Collecte en arrière-plan : si
NRFeatureFlag_BackgroundReportingest activé, l'agent continuera à monitorer l'application, mais ne collectera ni ne téléchargera sur New Relic en arrière-plan. - Événement marqué hors ligne : si
NRFeatureFlag_OfflineStorageest activé, l'agent peut stocker les récoltes hors ligne, puis les envoyer lorsqu'il est en ligne. L'événement créé dans un état hors ligne ne sera cependant pas marqué comme tel au niveau de l'attribut. - Heures de démarrage de l'application à chaud/froid : l'agent dépend de la notification UIKit pour capturer les heures de démarrage à chaud/froid, mais ces informations ne sont pas encore disponibles pour watchOS.
Si vous avez besoin d'aide supplémentaire, vous pouvez contacter l'assistance à l'adresse support.newrelic.com.