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.swift
dans votre projet, puis ajoutez une classe nomméeWatchAppDelegate
qui 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_TOKEN
par 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é
WKExtensionDelegateClassName
dans le fichierInfo.plist
de votre extension WatchKit. Cela crée automatiquement un objet délégué nomméExtensionDelegate
. Pour plus d'informations, voir WKExtensionDelegate.Dans la classe
ExtensionDelegate
que 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_TOKEN
par 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 :
PLCrashReporter
est 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_BackgroundReporting
est 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_OfflineStorage
est 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.