이 문서에서는 뉴렐릭으로 모니터링할 수 있도록 watchOS 프로젝트를 업데이트하는 방법을 안내합니다. watchOS 프로젝트에는 아직 ApplicationDelegate
또는 ExtensionDelegate
클래스가 포함되어 있지 않으므로 프로젝트에 둘 중 하나를 추가해야 합니다. 이러한 대리인은 watchOS 프로젝트에서 뉴렐릭 에이전트를 구성하고 시작하는 데 필요합니다.
요구 사항
WatchAppDelegate
을 추가하기 전에 먼저 뉴렐릭 에이전트를 설치하세요.
중요
적절한 계측을 보장하려면 applicationDidFinishLaunching()
의 첫 번째 단계로 에이전트를 구성하고 시작한 다음 기본 스레드에서 에이전트를 실행해야 합니다. 나중에 백그라운드 스레드에서 또는 비동기적으로 호출을 시작하면 예기치 않거나 불안정한 동작이 발생할 수 있습니다.
에이전트를 설치한 후 WatchAppDelegate
또는 watchOs 확장 프로그램 사용에 대한 아래 지침을 참조하세요.
다음으로 뉴렐릭을 활성화하세요. WatchAppDelegate
프로젝트에
WatchAppDelegate.swift
파일을 생성한 다음NSObject
에서 상속되는WatchAppDelegate
이라는 클래스를 추가합니다. 이 클래스는WKApplicationDelegate
프로토콜을 준수해야 합니다.WatchAppDelegate
클래스에applicationDidFinishLaunching
추가합니다.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 확장 프로그램으로 뉴렐릭 활성화
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에서는 충돌이 보고되지 않으므로 충돌 횟수를 수집할 수 없습니다.
- 처리된 예외: 에이전트는 처리된 예외를 캡처하고 업로드하지만 뉴렐릭은 현재 이를 표시할 수 없습니다.
- 백그라운드 수집:
NRFeatureFlag_BackgroundReporting
가 활성화되면 에이전트는 계속해서 로그를 모니터링하지만 백그라운드에 있는 동안 뉴렐릭에 수집하거나 업로드하지 않습니다. - 오프라인으로 표시된 이벤트:
NRFeatureFlag_OfflineStorage
이 활성화되면 에이전트는 오프라인 수확물을 저장한 다음 온라인일 때 보낼 수 있습니다. 그러나 오프라인 상태에서 생성된 이벤트는 속성 수준에서 오프라인으로 표시되지 않습니다. - 핫/콜드 앱 시작 시간: 요원은 핫/콜드 시작 시간을 캡처하기 위해 UIKit 공지에 의존하지만 이 정보는 아직 watchOS에서 사용할 수 없습니다.
추가 도움이 필요한 경우 support.newrelic.com 에서 지원을 받을 수 있습니다.