• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

Swiftのインタラクション・トレースを有効にする

iOS開発用のDynamic-by-defaultメソッドルックアップがSwiftで廃止されました。これにより、エージェントのデフォルトのメソッドインスツルメンテーションが中断されます。例えば、Swift クラスのインタラクショントレーシングはデフォルトでは無効になっていますが、再度有効にすることができます。

Swiftアプリでのインタラクションは、 自動的にインスツルメンテーションされたクラスとメソッド が使用されている場合、またはカスタムのインタラクションを定義する場合にキャプチャされます。しかし、Swiftクラスがこれらのデフォルトクラスのいずれかのサブクラスを作成する場合は、インタラクションをキャプチャするために以下の手順に従います。

ダイナミック・メソッド・ルックアップの有効化

Swiftでメソッドごとに動的なメソッド検索を再度有効にするには、 dynamic 宣言修飾子を追加します。例えば、以下のようになります。

class MyViewController : UIViewController {
override dynamic func viewDidLoad() {
super.viewDidLoad()
...
}
}

New Relic が自動的に計測するすべての関数について、 、Swift でサブクラスやオーバーライドを作成するたびに、必ずこの修飾子を追加してください。

Swiftのインストゥルメンテーションを有効にする

dynamic キーワードをメソッドのオーバーライドに追加した後、以下のメソッドを呼び出すことで、Swiftのインスツルメンテーションを再度有効にすることができます。

言語

手順

Objective-C

Call prior to [NewRelic startWithApplicationToken:...];

[NewRelic enableFeatures:NRFeatureFlag_SwiftInteractionTracing];

Swift

の前に呼び出す NewRelic.start(withApplicationToken:)

NewRelic.enableFeatures(NRMAFeatureFlags.NRFeatureFlag_SwiftInteractionTracing)
Copyright © 2022 New Relic株式会社。