Swift におけるインタラクショントレースの有効化

Swift の登場により、iOS での開発方法が変更されました。例えば、デフォルトで動的メソッドのルックアップは削除されました。これは、New Relic Mobile が行っていたデフォルトのメソッド計測を中断することになります。Swift のクラスではインタラクショントレースは、再度有効にすることもできますが、デフォルトでは無効になっています。

動的メソッドの検索の有効化

dynamic 宣言修飾子を追加することで、Swift においてメソッド内での動的メソッドのルックアップを再度有効にできます。以下がその例です。

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

New Relic が計測する、Swift で作成したサブクラスやオーバーライドした各 function に、この修飾子を追加していることを確認してください。New Relic Mobile が自動で計測するメソッド一覧は、コードの計測をご覧ください。

Swift 計測の有効化

dynamic キーワードをオーバーライドしているメソッドに追加し、以下を設定すると、Swift での計測を有効にできます。

[NewRelic enableFeatures:NRFeatureFlag_SwiftInteractionTracing];

以下を呼び出す前に上記のコードを配置してください。

[NewRelic startWithApplcationToken:...];