APM

New Relic Mobileエージェントセットアップ手順 (iOS/Objective-C編)

所要時間:約 7分

本コンテンツは、投稿日時点での最新のiOS(Objective-C)アプリにおけるNew Relic Mobileエージェントのセットアップ手順を記載しています。最新の手順や詳細については、基本的にすべてドキュメントページに記載されているため、そちらをご参照ください。

 アプリケーショントークン取得

まず最初に、アプリに組み込むためのトークンを以下の手順で取得してください。

  1. New Relicにログインし、画面右上の「+ Add more data」をクリック。
  2. 導入対象の選択肢のタイルが表示されるので、「Mobile monitoring」の「XCFramework」をクリック。
  3. 「Get started with New Relic Mobile」の画面が、XCFrameworkが選択された状態で表示されます。
  4. 任意のアプリ名を「Name your app to begin」の項目に入力し「Continue」をクリックすることで、トークンが発行されます。(アプリ名は後からでも変更可能です)
  5. 「Integrate and start the agent」の項目のコードスニペットの中にトークンが記載されるのでコピーして保存してください。
    objc token

 

Agentの導入

本ページでは、CocoaPodsを使った導入方法のみを記載します。SDKを直接組み込む方法に関しては、ドキュメントページをご参照ください。また、Cocoapodsの初期化は完了し、Podfileがすでにある前提で記述しております。

  1. Podfileを開いて以下の1行を追加してください。
    pod 'NewRelicAgent'
  2. プロジェクトを閉じて、Terminalからプロジェクトのルートフォルダで pod install を実行してください。
  3. xcworkspaceという拡張子のファイルが作成されているのでXcodeで開いてください。
  4. Xcodeで対象のプロジェクトを開いてください。
  5. Prefixヘッダーを作成してください。(すでにある場合は、スキップしてください)
    1. 左ペインで右クリックし、新規ファイルの追加をしてください。
      objc add pch
    2. Otherの中にあるPCH Fileを選択し、完了してください。
      objc pch
    3. デフォルトでは、PrefixHeader.pchという名前でファイルが作成されます。
    4. 対象のターゲットのBuild SettingsにあるApple Clang - LanguagePrefix Headerに追加されたPrefix Headerへのパスを設定してください。通常であれば、$(SRCROOT)/$(PROJECT)/PrefixHeader.pch を値として設定できます。
      objc pch settings
  6. Prefixヘッダー(.pchという拡張子のついたファイル) を開いて、#ifdef __OBJC__  #endif のブロックの中に以下の1行を追加してください。
    #import <NewRelic/NewRelic.h> 
    objc prefix newrelic
  7. AppDelegate.mを開いて、application:didFinishLaunchingWithOptionsの最初の行に以下の1行を追加してくださいAPP_TOKENは、前述のアプリケーショントークンの取得で取得したトークンに置き換えてください。)
    [NewRelic startWithApplicationToken:@"APP_TOKEN"];
    objc init
  8. これで、モバイルモニタリングが開始できるようになりました。試しにクラッシュが取得できることが確認できるよう、任意の箇所(例えば特定のボタンをクリックしたときに動作するコード)に、 [NewRelic crashNow];を追加し、アプリをビルドして実行、クラッシュを発生させ、アプリを再起動してみてください。数分以内に、one.newrelic.comのMobileの画面で、クラッシュを確認することができます。
    objc crash
    • なお、アプリがデバッガと接続した状態で起動した場合、クラッシュの取得ができません。その場合、端末のログに「New Relic Crash Reporting is DISABLED because it has detected the debugger is enabled.」という表示されます。デバッガを切断した状態でアプリを再起動するか、XcodeのEdit Scheme...からDebug executableのチェックを外して実行して、クラッシュを発生させてみてください。

ビルドスクリプトの設定

iOSのクラッシュデータは、そのままでは関数名が表示されずクラッシュが発生した箇所や原因の特定が困難になります。そのためシンボル情報をアップロードするためにビルドスクリプトの設定を行ってください。なお、bitcodeが有効な場合は本スクリプトではアップロードされません。こちらを参照し、dSYMを取得して手動でのアップロードを行ってください。

  1. 対象となるTargetのBuild Phasesを表示し、+ボタンよりNew Run Script Phaseを選択し、Run Scriptを追加してください
    objc add runscript
  2. Run Scriptの中のShellの中に以下のコードを追加してください。APP_TOKENは、前述のアプリケーショントークンの取得で取得したトークンに置き換えてください。)

    SCRIPT=`/usr/bin/find "${SRCROOT}" -name newrelic_postbuild.sh | head -n 1`
    /bin/sh "${SCRIPT}" "APP_TOKEN"

    objc add runscript code

以上で基本的な設定は完了です。その他細かい設定の変更などは、以下の参考情報やドキュメントページをご参照ください。

参考情報

  1. Agentの設定や機能フラグの変更方法
  2. トラブルシューティング
  3. MobileAgentで収集されるデータの説明