このドキュメントではNew Relicでモニターできるように watchOS プロジェクトを更新する方法について説明します。 watchOS プロジェクトにはApplicationDelegate
クラスまたはExtensionDelegate
クラスがまだ含まれていないため、いずれか一方をプロジェクトに追加する必要があります。 これらのデリゲートは、watchOS プロジェクトで New Relic エージェントを設定および起動するために必要です。
要件
WatchAppDelegate
を追加する前に、まずNew Relic エージェントをインストールしてください。
重要
適切なインストゥルメンテーションを確実に行うには、 applicationDidFinishLaunching()
の最初のステップとしてエージェントを設定して起動し、メイン スレッドでエージェントを実行する必要があります。 後でバックグラウンド スレッドまたは非同期で呼び出しを開始すると、予期しない動作や不安定な動作が発生する可能性があります。
エージェントをインストールしたら、 WatchAppDelegate
またはwatchOs 拡張機能の使用に関する以下の手順を参照してください。
New Relicを有効にする WatchAppDelegate
プロジェクトに
WatchAppDelegate.swift
ファイルを作成し、NSObject
から継承するWatchAppDelegate
という名前のクラスを追加します。 このクラスはWKApplicationDelegate
プロトコルに準拠する必要があります。applicationDidFinishLaunching
WatchAppDelegate
クラスに追加します。applicationDidFinishLaunching
関数の開始近くにNewRelic.start(withApplicationToken: "APP_TOKEN")
を追加します。 必ずAPP_TOKEN
をアプリケーション トークンに置き換えてください。 コードは次のようになります。import WatchKitimport NewRelicclass WatchAppDelegate: NSObject, WKApplicationDelegate {func applicationDidFinishLaunching() {NewRelic.start(withApplicationToken: "APP_TOKEN")return true}}メイン アプリ構造オブジェクトに、次のスニペットを追加します。
import NewRelic@mainstruct Watch_App: App {@WKApplicationDelegateAdaptor var appDelegate: WatchAppDelegate}
watchOS拡張機能でNew Relicを有効にする
WatchKit 拡張機能の
Info.plist
ファイルにWKExtensionDelegateClassName
キーを追加します。 これにより、ExtensionDelegate
という名前のデリゲート オブジェクトが自動的に作成されます。 詳細については、 WKExtensionDelegateを参照してください。作成した
ExtensionDelegate
クラスに、applicationDidFinishLaunching
関数を追加します。できるだけ
applicationDidFinishLaunching
の先頭に近いところに、APP_TOKEN
アプリケーション トークンに置き換えてNewRelic.start(withApplicationToken: "APP_TOKEN")
を追加します。 コードは次のようになります。import WatckKitimport NewRelicclass ExtensionDelegate: NSObject, WKExtensionDelegate {func applicationDidFinishLaunching() {NewRelic.start(withApplicationToken: "APP_TOKEN")return true}}
watchOSプラットフォームの制限
Apple は、watchOS プラットフォームに同じ iOS API を提供していません。 つまり、特定の iOS エージェント機能は watchOS ではまだ利用できません。 私たちはプラットフォームの統一を目指しており、Apple が新しい機能をリリースするたびにエージェントを更新し続けます。 以下は、現在サポートされていない既知の機能の一部です。
- クラッシュ処理:
PLCrashReporter
エージェントが使用するサードパーティ ライブラリであり、watchOS と互換性がありません。 - クラッシュ数: watchOS ではクラッシュが報告されないため、クラッシュ数を収集できません。
- 処理された例外: エージェントは処理された例外をキャプチャしてアップロードしますが、New Relic は現在それらを表示できません。
- バックグラウンド収集:
NRFeatureFlag_BackgroundReporting
が有効になっている場合、エージェントは引き続きアプリケーションを監視しますが、バックグラウンドでは収集やNew Relicへのアップロードは行われません。 - オフラインでマークされたイベント:
NRFeatureFlag_OfflineStorage
が有効になっている場合、エージェントはオフラインで収集した情報を保存し、オンラインになったときに送信できます。 ただし、オフライン状態で作成されたイベントは、属性レベルではそのようにマークされません。 - ホット/コールド アプリの起動時間: エージェントは UIKit 通知に依存してホット/コールド アプリの起動時間を取得しますが、この情報はまだ watchOS では利用できません。
追加のサポートが必要な場合は、 support.newrelic.comからサポートにお問い合わせください。