本コンテンツは、投稿日時点での最新のiOS(Objective-C)アプリにおけるNew Relic Mobileエージェントのセットアップ手順を記載しています。最新の手順や詳細については、基本的にすべてドキュメントページに記載されているため、そちらをご参照ください。
アプリケーショントークン取得
まず最初に、アプリに組み込むためのトークンを以下の手順で取得してください。
- New Relicにログインし、画面左の「+ Add Data」をクリック。
- Add Dataの画面上部の検索ボックスにて、iosとタイプしていただくと、「iOS」のタイルが表示されるので、それをクリック
- 続いて表示された画面で、アカウントを選択していただき、Continueをクリック
- 「Give your application a name」の項目にアプリ名を入力し、CreateをクリックするとNew Relic上でアプリが作成されます。
- 引き続きUI上で表示されるガイドに従って導入していただくこともできますが、本ブログの手順に従う場合は、一旦Add Dataの画面を抜けます。
- 左側メニューで「Mobile」の項目がある場合は、それを選択してください。ない場合は、左側メニューの「All Capabilities」をクリックしていただき、表示されたタイルのリストから「Mobile」を選択してください。
- すると先程作成したアプリケーションがリストに表示されています。
- 作成したアプリをクリックし、その中の「Application」をクリックし、表示された画面のトークンをコピーしてください。
Agentの導入
本ページでは、CocoaPodsを使った導入方法のみを記載します。SDKを直接組み込む方法に関しては、ドキュメントページをご参照ください。また、Cocoapodsの初期化は完了し、Podfileがすでにある前提で記述しております。
- Podfileを開いて以下の1行を追加してください。
pod 'NewRelicAgent'
- プロジェクトを閉じて、Terminalからプロジェクトのルートフォルダで
pod install
を実行してください。 - xcworkspaceという拡張子のファイルが作成されているのでXcodeで開いてください。
- プロジェクト内の
AppDelegate.m
というファイルを開き、以下のようにNew Relicのヘッダーをimportしてください。
#import <NewRelic/NewRelic.h>
- 同じファイル内のapplication:didFinishLaunchingWithOptionsの最初の行に以下の1行を追加してください(
APP_TOKEN
は、前述のアプリケーショントークンの取得で取得したトークンに置き換えてください。)
[NewRelic startWithApplicationToken:@"APP_TOKEN"];
- これで、モバイルモニタリングが開始できるようになりました。試しにクラッシュが取得できることが確認できるよう、任意の箇所(例えば特定のボタンをクリックしたときに動作するコード)に、
[NewRelic crashNow];
を追加し、アプリをビルドして実行、クラッシュを発生させ、アプリを再起動してみてください。数分以内に、one.newrelic.comのMobileの画面で、クラッシュを確認することができます。
なお、アプリがデバッガと接続した状態で起動した場合、クラッシュの取得ができません。その場合、端末のログに「New Relic Crash Reporting is DISABLED because it has detected the debugger is enabled.」という表示されます。デバッガを切断した状態でアプリを再起動するか、XcodeのEdit Scheme...からDebug executableのチェックを外して実行して、クラッシュを発生させてみてください。
ビルドスクリプトの設定
iOSのクラッシュデータは、そのままでは関数名が表示されずクラッシュが発生した箇所や原因の特定が困難になります。そのためシンボル情報をアップロードするためにビルドスクリプトの設定を行ってください。なお、bitcodeが有効な場合は本スクリプトではアップロードされません。こちらを参照し、dSYMを取得して手動でのアップロードを行ってください。
- 対象となるTargetのBuild Phasesを表示し、+ボタンよりNew Run Script Phaseを選択し、Run Scriptを追加してください
- iOS Agent 7.4.0以降をインストールされる場合、Run Scriptの中のShellの中に以下のコードを追加してください。(
APP_TOKEN
は、前述のアプリケーショントークンの取得で取得したトークンに置き換えてください。)
SCRIPT=`/usr/bin/find "${SRCROOT}" -name run-symbol-tool | head -n 1`
/bin/sh "${SCRIPT}" "APP_TOKEN"
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。