New Relic iOS SDK設定ガイド - Swift・Objective-C対応の詳細導入手順
iOSアプリケーションのパフォーマンス監視とユーザー体験の最適化を実現するためには、New Relic iOS SDKの適切な導入が不可欠です。本ガイドでは、Xcodeプロジェクトへの統合から基本的な監視設定まで、実践的な手順を詳しく解説します。SwiftとObjective-Cの両方に対応し、iOS特有の監視要件にも配慮した包括的な設定方法を提供します。
iOS SDK概要と主要機能
New Relic iOS SDKは、iOS 9.0以上をサポートし、リアルタイムでアプリケーションパフォーマンスを追跡する軽量なライブラリです。アプリケーションのパフォーマンスに与える影響を最小限に抑えながら、詳細な監視データを収集できるよう設計されています。
監視可能な主要メトリクス
iOS SDKにより監視できる重要な指標は以下のとおりです。
アプリケーションライフサイクルでは、起動時間、フォアグラウンド復帰時間、バックグラウンド遷移時間を詳細に測定します。これらの指標により、ユーザーがアプリを使い始めるまでの時間を最適化できます。
ネットワーク通信では、NSURLConnectionとNSURLSessionによるHTTPリクエストを自動的に追跡し、応答時間、データ転送量、エラー率を収集します。RESTful APIやGraphQLエンドポイントのパフォーマンス分析に活用できます。
ビュー読み込みパフォーマンスにより、UIViewControllerの読み込み時間と画面遷移パフォーマンスを測定します。ユーザーインターフェースの応答性向上に必要なデータを提供します。
メモリとCPU使用率を継続的に監視し、メモリリークやパフォーマンスボトルネックの早期発見を支援します。
クラッシュレポートでは、アプリケーション異常終了時の詳細なスタックトレースと環境情報を自動収集し、問題の根本原因特定を支援します。
事前準備とシステム要件
iOS SDKの導入前に、以下の環境要件と準備事項を確認してください。
システム要件
- iOS 9.0以上(iOS 12.0以上を推奨)
- Xcode 12.0以上(最新版を推奨)
- Swift 5.0以上またはObjective-C(ARC対応)
- New Relicアカウントとアプリケーショントークン
アプリケーショントークンの取得
New Relicダッシュボードにログインし、「Add Data」→「Mobile」→「iOS」を選択します。新しいアプリケーションを作成するか、既存のアプリケーションを選択し、表示されるアプリケーショントークンをメモしておきます。このトークンは、iOS SDKの初期化時に必要となります。
Swift Package Managerによる導入
最も推奨される導入方法は、Swift Package Managerを使用することです。
パッケージの追加
Xcodeプロジェクトを開き、「File」→「Add Package Dependencies」を選択します。パッケージURLとして以下を入力します。
https://github.com/newrelic/newrelic-ios-agent-spm
バージョン設定では「Up to Next Major Version」を選択し、最新の安定版を指定します。「Add Package」をクリックして、ターゲットアプリケーションにNew Relic iOS SDKを追加します。
依存関係の確認
Package.swiftファイル(存在する場合)に以下の依存関係が追加されることを確認してください。
dependencies: [
.package(url: "https://github.com/newrelic/newrelic-ios-agent-spm", from: "7.0.0")
]
CocoaPodsによる導入(代替方法)
既存プロジェクトでCocoaPodsを使用している場合は、以下の手順で導入できます。
Podfileの設定
プロジェクトルートディレクトリのPodfileに以下を追加します。
platform :ios, '9.0'
use_frameworks!
target 'YourAppTarget' do
pod 'NewRelicAgent'
end
ターミナルでプロジェクトディレクトリに移動し、以下のコマンドを実行します。
pod install
インストール完了後は、.xcworkspace
ファイルを使用してプロジェクトを開いてください。
SDK初期化の実装
New Relic iOS SDKの初期化は、アプリケーション起動時に実行する必要があります。
Swift実装
AppDelegate.swiftまたはSceneDelegate.swiftのappropriate lifecycle methodに以下のコードを追加します。
import NewRelic
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// New Relic初期化
NewRelic.start(withApplicationToken: "YOUR_APPLICATION_TOKEN")
return true
}
}
SwiftUIアプリケーションの場合は、App structのinit()メソッドまたは適切なライフサイクルメソッドで初期化します。
import SwiftUI
import NewRelic
@main
struct YourApp: App {
init() {
NewRelic.start(withApplicationToken: "YOUR_APPLICATION_TOKEN")
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Objective-C実装
AppDelegate.mファイルに以下のように実装します。
#import "AppDelegate.h"
#import <NewRelic/NewRelic.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// New Relic初期化
[NewRelic startWithApplicationToken:@"YOUR_APPLICATION_TOKEN"];
return YES;
}
@end
高度な設定とカスタマイズ
基本的な監視に加えて、アプリケーション固有の要件に応じた詳細設定が可能です。
ログレベルの設定
開発段階では詳細なログ出力を有効にし、本番環境では最小限のログ出力に設定できます。
// 開発環境での詳細ログ
NewRelic.setLogLevel(NRLogLevelVerbose)
// 本番環境での最小ログ
NewRelic.setLogLevel(NRLogLevelError)
カスタムアトリビュートの追加
ビジネス固有の情報を監視データに含めることができます。
// ユーザー属性の設定
NewRelic.setUserId("user123")
NewRelic.setAttribute("userTier", value: "premium")
NewRelic.setAttribute("appVersion", value: Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String)
// カスタムイベントの記録
NewRelic.recordCustomEvent("PurchaseCompleted", attributes: [
"itemId": "product123",
"price": 29.99,
"currency": "USD"
])
ネットワーク監視の詳細設定
特定のURLパターンを監視対象から除外したり、機密情報を含むヘッダーをフィルタリングできます。
// 特定URLの監視除外
NewRelic.addHTTPHeadersTrackingFor(["Content-Type", "User-Agent"])
// 機密ヘッダーの除外
NewRelic.addHTTPHeadersTrackingFor([]) // 空配列で全ヘッダーを除外
パフォーマンス最適化のベストプラクティス
iOS SDKの効果的な活用のために、以下のベストプラクティスを推奨します。
初期化タイミングの最適化
SDK初期化は可能な限り早期に実行し、アプリケーション起動時間の正確な測定を確保してください。他のサードパーティSDKよりも先に初期化することを推奨します。
メモリ使用量の監視
iOS SDKは軽量設計ですが、大量のカスタムイベントやアトリビュートを送信する場合は、メモリ使用量への影響を定期的に確認してください。
ネットワーク効率性
カスタムイベントの送信頻度を適切に調整し、ユーザーのデータ通信量への影響を最小限に抑えてください。Wi-Fi環境でのみ詳細データを送信する設定も検討できます。
トラブルシューティング
iOS SDK導入時によく発生する問題と解決方法を紹介します。
データが表示されない場合
アプリケーショントークンの確認、ネットワーク接続の確認、初期化コードの配置確認を行ってください。Xcodeコンソールでエラーメッセージがないかも確認します。
ビルドエラーの解決
Swift Package ManagerとCocoaPodsの混在、最小デプロイメントターゲットの不整合、フレームワーク設定の問題などが原因となることがあります。クリーンビルドを実行し、設定を再確認してください。
シミュレータでの動作確認
New Relicは実機でのみ正常に動作します。シミュレータでは一部の機能が制限されるため、最終的な動作確認は必ず実機で行ってください。
まとめ
New Relic iOS SDKの適切な導入により、iOSアプリケーションの包括的なパフォーマンス監視が実現できます。基本的な設定から高度なカスタマイズまで、アプリケーションの要件に応じて柔軟に調整可能です。
継続的な監視データの分析により、ユーザー体験の向上とアプリケーションパフォーマンスの最適化を実現してください。次のステップとして、Android SDKの設定方法やクロスプラットフォーム対応についても学習していくことをお勧めします。
関連記事: New Relic Android SDK設定ガイド関連記事: New Relic React Native統合設定